Homework assignments are due on Fridays, 11:59 pm ET. For due dates see the schedule. No homework will be accepted more than 48 hours late (Sunday, 11:59 pm ET). See the schedule for an overview of all due dates. Homework solutions will be posted on Piazza. For more details see the syllabus.

The assignments are published on github.

Homework Weights

Homework 0 - Weight: 2%
Homework 1 - Weight: 13%
Homework 2 - Weight: 13%
Homework 3 - Weight: 14%
Homework 4 - Weight: 8%

Submission Instructions

Homework submissions will be handled trough github. You will set up your GitHub account as part of Homework 0 and Section 1. The gist of it:

  • You create a private repository for all of your homework, following a naming schema (cs171-hw-lastname-firstname - all lower case). Github will provide you with free private repositories if you ask them using your .edu e-mail address.
  • You share your repository with our GitHub user cs171tf.
  • NEW: You announce your repository by filling out this form.
  • You create a directory named hwX - where X corresponds to the number of the homework you are submitting. This will be automatically created for you if you pull from our homework repository.
  • You put all your materials, including your sketches, source code, written answers, etc. into this directory.
  • You commit your changes and push them to github.
  • You make use of the awesome features of version control: you can trace back every step, your code is stored in a secure location. For your project you will be able to collaborate, create issues, etc.
  • Once the deadline approaches, you simply commit and push your final changes, after which you stop changing the content in the folder. We will count the precise time of your last push to that folder as your submission time.
Be aware of the difference between commit and push in git. Essentially, a commit is a local operation, only a push copies your changes to the server where we can access it.

How late days are counted

If you push to your repository by the day of the deadline, a Friday, at 11:59pm, your submission is on time. If you push 20 minutes later, on Saturday, at 00:19am, we will count one late day. If you push any time after Saturday 11:59pm we will count two late days. On Sunday night, precisely at midnight, we will download your repository automatically. No changes submitted after that will be graded.

Homework Rules & Hints

A couple of important rules to make our lives easier:

  • See the syllabus for our collaboration policy and to learn how to quote your sources.
  • Don’t make any changes to your homework sub-folder after the deadline, not even after we downloaded your solution. Really!
  • Don’t make your repository public. GitHub will give you private repositories under their educational micro-plans. You will set this up during Homework 0. We will consider a public repository containing a homework solution as academic dishonesty.
  • Do use the features of version control while you are working on your homework. Every time you are done with a chunk of work, or when you are done for the day, push your changes to GitHub. This will avoid data loss, even if your house burns down, and you always will have at least something submitted.
  • You can use branches to explore various options, but we will always grade your master branch. Make sure that your master branch is up to date at submission time.
  • We will be using state-of-the-art web technology. To avoid slowing us down with browser compatibility, we define a target platform, that we test against. Your code must be compatible with the latest version of Google Chrome - currently (Jan 2015) Version 39.