About the Test

Release Deadline
2021-11-15T16:15:00-05:00 2021-11-21T23:59:00-05:00

The test is a take-home that will cover Weeks 0 through 9 (and Problem Sets 0 through 9). The test is open-book: you may use any and all non-human resources during the test, but the only humans to whom you may turn for help or from whom you may receive help are the course’s heads.

The test will be released via the course’s website and will be submitted via Gradescope. You should expect to spend several hours (not days!) on the test.

Among the test’s aims is to assess your newfound comfort with the course’s material and your ability to apply the course’s lessons to familiar and unfamiliar problems. The test’s format (but not necessarily content) will resemble the below, with short-answer questions as well as longer-answer questions. In previous years, the course had both a quiz (longer than this year’s quizzes) and test. Some questions may involve code (for which you’re welcome to use VS Code). Expect to spend at least thirty minutes per question.

Past Problems

Review Sessions

CS50’s course heads will host three (recorded) review sessions. Each session will cover a subset of weeks from the course and will structure guided practice with related past problems. You’re encouraged to attend to ask any questions about course material.

Algorithms and Programming Languages

This review session will take place 2021-11-10T19:00:00-05:00/2021-11-10T20:00:00-05:00 via Zoom, and will cover key ideas from Weeks 1, 2, 3, and 6.

Memory and Data Structures

This review session will take place 2021-11-11T19:00:00-05:00/2021-11-11T20:00:00-05:00 via Zoom, and will cover key ideas from Weeks 4 and 5.

Web Programming: SQL, HTML, CSS, and JavaScript

This review session will take place 2021-11-12T15:00:00-05:00/2021-11-12T16:00:00-05:00 and will cover key ideas from Weeks 7, 8, and 9.

How to Prepare

Ultimately, how best to prepare depends on how you learn best. But allow us to recommend that you prioritize your studies per the ordering below.

  1. Review each week’s notes.
  2. Review each week’s source code, if any.
  3. Review each week’s slides.
  4. Review each week’s shorts, if any.
  5. Attend or watch the review session.
  6. Take past years’ quizzes and tests and, only after you’ve attempted each of their questions, review their sample solutions. Realize, though, that some topics covered in past years might not have been covered in this term. Rely on this year’s lectures and problem sets as the official sources for this year’s topics.
  7. Review problem sets’ specifications, sample solutions, and, if any, distribution code.
  8. Review each lecture’s video.