Assignment Policies

Assignments

New assignments will go out at weekends, giving 8+ days to complete each (and more for the two week assignments).

Pair Programming

The first four assignments will be individual assignments, where you are not allowed to discuss your design or code with other students.

For the remaining assignments, you will work in pairs assigned by the course staff.

For the pair assignments, both partners are responsible for understanding all of the code submitted by the team. We strongly recommend (but do not require) you follow the practice known as pair programming.

Submission

Assignments are due on the specified Monday at 6pm.

Shortly after 6pm on the Monday a problem set is due, we will collect your solution as it exists in your GitHub repository. This is an automated process. Extensions are rarely granted, never without very good reason, and should be requested in advance. Forgetting to sync (push) your solution with your GitHub repository is not a good reason for requesting an extension; such requests will be denied. If you sync (push) at the end of every work session, you will not forget to do so before the deadline.

Soon after your submission has been collected from your GitHub repository, it will be tested for correctness. This too is an automated process. At the end of each week an assignment is due, a file containing the results of our automated testing will be added to your GitHub repository.

The results of correctness testing will account for almost one third of your semester grade.

Codewalks

During the week following your submission, you will explain your code and its design to course staff and a small audience of other students. These codewalks are designed to simulate the code reviews that have become standard practice in industry, while providing you with constructive feedback from course staff.

The codewalks give you an opportunity to explain and to defend your design and coding practices to course staff. The quality of your presentations will be graded, and those grades will account for one fifth of your semester grade.

Based on your presentation and our own examination of your code, the course staff who conduct your codewalk will give you a separate grade for your design. Those design grades will account for half of your semester grade.

Scheduling of Codewalks

We will ask you to state your preferences for the scheduling of your codewalks, and we will try to honor your preferences, but the number of codewalk slots is just barely large enough to complete all codewalks so your codewalks are unlikely to be scheduled at the times you would most prefer.

Failure to appear at the time of your assigned codewalk is likely to earn you an F for the presentation and design portions of that problem set.

Structure of Codewalks

For assignment done by individual students, the codewalks will last about 15 minutes. For ones done by students working in pairs, the codewalks will last about 25 minutes.

When students are assigned to work in pairs, both students are responsible for the team's entire solution and may be called upon to explain any part of the team's solution.

For debugging: Click here to validate.