CS426 Assignments


Overview Credit
Art contest Late policy
Do not share code Facilities
What to submit How to submit


Overview

This is a project class. There are no exams, no quizzes, no written assignments -- just programming. Most of you will find that you spend a lot of time on your projects, hopefully because you are excited about them, not because your grade depends on it (although it does). There will be 6 programming assignments. They grow in complexity throughout the semester, starting from 2D morphing and culminating in something really fabulous of your own design. The first three projects are individual. In the fourth and in the fifth you will be allowed to have a partner. The final project will involve teams of up to four people.

Credit

NumberNameDue dateTeam Size PointsResults
6 Final Project Jan 15, 10.30am 4 25
5 Ray Tracer Dec 13, 11.59pm 2 20 Results
4 Curves Nov 22, 11.59pm 2 20
3 Scene Maker Oct 29, 11.59pm 1 15
2 The Scene Oct 15, 11.59pm 1 15 Scene
1 Morph Oct 4, 11.59pm 1 15 Morphs
0 Enroll Sep 23 1 1 Class list

The table above indicates the number of points possible for each project. The assignments have two kinds of features: required and optional. The required features account for about 3/4 of the possible points, so it is expected that you will complete all of the required features as well as some of the optional features.

This system allows you to choose which (optional) features you are most interested in tackling. However, you will not receive points for optional features unless you have at least attempted to implement the required features first. You may actually implement more optional features than are necessary to acquire "full credit", in which case you will be given extra credit. However, extra credit points are harder to acquire than "regular" credit, so for example in Project 1 it is more difficult to go from 15 points to 17 points than it is to go from 13 points to 15 points.

For optional features you may choose to implement items suggested on the handout, or you may think up features on your own. In principle, there is no limit to the number of points you could receive on an assignment, but the more points you receive the harder it is to acquire even more (and in practice there are only 24 hours in a day).

Art contest

For each of the projects (except 0) there will be an art contest. This falls under the domain of "optional features" for the homework assignments, but it is mostly for fun. There are two categories in which you may submit art work: "general" and "characters".

In the general category you may submit any art work of any size that somehow used your program from the project.

For the character category, you should submit an image of a specific character (the letter `C' for Project 1, `O' for Project 2, and so on) in an image that is 100 pixels wide by 200 high.

For each category, a winner will be chosen each time and posted on the web pages. You may submit in both categories if you wish, and the total number of extra points that you may receive for art work is 2, but to get 2 points it better be pretty amazing.

Late policy

Assignments are due at 11:59pm on the due date. Late assignments are marked down 1/3 per day. One minute late is the same as one day late. You are given 1 bonus day to cover the first time you are 1 day late.

Teams may submit projects 4 and 5 late as much as the average of their remaining bonus days. Project 6 will be demoed in finals week, and therefore cannot be late.

Exceptions will be given only in extreme circumstances, only in advance, and only by Professor Finkelstein.

Do not share code

All work must be your own. You may discuss the assignments with your classmates but you must write your own code. If you borrow code from any source, be it Graphics Gems, or somewhere on the web, or a friend, or anything else, you must state this in your assignment. Failure to do so will result in disciplinary action. Needless to say, team members are allowed to share code among each other on Projects 4 through 6. If you have any question about what you can and cannot do, please contact Professor Finkelstein.

Facilities

We will be using the facilities of MECA (E-quad, room E423), the former ICGL, for the programming assignments. Please do not use the graphics lab in the CS building for working on your projects. It is intended for research projects only.

What to submit

You should turn in complete source code for your project as well as a writeup. The writeup should be a HTML document called writeup.html which may include other documents or pictures. It should be brief, describing what you did, what you have implemented, what part works and what doesn't, and how to compile and run your program.

Make sure the source code compiles on the MECA workstations. If it doesn't, you will have to attend a grading session with a TA, and your grade will suffer.

How to submit

Submit your solutions to the programming assignments electronically using the following command:

/u/cs426/bin/submit <number> <files>

<number> is the assignment number and <files> is the list of files for that assignment. For example:

/u/cs426/bin/submit 31 readme makefile main.c strings.c

submits the files readme, makefile, main.c, and strings.c for a fictitious assignment 31. The submit command copies your files to the directory /u/cs426/submit/<userid>/<number> and lists all the files that you have submitted for that assignment. You can run submit more than once to update previously submitted files, or to add files.

Use the command unsubmit to remove one or more files from your submission. For example:

/u/cs426/bin/unsubmit 31 main.c

You can omit the /u/cs426/bin/ prefix if you add it to your path.


CS426 | CS Department | Princeton University