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
- Late policy: You will lose 1% of the total homework score for every 6 minutes your homework is late. The latest submitted version of your homework will be graded. Homework submitted later than 10h after the official deadline will receive no credit.
- Extensions: Except in the rarest of circumstances (e.g. if permitted by the Office for Students with Disabilities) there will be no extensions. This is a huge class (300 students) and granting extensions for individual students delays grading for everyone. Instead, in case of a medical or family emergency, we might permit you to drop an additional homework assignment (i.e. your final grade will depend on the best 5 assignments instead of the best 6). You will have about 10 days for each assignment, so starting your homework early will make it less likely that you run out of time. Keep in mind that the weakest homework assignment will not be counted toward your grade. It is up to you to decide if you can miss one.
- Document your code! Undocumented code will result in lower scores, as will code that does not follow style guidelines.
- Following the submission instructions precisely will make grading easier and faster.
- All code should run on the standard Java 8 SE JDK without any additional packages (unless specifically provided).
- Make sure your code compiles on the command line using javac. We will deduct points for code that does not compile and cannot be tested.
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:
- Any code you do not fully understand.
- Code longer than three lines or complete class or method definitions that directly relate to the homework problem.
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.