jagomart
digital resources
picture1_Functional Programming Pdf 190884 | 23review


 126x       Filetype PDF       File size 0.05 MB       Source: www.cs.utoronto.ca


File: Functional Programming Pdf 190884 | 23review
the current topic review announcements lab 3 was due today at 10 30 am introduction object oriented programming python aids allowed for the nal exam functional programming scheme one double ...

icon picture PDF Filetype PDF | Posted on 04 Feb 2023 | 2 years ago
Partial capture of text on file.
                                 The current topic: Review                                                                        Announcements
                                                                                                       • Lab 3 was due today at 10:30 am.
            !Introduction
            !Object-oriented programming: Python                                                       • Aids allowed for the final exam:
            !Functional programming: Scheme                                                              – One double-sided aid sheet, produced however you like, on standard letter-sized 
            !Python GUI programming (Tkinter)                                                              (8.5" x 11") paper.
            !Types and values                                                                          • Exam period office hours:
            !Logic programming: Prolog                                                                   – Monday Dec. 8th, 12:30-1:30, SF3207
            !Syntax and semantics                                                                        – Wednesday Dec. 10th, 12:30-1:30, SF3207
            !Exceptions                                                                                  – Friday Dec. 12th, 12:30-1:30, SF3207
                                                                                                         – Monday Dec. 15th, 12:30-1:30, SF3207
                                                                                                         – Tuesday Dec. 16th, 11:00-12:00, SF3207
                                                                                                       • Lab 3 and Project marking:
                                                                                                         – Marking reports will be emailed (as usual) to your ECF accounts.
                                                                                                         – Watch the Announcements page for re-marking deadlines.
          Fall 2008                             Review                                   1           Fall 2008                             Review                                   2
                                             Review                                                                Object-oriented programming: Python
            • Disclaimer: This is not a comprehensive review. Topics that aren't                       • Variables:
              mentioned here may still appear on the final exam.                                          – Variables store references, not actual values.
                                                                                                         – Built-in types include:
                                                                                                            • Lists
                                                                                                            • Tuples
                                                                                                            • Dictionaries.
                                                                                                            • Strings.
                                                                                                            • Booleans.
                                                                                                            • Numbers: int, float, complex, long int
                                                                                                       • Types:
                                                                                                         – Strongly typed: Type restrictions are enforced.
                                                                                                         – Dynamically typed: Types are determined at runtime; there are no type 
                                                                                                           declarations for variables, parameters, return values, etc. 
                                                                                                       • Code structure:
                                                                                                         – Indentation is meaningful.
          Fall 2008                             Review                                   3           Fall 2008                             Review                                   4
                         Object-oriented programming: Python                                                         Object-oriented programming: Python
            • Containers:                                                                               • Dictionaries
               – Collections of objects.                                                                   – Mutable.
               – Sequences are containers that have some kind of ordering.                                 – Not a sequence.
               – Mutable vs. immutable.                                                                    – Set of key-value pairs.
            • Lists:                                                                                    • Loops:
               – Mutable sequences.                                                                        – While loops.
               – Slicing: getting a portion of a list.                                                     – For loops.
               – Splicing: assigning to a slice.                                                              • Using the range function to make a list of numbers.
                  • May cause the list to grow or shrink.
                                                                                                        • Classes:
            • Tuples:                                                                                      – Inheritance.
               – Immutable sequences.                                                                      – Constructors.
                                                                                                           – Instance methods and variables.
            • Strings:                                                                                     – Class variables.
               – Immutable sequences where each element is a single character.                             – Static and class methods.
                                                                                                           – Name mangling.
                                                                                                           – Operator overloading.
           Fall 2008                             Review                                    5           Fall 2008                             Review                                    6
                         Object-oriented programming: Python                                                         Object-oriented programming: Python
            • Exceptions:                                                                               • Working with files.
               – Raising.
               – Catching.                                                                              • Modules:
               – Defining.                                                                                  – Importing modules.
                                                                                                           – Getting short-form naming.
            • Parameters and arguments:
               – Keyword vs non-keyword
               – Mandatory vs optional parameters
            • Regular expressions.
            • List comprehensions. 
              e.g. T = [2*x for x in range(4)]
            • Iteration:
               – How this relates to __getitem__() and IndexError.
           Fall 2008                             Review                                    7           Fall 2008                             Review                                    8
                         Object-oriented programming: Python                                                           Functional programming: Scheme
            • An example:                                                                               • Functions as first-class values.
              class A:                                                                                  • List operations:
                 y = 1                                                                                     – car
                 def __init__(self):                                                                       – cdr
                    self.y += 2                                                                            – cons
              b = A()                                                                                      – append
              c = A()
                                                                                                        • Other operations:
              b.y  # Value is:                                                                             – Numeric (e.g. +, –, *, /)
              c.y  # Value is:                                                                             – Comparison (e.g. >, <, <=, >=, =)
              A.y  # Value is:                                                                             – Type-checking (e.g. number?, symbol?, list?)
                                                                                                           – Boolean (e.g and, or, not)
                                                                                                        • Defining functions.
                                                                                                        • Conditional execution: if, cond
          Fall 2008                              Review                                   9           Fall 2008                             Review                                   10
                            Functional programming: Scheme                                                             Functional programming: Scheme
            • Efficiency:                                                                                • Trees:
               – let, let*                                                                                 – representing trees
               – helper functions                                                                          – working with BSTs
               – using an accumulator
               – tail recursion                                                                         • Mutual recursion.
            • Lambda expressions.
            • Higher-order functions:
               – functions as parameters
               – functions as return values
            • Built-in higher-order functions:
               – map
               – eval
               – apply
               – reduce (not built-in in mzscheme, but built-in in some other Schemes)
          Fall 2008                              Review                                   11          Fall 2008                             Review                                   12
                            Python GUI programming: Tkinter                                                                         Types and values
            • The event loop.                                                                            • Attributes of a variable:
                                                                                                            – static attributes vs dynamic attributes
            • Creating a root window.                                                                       – name
               – And creating additional windows.                                                           – memory address
                                                                                                            – type
            • Widgets:                                                                                      – scope
               – creating                                                                                   – lifetime
               – arranging
                                                                                                         • Referencing environment:
            • Event-handling:                                                                               – set of names that can be used at a particular point
               – creating callback functions
               – setting the callback function for a particular event                                    • Referencing environment for functions passed as parameters:
               – Canvas event objects                                                                       – shallow binding: names that can be accessed depend on where function is called 
                                                                                                            – deep binding: names that can be accessed depend on where function is defined
           Fall 2008                             Review                                    13          Fall 2008                              Review                                   14
                                Logic programming: Prolog                                                                    Logic programming: Prolog
            • Prolog statements:                                                                         • Trees:
               – Facts.                                                                                     – representing trees
               – Rules.                                                                                     – working with BSTs
               – Queries.
                                                                                                         • Cut:
            • Answering queries:                                                                            – what cut does
               – Unification.                                                                                – avoiding wrong answers
               – Resolution.                                                                                – avoiding duplicate answers
               – Backtracking.                                                                              – avoiding unnecessary work
                                                                                                            – green vs red
            • Working with lists.
                                                                                                         • Negation:
            • Math.                                                                                         – what negation in Prolog really means
                                                                                                            – using negation safely
            • Structures:
               – No structural difference between queries and data.
           Fall 2008                             Review                                    15          Fall 2008                              Review                                   16
The words contained in this file might help you see if this file matches what you are looking for:

...The current topic review announcements lab was due today at am introduction object oriented programming python aids allowed for nal exam functional scheme one double sided aid sheet produced however you like on standard letter sized gui tkinter x paper types and values period ofce hours logic prolog monday dec th sf syntax semantics wednesday exceptions friday tuesday project marking reports will be emailed as usual to your ecf accounts watch page re deadlines fall disclaimer this is not a comprehensive topics that aren t variables mentioned here may still appear store references actual built in include lists tuples dictionaries strings booleans numbers int oat complex long strongly typed type restrictions are enforced dynamically determined runtime there no declarations parameters return etc code structure indentation meaningful containers collections of objects mutable sequences have some kind ordering sequence vs immutable set key value pairs loops while slicing getting portion list...

no reviews yet
Please Login to review.