For CS184 assignments, you must perform all of the following steps for your submission to be considered complete. You can verify your code submission based on these instructions.

  1. Commit and tag your code (GitHub)
  2. Host your write-up (GitHub Pages)
  3. Submit write-up PDF (Gradescope)

You should have been added to Gradescope if you are enrolled in the class. If you are not on Gradescope but are enrolled in the class, please make a private Piazza post about this with your name, SID, and email.

Slip / late day policy: You have a total of 5 slip days to use on assignments throughout the semester, but you do not have slip days for checkpoint quizzes. Assignments submitted after 11:59PM are considered a full day late. There is no late minutes or late hours. After you have used all 5 slips days, you will lose 10% for each day you submit an assignment late.

1. Committing and Tagging Your Code (GitHub)

Your assignment code will be hosted on GitHub. After you are satisfied with all of your implementations, you should perform the following steps:

(1) commit and push all your code to the master branch of your GitHub repository. (2) tag and push the commit you wish to use as your submission with name submission. You final tag must be created before the deadline.

To tag the latest commit, perform the following steps:

git tag submission          // (1) Tag the latest commit as "submission"
git push origin submission  // (2) Push the submission tag to remote server

To update a tag, perform the following steps:

git push origin :refs/tags/submission   // (1) Delete the old tag on remote server
git tag -f submission                   // (2) Tag the latest commit as "submission"
git push origin submission              // (3) Push the submission tag to remote server

Instead of tagging the latest commit, you can also tag a particular commit by its ID using git tag {ID} submission. For more information on tagging, see this Git documentation.

2. Hosting Your Write-Up (GitHub Pages)

Your assignment write-up will be hosted on GitHub Pages and submitted to Gradescope. You should perform the following steps to host your write-up:

(1) Navigate to your assignment repository on GitHub. (2) Under your repository name, click "Settings". (3) Navigate to "GitHub Pages" near the bottom. (4) Under "Source", use the drop-down menu to select master branch /docs folder as your publishing source. Once done, you should see a message saying "Your site is ready to be published at ...". (5) Finally, you can place your write-up as .html files in this /docs folder.

Your write-up must be hosted on GitHub Pages. If you absolutely want to host it somewhere else, please make it very obvious in the write-up PDF you submit to Gradescope, since we will be grading off of your write-up webpage.

3. Submitting Write-Up PDF (Gradescope)

You should submit a PDF version of your write-up to Gradescope. To export your write-up webpage as a PDF, you can print the webpage and save it as a PDF.

This PDF submission helps us validate your submission and assign points to your write-up. It is expected that the PDF version matches the live version of your webpage. In other words, do not edit your webpage in any significant way after the deadline. Editing grammar and fixing typo are fine, but please do not add entire sentences or images.

Remember that grading starts with your write-up, so make it clear and easy to read! Do not forget to submit the PDF to Gradescope before the deadline.

Verifying Code Submissions

To sanity check and ensure you have submitted your code on GitHub, you can check the assignment overview page on the course website. This page will check for a submission tag on GitHub and show a preview of the root README.md file on the relevant tree. You can refresh this data using the refresh button on the right.

If there is still no submission after refreshing, ensure that you have correctly tagged your commit as submission. If you are still unsure of the issue, please contact course staff.

You can also view your code submission right on GitHub under the "releases" tab. Your submission should be under a release named submission. If you click the commit "sha" on the left, you can see details of the latest commit. If you hit "browse files" on the top right of this page, you can see the full file structure of your submission. These links will also be available on the assignment overview page if a submission is found.