Homeworks will be typically assigned to individual students, not teams.  You may discuss the solution with other students, but if you do, you need to acknowledge in your submission the collaborators and all other sources that you consulted.

Projects will be typically assigned to teams of three students.  Help received by other teams must be acknowledged in the submission.  The team is not allowed to copy the source code, test files, or other data from other teams.

In other words, all code and written responses must be original. 

We'll be running cheating detection software.  If we catch you cheating, you will receive a 0 on the assignment.  If it is a midterm exam, final exam, or final project, you will receive an F in the class, and cases will be reported to the Office of Student Conduct. We will strictly enforce the EECS Policy on academic dishonesty.

Late Submissions

Every assignment has to be submitted before the specified deadline.  Any assignment submitted after the end of that late day will be penalized as follows:

  • less than 1 day late               deduction of 25% from the assignment grade
  • between 1 and 2 days late      deduction of 50% from the assignment grade
  • more than 2 days late            assignment not accepted
As the above rules indicate, there are no built-in late days.  However, at the end of the semester, you will be allowed to drop either one HW or one PA score.  The instructors will drop the assignment whose absence most improves your final grade, so you don't need to pick which HW or PA to drop.  Note that the dropped assignment and all associated feedback will still be listed in glookup, so glookup won't reflect the adjusted grade.


The regrade policy is simple: we will support no regrades in general, unless there is a mistake on our part. We may make exceptions on a case-by-case basis for non-algorithmic issues directly relating to the autograder. For instance a leftover debugging statement causing your submission to fail all the tests would qualify. A small bug in the core of the assignment would not. If you think there is a problem with the autograder, send a private Piazza message to 'Instructors.'

The regrading penalty is equivalent to one late day, so 25% is subtracted from the final assignment grade. Therefore, your new grade can be lower than the original grade.

Regrade requests must come within 7 days of receiving the score.

Common Mistakes

Avoid these common mistakes, which might lead you to ask for regrading. 

  1. Wrong Formatting 
    We usually provide an autograder with some test cases. Make sure your program passes all these tests before you submit.

  2. Missing Files 
    You will usually test your programs on the same local git repository on the same machine where you developed the code. If you forget to run git add which makes new files to be tracked and copied to the remote server. When we pull your code for testing, those files will be missing. To guard against this mistake, right after your final submission, pull your code into another directory and test it one more time.

  3. Don't forget to hg push
    hg commit only records your changes in your local git repository. You have to do hg push to propagate those changes to the main repository on the remote server. To guard against this mistake, right after your final submission, pull your code into another directory and test it one more time.

  4. Don't forget to hg tag
    Once you are ready to submit your assignment. Don't forget to run hg tag PA?_SUBMIT, and then run hg commit and hg push again. ? should be replaced by the actual number of the PA.

  5. Uppercase File Names
    Windows does not differentiate between lowercase and uppercase letters in file names, but Linux and Mac do. To simplify matters, we suggest that you  name all your files using all lowercase letters.

  6. OS Incompatibility
    We are using the instructional machines for testing your code. Even though your code is running correctly on your local machine, it might behave differently on the instructional machines. Therefore, you mush test your code on one of those machines before your final submission. 

Emails & Piazza

All communication should go through Piazza, including private messages.  We will check Piazza once each day.  Keep in mind that this means homework and project questions will not be answered if they are posted too late.  We will not check Piazza after noon on due dates.  Please start your assignments early!

Project Partner

You will work on your projects in teams of 3 students and you will stick with the same team throughout the semester, because our projects build on top of the previous ones. You are not allowed to switch partners during a project assignment.  If all your teammates drop the class, we will try our best to put you in another team.