About the Test
This is information about the test. Looking for the test itself?
Release | Deadline |
---|---|
2023-07-24T12:00:00-04:00 | 2023-07-27T11:59:00-04: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 and test. Some questions may involve code (for which you’re welcome to use VS Code). Expect to spend at least thirty to forty-five minutes per question.
Past Problems
- Fall 2021’s Test and sample solutions
- Fall 2020’s Test and sample solutions
- Fall 2019’s Test and sample solutions
- Fall 2018’s Quiz and sample solutions
- Fall 2017’s Test and sample solutions
- Skip Being Served
- Fall 2017’s Quiz and sample solutions
- Skip Comparing Students, Stack is Back, and Vantage Points
Review Sessions
CS50’s course heads pre-recorded three review sessions. Each session covers a subset of weeks from the course and structures guided practice with related past problems. You’re encouraged to watch these sessions to review course material.
Algorithms and Programming Languages
This review session covers key ideas from Weeks 1, 2, 3, and 6.
- Slides
- Video
Memory and Data Structures
This review session covers key ideas from Weeks 4 and 5.
- Slides
- Video
Web Programming: SQL, HTML, CSS, and JavaScript
This review session covers key ideas from Weeks 7, 8, and 9.
- Slides
- Video
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.
- Review each week’s notes.
- Review each week’s source code, if any.
- Review each week’s slides.
- Review each week’s shorts, if any.
- Attend or watch the review sessions.
- 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.
- Review problem sets’ specifications, sample solutions, and, if any, distribution code.
- Review each lecture’s video.