Assignments (PAs)

PAs are due by 11:59 pm on the due date (normally Fridays). Please see calendar for exact due dates and assigned PAs.

It is your responsibility to ensure that you have correctly submitted the correct code for your homework assignment. Incorrectly submitted assignments will be graded as-is. Late work will not be accepted.

PAs may be done alone or using pair programming, except for PA0 where you will need to complete alone. If you choose to use pair programming, you must engage in TRUE PAIR PROGRAMMING, as described in the Pair Programming Policy for the course. You are strongly encouraged to do pair programming in this course.


Disclaimer: To detect instances of academic integrity violations in programming assignments we will use 3rd party software. We recommend you only include your class lab account ID (not your name or PID) in your submissions. Including your name and/or PID will disclose that information to the 3rd party. See why Academic Integrity SERIOUSLY MATTERS here.

PA submission policy

You submit your PAs by (1) uploading your files to Vocareum, and (2) pressing “Submit”. (see "Submitting on Vocareum" section below for submission instructions.)


Here are some policies about PAs submission:

  • We will grade only the files that you submit through Vocareum. It is your responsibility to ensure you have uploaded the correct files and submitted them.
  • You may submit your code as many times as you want before the deadline. We will grade only your latest submission. We encourage you to begin submission as early as possible, at least several hours before the deadline.
  • We will test and grade your code on Vocareum, except for assignments that have a graphical component. For assignments without a graphical component, you must ensure they run correctly on Vocareum before you submit them. You can compile and run them in the Vocareum system. For assignments with a graphical component, you must ensure that they run on ieng6 (the lab machines) before you submit them. This is the only functionality that matters for your grade.
  • If your code does not compile, you will receive 0 credit for correctness. You may still receive points for style.
  • Submit your PA on time or it will be considered late.

Submission Scripts: When you submit your assignment, we will run a script to test parts of your assignment. These tests perform basic testing to ensure you have turned in the correct files and gotten a good part of the functionality working. However, these scripts are not exhaustive. At grading time we will run more comprehensive tests that more rigorously test your code. Just because the submission scripts pass does not mean you will get full credit on the assignment. You are encouraged to write your own tests, and in some cases, this is required as part of the assignment.

Submitting on Vocareum

  1. Go to the Vocareum website and log in. You should have received login information and links.
  2. Navigate to the submission page and select the correct PA. Then upload your files.
  3. Test your files on Vocareum. (Note: if this is an assignment that uses graphics, you won’t be able to run it on Vocareum, so you should make sure it runs on the lab machines). Open the terminal, compile your files and run them. Make sure they run as expected on Vocareum. We will ONLY run your code here so it must work on Vocareum. If you are unsure how to do this, please ask a tutor for help.
  4. Submit your files. → Don’t skip this step as simply uploading your files won’t complete the submission process.
  5. Let the script run.
    1. The script will make sure all required files are included and have the correct names. Then they will compile your code. Then, they will run our testers (which are not guaranteed to be complete) on your code. For this reason, read the script’s output as a basic sanity check to make sure everything worked.

How Points are Assigned

Code that compiles and runs on your computer, but not on Vocareum, will NOT receive points.

  1. Your code must compile. This is VERY IMPORTANT.
    1. If it does not compile, your code will receive no correctness points and no partial credit. Each non-compilable section receives a 0 for the coding portion.
  2. Your code compiles and at runtime is partially correct.
    1. Your code will be run against a number of tests.
    2. Some will test the core functionality of your code. Some tests will test edge cases. If you got your code working to some degree, you should receive points for at least some of these tests.
  3. Your code compiles and at runtime is mostly or entirely correct. (Considering normal cases and edge cases)
    1. Most or all points should be given.
  4. Style guidelines
    1. If you follow all the guidelines linked above, you should receive most or all points. However, there is a chance of uneven grades given (for example, between various assignments, it is possible that earlier assignments are more lenient). If your grader gave you feedback, remember it!
    2. Good style helps you organize your code better. So if you follow good style while you program, rather than finish your program and then polish your code, you will help yourself for future assignments. It also helps you brainstorm if you comment your file before starting to code.