Homework Assignments

There will be seven homework assignments consisting of programming problems and a few theoretical questions. Your lowest homework score will be dropped. You will have approximately 10 days to complete each assignment. There is an ungraded additional homework 0 that familiarizes you with Git and teaches you how to submit homework. To access the homework assignments you need to be a course participant and you need to be in the GitHub organization for this course.

Submitting Homework to GitHub

You will use Git to submit your homework to a personal repository hosted on GitHub. Instructions coming soon.

Instant Feedback with Jarvis

Jarvis jarvis.xyz is a homework submission utility specifically built for this class. It helps you set up your repositories and teams on GitHub, listens for when you submit your homework, and helps you pre-grade them automatically in our testing environment, giving you really quick feedback (using a continous integration server in the background). You will receive an approximate score by email, and it will also be visible (anonymously, under a pseudonym) on a public scoreboard. You can opt-out of the Scoreboard functionality.

General Homework Guidelines

Academic Honesty Policy (Please Read Carefully!)

It is important that you read and understand this section. Any form of academic misconduct will result in a homework or exam grade of zero and will be reported to the Office of Judicial Affairs.

Interaction With Other Students: All homework assignments must be solved individually. You are encouraged to discuss problems with others and to work them out on the whiteboard, but when you sit down to write or code up your solution you must work on your own, without any further interaction. You are not allowed to share your solutions (literal code and theory solutions) with other students.

Online Material: Treat coding problems like paper assignments: You are not permitted to copy any part of other people's work without attribution. This applies to code produced by other students and to material found on the internet. Sometimes online sources (for instance Stackoverflow) can be useful as a reference. If you have to use code snippets found online you must attribute your source in a comment (complete link). You are not allowed to copy non-trivial code fragments from these sources. Non trivial code is defined as:

Example: You may copy a one-liner that opens and reads from a text file, if you attribute your source, but it is not okay to copy an entire method for insertion into a balanced search tree.

In addition, the CS department's academic honesty policy applies to this course.