General Policies

Batch Tests

A portion of the grade for each assignment involving programming will be determined automatically by running batch tests on the submitted code and comparing to the correct solutions. The tests will not be known ahead of time, but they will be published after everyone has submitted their assignments, following a model similar to Top Coder. Failing those tests will impact the final score of the assignment, but partial credit may still be awarded. Groups with particularly clean or efficient code will also receive a bonus. On the point cloud retrieval assignment, those with the highest accuracy will also receive a bonus.

Art Contests

There will also be an "art contest" for all of the large assignments and some of the small ones. This can include "bloopers" (bugs in 3D code tend to look pretty interesting) or an intentional creative use of the assignment. Students will receive raffle points for any submission whatsoever into the art contest, and the winner (as determined by a panel of anonymous judges) will receive additional raffle points. As explained on the general overview page, the programming language of choice will be Javascript, with one notable exception in Python for the point cloud classification assignment. As a result, all art contest submissions can (and should) run in the browser. Art contest and competition results will be showcased on the course web site along with student names (or pseudonyms if preferred).

Group Programming Assignments

There will be three large programming assignments spaced as equally as possible throughout the semester. Each assignment will have a mandatory set of tasks and an optional set of tasks, each with a different score, from which a total number of points must be reached. This will allow students to explore their interests beyond the basics of each assignment. Any extra points will go towards an exponentially decreasing amount of extra credit. The assignments will be done in groups of 2 or 3. Groups of 3 will be expected to complete a higher number of baseline points. Do not save these assignments for the last minute. Groups are given several weeks for each assignment, anticipating some possible hefty debugging, which will be facilitated by group discussions on Piazza. This also allows for more exploration and a better final product

Individual Mini Assignments

In addition to the larger group assignments which take a few weeks, there will also be a number of small individual assignments peppered throughout the course to keep everyone on the same page. These assignments are expected to take roughly one week each, and they will include a smaller amount of programming and/or some pen and paper (or LaTeX!) math.

Below are the list of mini assignments by unit (list evolving). Art contests will be held for bolded assignments

Unit 1: Geometric Primitives and Shape Transformations

Unit 2: Point Clouds and Shape Matching