CS 4804: Homework Submission Instructions

Your homework assignments will each include a written problem set and a programming project. Each will be uploaded to Canvas as a separate assignment. To help us grade your work faster and get you feedback quickly, we require you to follow the procedure detailed here for homework submission.

Directory structure

Save your homework in a directory with the name


where you use your Virginia Tech PID in place of PID and the homework number (0 - 6) in place of the number sign (#). For example, if I am preparing a submission for homework 0, I would store my files in bhuang-hw0. I'll refer to this directory as your submission directory

For each of our programming projects, they will have a corresponding directory name for the download file. For example, the download file for homework 0 is an archived directory named tutorial. Place this folder with your modified files in your submission directory.

Place a file in your main submission directory called "autograder_output.txt" that contains the output of the autograder when you run it on your machine. We will compare this to what we see to try to catch any issues. If our autograders disagree, we will know to take a closer look to figure out where the error is.

Optionally, include a README file in your submission directory to tell us of any special notes we should be aware of. You should not need to do this because your code comments can often be enough to convey what we need to know to grade your work, but the README file is where you should put any notes that don't fit in code comments. With these three components, if I am submitting homework 0, my directory structure would be as follows.


Archiving and compressing your directory

In a unix or linux environment, archive your directory by entering the following command

tar -czvf PID-hw#.tar.gz PID-hw#/

Again, if I am submitting homework 0, this command with the proper subsitutions would be

tar -czvf bhuang-hw0.tar.gz bhuang-hw0/

The flags here for the tar command do the following: c means we're creating an archive, z means we're compressing it, v means we're asking tar to be verbose and display every file it archives and compresses, and f means we're compressing the contents of a folder. This command should generate a single file that contains an archive of your submission directory.

Uploading to Canvas

After following the instructions above, you will have two files to submit: (1) your answers for the written problems and (2) the archive of your programming assignment submission directory. Each of these will be a separate assignment on Canvas. For example, "Homework 0 Written Problems" and "Homework 0 Programming." Upload these files to the corresponding assignment.

Note: We prefer if you do not compress or archive your written solutions.