Final Exam Information

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:

Please do not bring your own copies of these guides to the exam.

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:

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:

Links to all publicly available previous exams are listed below, for your convenience.

Review Sessions

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:00pmHigher-order functionsRichard271 Soda
Monday 5/6 @ 1:00pmLambda expressionsRichard271 Soda
Monday 5/6 @ 2:00pmIterative improvementAlbert271 Soda
Monday 5/6 @ 3:00pmEnvironment diagramsJulia271 Soda
Monday 5/6 @ 4:00pmSequences and nested tuplesJulia271 Soda
Tuesday 5/7 @ 12:00pmLists and dictionariesAlbert271 Soda
Tuesday 5/7 @ 1:00pmNon-local assignmentAlbert271 Soda
Tuesday 5/7 @ 2:00pmDispatch functions and dictionariesSharad271 Soda
Tuesday 5/7 @ 3:00pmIdentity, equality, and mutable valuesHamilton271 Soda
Tuesday 5/7 @ 4:00pmClasses, instances, and inheritanceHamilton271 Soda
Wednesday 5/8 @ 12:00pmDot expressions and bound methodsMark271 Soda
Wednesday 5/8 @ 1:00pmType dispatching and coercionMark271 Soda
Wednesday 5/8 @ 2:00pmRecursionMark271 Soda
Wednesday 5/8 @ 3:00pmRecursive data structuresJoy271 Soda
Wednesday 5/8 @ 4:00pmTrees and tree-structured setsJoy271 Soda
Thursday 5/9 @ 12:00pmOrders of growthRobert271 Soda
Thursday 5/9 @ 1:00pmScheme and lexical vs. dynamic scopeRobert271 Soda
Thursday 5/9 @ 2:00pmScheme lists and parsing SchemeKeegan271 Soda
Thursday 5/9 @ 3:00pmTail callsKeegan271 Soda
Thursday 5/9 @ 4:00pmMapReduce and ParallelismRobert271 Soda
Friday 5/10 @ 12:00pmGenerators and generator functionsSoumya271 Soda
Friday 5/10 @ 1:00pmStreamsSoumya271 Soda
Friday 5/10 @ 2:00pmThe Logic languageStephen271 Soda
Friday 5/10 @ 3:00pmAnswering Logic queriesStephen271 Soda
Friday 5/10 @ 4:00pmIterators and iterablesSharad271 Soda