## Information and Policies for CS184

### Web Page

http://www-inst.eecs.berkeley.edu/~cs184

### Prerequisites

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).

### Warning

*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

- homework 30%
- midterm 20%
- project 20%
- final 30%

NOTE this is subject to change during the semester.