COS 526
Advanced Computer Graphics
Fall 2012

General | Syllabus | Homework

Written Exercises

There will be 3-4 short written exercises.

Programming Assignments

There will be 3 programming assignments.

Final Project

Programming Language

We will be using C++. The project files supplied with the assignments build under linux or Mac OS X (via the make command from the Unix shell), and Microsoft Visual Studio 2005 (via a solution file).

How to Submit Programming Assignments

Create a single archive (in .zip format) named, where PUID is your Princeton University ID and N is the assignment number, (e.g. that contains the PUID_cos526_assnN directory you have created as defined in the assignment description.

You should submit your archive via ftp to Log in with user anonymous and your email address as password. Windows, Mac OS and Linux come with a command line tool called ftp that you can use to submit your code. Use the cd command to change to the directory incoming/cos526, the binary command to switch to binary file transmission mode (especially important under Windows) and the put command to save your file.

Note that you cannot overwrite or modify a zip file once it has been uploaded. If you want to update your submission, please name it, where UPLOAD is the two-digit number of the upload attempt (i.e., 01, 02, 03, etc.). If you decide to submit late, name the file, and submit exactly one file.

Late Policy

Assignments are due at 11:59PM on the due date, as determined by the file date of the file upload. Late assignments are marked down 1/5 of the full grade per day. Each student can use up to a total of seven "free late days" for exercises and assignments (not the final project) over the whole semester. Exceptions beyond these free days are rare -- they will be granted only for medical reasons, and only by the instructor.

Collaboration Policy

The COS 526 collaboration policy is the same as that of Princeton's COS 126 and COS 217 courses ...

Programming in an individual creative process much like composition. You must reach your own understanding of the problem and discover a path to its solution. During this time, discussions with friends are encouraged. However, when the time comes to write code that solves the problem, such discussions are no longer appropriate - the program must be your own work. If you have a question about how to use some feature of C++, VisualStudio, etc., you can certainly ask your friends or the teaching assistants, but do not, under any circumstances, copy another person's program. Writing code for use by another or using someone else's code in any form is a violation of academic regulations. "Using someone else's code" includes using solutions or partial solutions to assignments provided by commercial web sites, instructors, preceptors, teaching assistants, friends, or students from any previous offering of this course or any other course.

You may, however, use any code from the COS 526 lectures, precepts, or course texts, providing that you explain what code you use, and cite its source in your "assignment#.html" file or in comments. For each assignment, you must also specifically describe whatever help (if any) that you received from others in your "assignment#.html" file, and write the names of any individuals with whom you collaborated. This includes help from friends, classmates, lab TAs, and COS 526 staff members.

You are responsible for keeping your solutions to the COS 526 programming assignments away from prying eyes. If someone else copies your program, we have no way to determine who's the owner and who's the copier; the Discipline Committee gets to decide. If you are working on a public cluster machine, be sure to delete your local source files and logout before leaving. You should also store all of your assignment files in a private directory.  You can create a private directory using commands similar to these:

% mkdir cos526
% chmod 700 cos526

If you have a question about what is allowed and what is not, please consult the professor.