# CSCI 350 - Summer 2017 Operating Systems

## Submission Instructions

In all programming assignments, you must: 1. First push your code to your GitHub repository (i.e. hw-usc-username) 1. Then complete a small form on our web-server that will ask you for the full SHA of the commit to GitHub.

Your code must be pushed to Github AND your SHA submitted on our website BEFORE the deadline. The image below shows how to copy your SHA to the clipboard. Note that we need your full SHA and not the 7-10 digit digest. The SHA should be 30-40 digits. Once that is done you do not need to actively upload or send us any code. We will pull the repository state indicated by the SHA you submitted and grade it at a later date.

### Step 1. Preparing Your Code for Submission

After concluding work on your assignment, you are to take a moment and make sure that your repository is in a good state for submission. This is a three step process and you are to follow all these steps unless otherwise noted in the assignment write-up, corresponding rubric or explicitly instructed by the professors:

• Create a README.md in the directory for each assignment indicating any notes you want us to know
• Suppress all debug messages (remove any printf statements or other debug output)
• All assignment files are added and committed to Github
• Make sure your code compiles with no warnings and no errors

### Step 2. Push your commits to GitHub

After you've verified that your assignment is ready to be submitted, push your code. Run a git status on your repository and make sure that there are no files listed as:

• Changes to be committed or
• Changes not staged for commit

Before the deadline and after pushing your submission to GitHub, you must ( MUST ) clone your code in a separate directory (i.e. new location) as detailed at the end of every assignment page.

In that separate deirectory, compile, run and test your code using the instructions you wrote in your README.md file to ensure it works as expected.

### Late Submissions

No special action is needed for late assignments (if you have grace days). If you have grace days, simply push your code to Github and the SHA via our website.

### Submission FAQs

#### Q1. How do I Checkout A Specific Commit

In the case you want to checkout a specific version of your code, such as the commit used in grading your first assignment, You first need to locate the SHA of that commit. To checkout commit d8da410b19cf0a9f5a3003120204a114b8496942 from ttrojan's restaurant repository:

cd
git clone git@github.com:usc-csci350-summer2017/hw-ttrojan.git test_assignment
cd test_assignment
git checkout d8da410b19cf0a9f5a3003120204a114b8496942


Notice that by checking out a specific commit, you "detach" yourself from the master branch. When you're done verifying the commit, you should point HEAD back to master. You should never work in a 'detached HEAD' state.

# reset the changes we've made during the 'detached HEAD' state
git stash
# point HEAD back to master
git checkout master