COS 426:
Computer Graphics
Spring 2019

General | Syllabus | Coursework


This course has the following programming assignments:

These will be linked as the assignments go online.


There will be one exam, in class Thu Mar 14. It will be closed-book. However, you may bring a 8.5x11" cheat-sheet with writing on both sides, if you wish. The exam will cover all the material of the course up through week 5, including lectures, readings and assignments. Examples of exams from previous offerings of this course can be found here, with the obvious caveat that they may have covered different material.

Programming Resources

Assignments will be implemented in javascript. Any computer and browser may be used for development though we expect to test your programs on Chrome running on MacOS.

Submitting Assignments

We will use Dropbox for submissions of work for this class. Look for the submission link in the description of each assignment - login with your Princeton netID, and submit all applicable files by the deadline. You can resubmit and unsubmit files as needed up until the submission deadline. There is more information about dropbox here.

Please pack the entire assignment, including all code, writeup, input images, output images, overlay images, etc. into one .zip file called "" (where N is the assignment number -- e.g., with the internal directory structure specified in the assignment instructions. Please submit all images in .jpg format to save space.

Late Policy

Assignments are due at 11:55PM on the due date, as determined by the file date of the file upload. Late assignments are marked down 1/4 of the full grade per day. Five minutes late is the same as one day late. Each student can use up to a total of three "free late days" during the semester. Exceptions beyond these free days are rare -- they will be granted only by the professor and typically only for medical reasons with the support of a request from the residential college dean.

Collaboration Policy

Concerning receiving help from others...

Programming is 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 other people are permitted and encouraged. Moreover, those who might benefit from it are encouraged to work in pairs. You may show your partial or complete solution to another student, and you may examine their solutions. However, all of the code that you turn in must be fully understood and more specifically typed into the computer by you. If you see and understand another student's solution (perhaps because you are working as a pair) then take a minute to think about it and then type your own version of it.

For each assignment you must specifically state, in your writeup file, the names of any individuals with whom you collaborated, or from whom you received help, and the nature of the help that you received. That includes help from friends, classmates, lab TAs, course staff members, etc.

Concerning electronic communication...

Do not, under any circumstances, share code in digital form!

If you have a question or comment that will be helpful to other students, and you need not reveal any parts of your work to express the question or comment properly, then you should post it to the course's Piazza page. One of the course's instructors will reply as soon as possible. We welcome replies from other students, and may "endorse" a student's response instead of composing an instructor's response.

If you have a question or comment that will not be helpful to other students, or if you must reveal parts of your work to express your question or comment adequately, then you should post it privately on Piazza.

Final note

Please do not publish solutions to programming assignments in a way that could compromise their utility as pedagogical tools. For example, do not make them available on a publicly accessible web page. At Princeton, this is a violation of the basic rights, rules and responsibilities of members of the university community.