Final Exam Information
Time: | 7pm-10pm Thursday August 15 |
Location: | 1 PIMENTEL |
The campus map shows the location of
Pimentel Hall.
The exam is closed note, except for:
Topics Covered
The exam will cover all course topics through Chapter 4.7 of the lecture
notes, except for topics marked as Practical Guidance or
Bonus Material. Those topics include:
- Primitive expressions
- Call expressions
- Import statements
- Expression trees
- Assignment statements
- Function diagrams
- Pure and non-pure functions
- Def statements and user-defined functions
- Applying user-defined functions
- Environments
- Arithmetic operators
- Local assignment
- Conditional statements
- Boolean contexts
- Boolean operators
- Iteration with while statements
- Passing functions as Arguments
- Iterative improvement
- Nested def statements
- Functions as Returned Values
- Lambda expressions
- Newton's method
- Decorators
- Data abstraction
- Recursive functions
- Tree-recursive functions
- Tuples
- Functional pairs
- Dispatch functions
- The sequence abstraction
- Recursive lists
- For statements
- Ranges
- Strings
- Map, filter, and reduce on sequences
- Generator expressions
- Mutable data
- Nonlocal statements
- Identity vs. equality
- Lists
- List comprehensions
- Implementing mutable recursive lists
- Message passing
- Dictionaries
- Implementing dictionaries
- Class statements
- Invoking methods
- Dot expression evaluation
- Dot expression assignment
- Bound methods vs functions
- Class vs instance attributes
- Inheritance
- Using multiple inheritance
- Implementing bound methods
- String coercion to str and repr strings
- Interfaces
- Property methods
- Special methods
- Type dispatching
- Data-directed programming
- Type Coercion
- Memoization
- Order of growth
- Recursive list processing
- Tree-structured data
- Trees with internal values
- Sets
- Exceptions
- The Scheme language
- Scheme lists
- Parsing (syntactic analysis)
- Eval/Apply mutual recursion
- Dynamic vs lexical scope
- Tail calls
- Iterators
- Generators and generator functions
- Streams
- The Logic language
- MapReduce
- Parallelism
Scheme: The exam may contain Scheme
examples and may ask you to write Scheme code. However, the Scheme language
special forms will be limited to lambda, mu, if, and
define. Built-in procedures will be limited to cons, car, cdr,
list and numeric predicates and procedures.
Logic: The exam may contain Logic
examples, but will not include the details of unification or the
implementation of the Logic interpreter.
Parallelism: The exam may ask you to analyze simple examples
of parallel
code to determine if they are properly synchronized, and if not, then what can
go wrong. You will not have to write any parallel code yourself.
Particular emphasis will be given to:
- Higher-order functions
- Environment diagrams
- Sequences (tuples, lists, recursive lists, Scheme lists)
- Non-local assignment
- Mutable values
- Object-oriented programming
- Recursion and recursive data
- Parsing
- Eval/Apply mutual recursion with dynamic/lexical scope
- Iterators, generators, and streams
Practice Exams
The previous exams most similar in topics covered to your upcoming final
are the Spring 2013, Fall 2012, Fall 2011 61A Final exams. Links to all
publicly available previous exams are listed below, for your convenience.
- Fall 2011
- Summer 2012
- Fall 2012
- Spring 2013
- Summer 2013