Midterm 2 Information
Time: | 7pm-9pm Monday October 28 |
Location: |
2040 VLSB (logins ab - dh)
2050 VLSB (logins di - yu)
0145 DWINELLE (logins yv - adc)
0155 DWINELLE (logins add - anw)
0010 EVANS (logins anx - auo)
0120 LATIMER (logins aup - ayj)
0001 PIMENTEL (logins ayk - bzz)
|
The campus map shows locations of all rooms.
The exam is closed note, except for:
- A 1-page (front and back) hand written 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 2 of the lecture
notes, except for 2.4.6, 2.4.7, 2.4.8, and 2.6. Those topics
include:
- Primitive expressions
- Call expressions
- Import statements
- Expression trees
- Assignment statements
- Pure and non-pure functions
- Def statements and user-defined functions
- Applying user-defined functions
- Environments
- Environment diagrams
- Arithmetic operators
- Local assignment
- Conditional statements
- Boolean contexts
- Boolean operators
- Iteration with while statements
- Passing functions as arguments
- Nested def statements
- Functions as returned values
- Lambda expressions
- Currying
- Iterative improvement
- Newton's method
- Recursive functions
- Mutual recursion
- Tree recursion
- Data abstraction
- Tuples
- Functional pairs
- The sequence abstraction
- Recursive lists
- For statements
- Ranges
- Strings
- Map, filter, and reduce
- Generator expressions
- Lists
- List comprehensions
- Dictionaries
- Dictionary comprehensions
- Mutable data
- Nonlocal statements
- Identity vs. equality
- Class statements
- Invoking methods
- Dot expression evaluation
- Attribute assignment
- Bound methods vs functions
- Class vs instance attributes
- Inheritance
- Using multiple inheritance
- Recursive list processing
- Tree-structured data
- Trees with internal values
- Orders of growth
- Memoization
- Sets and set representations
- str and repr strings
- Interfaces
- Property methods
- Special methods
- Type dispatching
- Data-directed programming
- Type Coercion
Particular emphasis will be given to non-local assignment, object-oriented
programming, recursion, and recursive data structures.
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
Links to all publicly available previous exams are listed below, for your
convenience.
- Fall 2011
- Summer 2012
- Fall 2012
- Spring 2013
- Summer 2013
- Fall 2013
Review Sessions
The main review session will be held 1pm-4pm on Saturday 10/26 in 1
Pimentel.
Berkeley HKN will hold a
review session 4pm-7pm on Sunday 10/27 in 2050 Valley LSB. They provide
this review session on a volunteer basis; please thank them for their service.
Make-Up Exam
A make-up exam will be held 6pm-8pm on Tuesday 10/29 in 320 Soda Hall. You
can only take this exam if you have filled out this conflict form by 11:59pm on Friday 10/25. You
will receive email on Saturday 10/26 confirming that you can take the make-up
exam.