There are two examinations planned for this class.

The examinations will be completed remotely. One of the most common student concerns for remote education is the integrity of assignments: 61% of students agreed with the statement "I am worried about others cheating and my grade looking worse by comparison." As a result, we are taking aggressive, experimental measures with exam creation and delivery to help ensure that student grades reflect mastery of the material.

A distinct examination will be created for each student. This will involve not only usual techniques, such as selecting a subset of questions or answers from a larger pool, but also software-specific approaches. For example, for problems on the examination involving the analysis or manipulation of a program (e.g., "Create a test suite for this Python program that maximizes branch coverage ..."), a different random program will be constructed for each student by the examination server (which will also compute a per-student answer key).

One goal of this process is to reduce the cost/benefit tradeoff for cheating: if completing two exams requires twice as much work and the risk is increased (e.g., the course staff have twice as many datapoints on which to spot suspicious patterns), the incentive to cheat is lessened.

The examinations will be open book, open notes, open internet. In essence, you can use any resource except another live human.

Advice From Former Students

Read what former students had to say about reading quizzes and examinations.


There is a ten-minute screencast describing the interface. On the day of the exam, you will be able to choose any two-hour window you like to take the exam. (That is, you can pick any 2 hours within the 24-hour day.)

In addition, you can practice using the exam interface using a previous semester's exam.

The interface auto-saves your work every five minutes and you can also save and submit as often as you like. We will grade your last submission before the two-hour deadline.

Warning: Late Submissions

Because these exams are normally completable in 80 minutes and we are giving 120 minute slots (with 5 extra minutes for technology or network difficulties) within a 24 hour window, we will be very strict about time constraints. Late submissions will not be accepted without significant documentation of an accepted excuse. Please plan ahead accordingly.

Exam Topics

Each exam covers everything up to and including the day of the exam, except any lecture or reading on the day of the exam itself. (The "Trivia" and "Psychology" slides with colored borders and the Optional Reading are not part of the exam, but may be part of extra credit questions.) This means that something in the lecture the "day before" the exam is fair game. This also means that the second exam is cumulative and may include material also covered in the first part of the exam (but it is likely to focus more on new material).

General philosophy:

Previous Exams

Note that in previous semesters the material was covered in a different order, the exams may have been given in person or via another take-home method, and many other things may have changed. It is often very tempting for students to read the previous exams and then worry: "Oh my, this previous exam is very long and has strange rule X and covers topic Y that I've never heard of. Will my exam be like that?" No, it will not. The previous exams are provided as a courtesy and as a source of example problems: they are not strict guidelines.

Previous Midterm Exams (i.e., Exam #1) and answer keys:

Previous Final Exams (i.e., Exam #2) and answer keys:

Note that provided answer keys need not be exhaustive: they often list "one possible answer" rather than "all possible answers".

Review Sessions

If there is sufficient interest, the TAs will organize review sessions for the exam. This will not happen automatically. Demonstrate your interest via the forum or your discussion section.

Study Aids

Practice Reading Your Notes Out Loud

"Producing items by means as simple as saying, writing, or typing them can yield substantial memory improvements relative to silent reading. We review the research on this production effect and outline some important extensions and boundary conditions. We also evaluate the evidence that production enhances the distinctiveness of items in memory during encoding, thereby facilitating their later retrieval. There are issues to resolve and areas to explore, but production offers a practical means of enhancing some forms of long-term, explicit memory."

Colin M. MacLeod and Glen E. Bodner. The Production Effect in Memory. Memory, Vol 26, Issue 4, 2017.