The midterm will be in class on Wednesday, October 28 (10:30-11:20am)
The final exam will be in G01 (usual classroom) on Monday, December 14 from 8:30-10:20am
Do study all the course materials—taking old midterms and doing your homework is helpful (of course), but not a complete substitute for making sure you are familiar with all the concepts, particularly for the more recent topics where we did not have homework. Study actively—not just skimming readings or slides or passively watching videos, but writing down ideas, trying out ideas, and seeing how concepts fit together.
The exam will not be able to cover everything. Old exams, while a good indication of the type of questions and level of difficulty you might expect, are also not intended to to describe every topic or kind of question we might have. We will try to resemble the style of old exams, but Gilbert is a different instructor, and the course material is not 100% the same.
Make the most of Thursday sections and, if you are available, any TA-led review sessions. You will get the most out of review sessions if you study enough beforehand to know which topics you want reviewed. You will get more out of review sessions if you participate actively.
As always, questions about course content on the discussion board are encouraged.
The material on the midterm can be anything from Units 1, 2, 3, or 4 except for the few topics we clearly marked "optional." To remind you, this includes (non-exhaustively):
OCaml syntax
Typing and evaluation enviroments
Type checking and (evaluation) semantics
Types (int, bool, string, tuples, lists, options, records, variants)
(Parametric) polymorphism (i.e. 'a type variables)
Expressions and bindings, including local bindings
Function bindings and calls
Pattern matching, including nested patterns and patterns outside match expressions
Tail recursion
Higher-order functions
lexical scope
Functional programming idioms
Exceptions
The midterm is in class, so you will have 50 minutes.
The midterm is on paper. We will include plenty of room for your answers and for any scratch work, including pages at the end.
The midterm is closed book, closed electronics, closed notes, etc. except...
You may bring one 5" x 8" index card with whatever notes you wish written on both sides for reference. The notes must be hand-written.
We have a collection of midterms from previous quarters available here.
We have omitted pre-pandemic midterms, since they use SML (not OCaml) and use different formats. Thus, we believe they are more likely to be confusing than helpful with your studying.
An Important Suggestion! Don't try these exams until after you've done your studying, then use them as a check for how well you are prepared. To get the most out of a sample exam, print the blank version and work the problems in a quiet room in the time normally allowed for the exam. After doing that, compare your solutions to the sample solutions.
[coming soon!]