Information and Policies for CS184

Web Page


A data structures course (cs61B), C programming ability, and knowledge of linear algebra (eg. math 54), calculus, and trigonometry. If the first homework assignment is well over your head, it might be a good idea to consider taking another course first (feel free to talk to the teaching staff about this).


This course has a substantial project component, much of which is in the C programming language.

Written Assignments

Students will have some written assignments, mainly to solidify their knowledge of subjects that are not covered by the programming assignments. They will also serve as preparation for the midterms and exams. Students may discuss the problems with their colleagues, but all work must be strictly their own. Written assignments cannot be handed in late.

Programming Assignments

During this course students write several programs that implement graphics algorithms. Many of these will use OpenGL and glut. Students render simple flat objects and complex three dimensional polyhedral objects using a viewing and rendering pipeline. They may render curved surfaces using smooth shading methods. Also, students experiment with modeling, and advanced rendering techniques using BMRT a public domain ray tracer implementing the Pixar RenderMan interface. Finally students work on a large graphics project during the last 4-5 weeks of the course. They can expect to write a few thousand lines of code in total.

Some assignments will be individual, while many will be done in pairs. Pairs need hand in only one copy of the assignment, but are encouraged to not only share the work equally, but to actively make sure that each partner understands all of the material. The midterm and final will often ask questions related to the material covered in assignments.

When working in groups, each member of the group is responsible for the work. If a group turns in something plagiarized or inappropriate, each member is responsible.

Late Policy

Each student is allowed THREE slip days for the entire semester to be used for any combination of the programming assignments (NOT including the final project). For partner assignments the number of slip days used is deducted from each student. In other words, if student A has one slip day left and student B has three slip days left, then the maximum number of days the assignment may be turned in late is ONE. If the assignment is turned in one day after the official due date, then student A has zero slip days left, and student B has two slip days left.

Unless the student specifies, it is assumed that he/she will be using slip days for assignments turned in after the due date. They may choose to not use a slip day and be penalized points by indicating so in the README file for the assigment.

Every day an assignment is late (excluding slip days), student will be penalized an additional 20%.

Grading Breakdown

Grades will breakdown as
NOTE this is subject to change during the semester.