Midterm 2 Information
Time: | 7pm-9pm Thursday August 1 |
Location: |
2050 Valley Life Sciences Building (logins aa-gz)
2060 Valley Life Sciences Building (logins ha-jz)
2040 Valley Life Sciences Building (logins ka-zz)
|
The campus map shows locations of
Valley Life Sciences.
The exam is closed note, except for:
- A 1-page (front and back) handwritten crib sheet of notes that
you write yourself (it may not be shared).
- The Midterm 1 Study Guide and
the Midterm 2 Study Guide. Copies of
these guides will be provided with your exam.
Topics Covered
The exam will cover all course topics through Chapter 3.6.4 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
- 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
- Message passing
- Dictionaries
- Class statements
- Invoking methods
- Dot expression evaluation
- Dot expression assignment
- Bound methods vs functions
- Class vs instance attributes
- Inheritance
- Using multiple inheritance
- String coercion to str and repr strings
- Interfaces
- Property methods
- Special methods
- Type dispatching
- Data-directed programming
- Type coercion
- Recursive functions
- Tree-recursive functions
- Memoization
- Order of growth
- Recursive list processing
- Tree-structured data
- Trees with internal values
- Sets
- Exceptions
- The Scheme language
- Scheme lists
- Social implications of computing
Particular emphasis will be given to non-local assignment, object-oriented
programming, and recursion.
You should be prepared to answer questions that relate closely to the
projects and homework assignments (not including "extra for experts"
problems). You should also know how to draw an environment diagram by hand.
Practice Exams
The previous exams most similar in topics covered to your upcoming midterm
are the Fall 2011, Fall 2012, Spring 2013 61A Midterm 2 exams. Links to all
publicly available previous exams are listed below, for your convenience.
- Fall 2011
- Summer 2012
- Fall 2012
- Spring 2013
- Summer 2013