|Time:||11:30am-2:30pm Tuesday May 14|
220 HEARST GYM (logins 1a-3z, aa-ez, aaa-abz) 230 HEARST GYM (logins fa-oz) 237 HEARST GYM (logins pa-zz)
You will be assigned a location based on your login; check back here before the exam. The campus map shows the location of Hearst Gym.
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 exam will include the following study guides:
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:
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.
Halting Problem: The exam will not contain any questions concerning the halting problem..
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:
The previous exam questions most similar in topics covered to your upcoming midterm are:
The TAs will be holding special themed office hours the week of 5/6 through 5/10. More information will be posted shortly.
Office hours held during the week of 5/6 through 5/10 have a special schedule and the topic-specific themes listed below. Bring your questions about those topics. We will have time in office hours for general questions as well. The practice problems discussed during these office hours can be found here.
|Monday 5/6 @ 12:00pm||Higher-order functions||Richard||271 Soda|
|Monday 5/6 @ 1:00pm||Lambda expressions||Richard||271 Soda|
|Monday 5/6 @ 2:00pm||Iterative improvement||Albert||271 Soda|
|Monday 5/6 @ 3:00pm||Environment diagrams||Julia||271 Soda|
|Monday 5/6 @ 4:00pm||Sequences and nested tuples||Julia||271 Soda|
|Tuesday 5/7 @ 12:00pm||Lists and dictionaries||Albert||271 Soda|
|Tuesday 5/7 @ 1:00pm||Non-local assignment||Albert||271 Soda|
|Tuesday 5/7 @ 2:00pm||Dispatch functions and dictionaries||Sharad||271 Soda|
|Tuesday 5/7 @ 3:00pm||Identity, equality, and mutable values||Hamilton||271 Soda|
|Tuesday 5/7 @ 4:00pm||Classes, instances, and inheritance||Hamilton||271 Soda|
|Wednesday 5/8 @ 12:00pm||Dot expressions and bound methods||Mark||271 Soda|
|Wednesday 5/8 @ 1:00pm||Type dispatching and coercion||Mark||271 Soda|
|Wednesday 5/8 @ 2:00pm||Recursion||Mark||271 Soda|
|Wednesday 5/8 @ 3:00pm||Recursive data structures||Joy||271 Soda|
|Wednesday 5/8 @ 4:00pm||Trees and tree-structured sets||Joy||271 Soda|
|Thursday 5/9 @ 12:00pm||Orders of growth||Robert||271 Soda|
|Thursday 5/9 @ 1:00pm||Scheme and lexical vs. dynamic scope||Robert||271 Soda|
|Thursday 5/9 @ 2:00pm||Scheme lists and parsing Scheme||Keegan||271 Soda|
|Thursday 5/9 @ 3:00pm||Tail calls||Keegan||271 Soda|
|Thursday 5/9 @ 4:00pm||MapReduce and Parallelism||Robert||271 Soda|
|Friday 5/10 @ 12:00pm||Generators and generator functions||Soumya||271 Soda|
|Friday 5/10 @ 1:00pm||Streams||Soumya||271 Soda|
|Friday 5/10 @ 2:00pm||The Logic language||Stephen||271 Soda|
|Friday 5/10 @ 3:00pm||Answering Logic queries||Stephen||271 Soda|
|Friday 5/10 @ 4:00pm||Iterators and iterables||Sharad||271 Soda|