This 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, which means that

you may

  • browse and search the internet,
  • review books,
  • review public questions and answers already posted on Ed by you or your fellow students,
  • review the course’s own materials,
  • use VS Code, and
  • make private-to-staff Ed posts seeking clarification on questions’ wordings (content-based questions will not be answered), but

you may not

  • copy/paste answers from the internet,
  • email your teaching fellow, the staff list, or any members of the course staff individually,
  • provide help to anyone, or
  • receive or solicit help (including by posting online anywhere other than Ed) from anyone other than the course’s heads.

Take care to review the course’s policy on academic honesty in its entirety. Note particularly, but not only, that

  • looking at another individual’s work during the test is not reasonable,
  • turning to humans (besides the course’s heads, via Ed) for help or receiving help from humans (besides the course’s heads, via Ed) during the test is not reasonable,
  • using AI-based software (tools such as ChatGPT, Copilot, the new Bing, et al.) that suggests or completes answers to questions or lines of code is not reasonable,
  • viewing another’s solution to a problem set’s problem or test’s question, whether online or in-person, and basing your own solution on it is not reasonable, and
  • all of your answers must be in your own words.

Unless otherwise noted, you may call any functions we’ve encountered this term in code that you write. You needn’t comment code that you write, but comments may help in cases of partial credit. If having difficulty with code, you may resort to pseudocode for potential partial credit.

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. And most problems aspire to teach something new. Be sure to click (and learn from) any links or videos included in problems.

You may resubmit as many times as you would like before the test’s deadline. Late submissions are not allowed, and will result, without exception, in a final test score of zero.

Citing Sources

For every question (both written and code questions), you must list any external (non-CS50-provided) resources you use to answer the question, including the URLs of any web sites you consult. List the resources in the answer box provided for written questions, and using a comment at the top of the source file for code questions.

What To Do

  1. Log into code.cs50.io using your GitHub account
  2. Run update50 in your codespace’s terminal window to ensure your codespace is up-to-date and, when prompted, click Rebuild now
  3. In VS Code, execute

    to move your terminal to your home folder. Next execute

     wget https://cdn.cs50.net/2022/fall/test/test.zip

    to download the distribution code for the test. Execute unzip test.zip to create a folder named test that contains two folders (jack and js). Each of these folders contains files or distribution code relevant to “Jack is Back” and “DéJSà Vu,” respectively.

  4. You no longer need the ZIP file, so you should execute rm test.zip. You’ll be zipping your answers up later, and deleting this ZIP file will ensure when you create the new one, you won’t accidentally upload the distribution files instead.
  5. Go to CS50’s Gradescope page.
  6. Open Test: Written Answers and solve all of the problems listed therein, in any order you like. Note that some questions will not have an answer box, but will instead ask you to work in one of the files in your test directory within VS Code, rather than answer directly on Gradescope. Be sure to save your answers on Gradescope (as via the “Save Answer(s)” button) and in VS Code periodically as you work on the test. You may resubmit those answers as many times as you’d like prior to the test’s deadline.


  1. Acknowledgement, in Gradescope
  2. Around the World
  3. Code Reviews
  4. ComiCS
  5. DéJSà Vu
  6. Jack is Back
  7. Ships from Nearby
  8. Time to BeReal
  9. Verified on Twitter
  10. What does the cowsay?


Reload this page (and each problem’s page) throughout the week to see any clarifications to the test.

How to Submit

Submit to the “Test: Code Files” Assignment

  1. Before submitting, download a ZIP file of your test folder, which should contain only two subfolders: jack and js, with the files you’ve edited for “Jack is Back” and DéJSà Vu,” respectively, inside of those subfolders. All other code files you’ve written should instead be uploaded to their corresponding question in the “Test: Written Answers” assignment.
  2. First, ensure you are in your test directory by running


    followed by

     cd test

    Make sure your terminal prompt looks like the below:

     test/ $

    Then, run the following command:

     zip -r test.zip * -x \**/node_modules/*

    Note that -x \**/node_modules/* excludes Node files you installed in DéJSà Vu, which you don’t need to submit!

  3. Control-click or right-click on your test.zip file in VS Code’s file browser and choose Download.
  4. Go to CS50’s Gradescope page.
  5. Click Test: Code Files.
  6. Drag and drop your test.zip file to the area that says “Drag & Drop”.
  7. Click “Upload”.
  8. You should see a message that says “Test: Code Files submitted successfully!”

Submit to the “Test: Written Answers” Assignment

  1. Ensure that all of your written answers and uploaded files are to your satisfaction and have been saved in the Test: Written Answers assignment.
  2. Click Submit & View Submission.
  3. You should see your responses as submitted. Double check to be sure that they are as you intend. Gradescope may show you that a few questions have been left unanswered: so long as these remaining few questions are those that asked you to submit files to the Test: Code Files assignment, you’ve submitted your answers to all questions successfully.

Be certain that both parts of your submission have been submitted/uploaded prior to the deadline! You are welcome to resubmit your code files and written answers as often as you like until the deadline.

If you run into any trouble with the above steps, email heads@cs50.harvard.edu, or post to Ed per the instructions above!