Test

This test is open-book: you may use most 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, and the CS50 Duck on Ed will be temporarily deactivated–if asked elsewhere, know that only Ed posts to which humans respond should be considered authoritative clarifications), 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 exclusively, 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 external 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, even in light of the additional consideration below.

but that

  • Using CS50’s own AI-based software (including cs50.ai, et al.) is reasonable (therefore, in keeping with the above, you may use these tools to assist in your understanding surrounding these questions, but you may not use these tools so as to have it answer the question for you).

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.

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. Extensions on the test will not be granted.

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
     cd
    

    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, via the above Save Answer(s) or Resubmit buttons in the interface.

When to Do It

By 2023-07-27T11:59:00-04:00.

Problems

  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?

CHANGELOG

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

  • 2023-07-25T23:45:00-04:00 - Due to a configuration error, check50 appears to have been validating Code Files answers. Since many students have already benefited from this, we have decided to leave it on for all students. check50 is only invoked by submitting the Test Files and cannot be run separately.
  • 2023-07-24T16:30:00-04:00 - Changed one of the comics in ComiCS. No alterations to any question text, purely cosmetic.

How to Submit

You may submit to both the Code Files and Written Answers portions of the test as many times as you’d like prior to the deadline. Only your final submission for each will count.

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

     cd
    

    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 “only” a subset of the total questions have been answered: so long as these remaining 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!