Time Tuesdays and Thursdays (TTh) at 10:00am - 11:20am
Place Zoom Links on Canvas

Staff and Office Hours



Optional textbooks

There is no required textbook for this course.  If you would like to have a textbook to refer to, you may buy one of these:

  • Angel and Shreiner. Interactive Computer Graphics: A Top-Down Approach with Shader-Based OpenGL (6th Edition), 2012.
  • Marschner and Shirley. Fundamentals of Computer Graphics (4th Edition), 2016.

The Angel text is more applied, closer to OpenGL. The Marschner text is more mathematical, stronger on theoretical foundations. Both are good, neither is "perfect" for this class.

I will point to readings in these books, but these readings will be optional.

Most of the material in the course can be learned from the lecture notes I provide, with some Googling for additional material whenever you want to go deeper or need to figure out implementation details for a project. When I do have required reading, I will provide it as an online handout.

Topics Covered


The breakdown is subject to change as a whole and adjustments on a per-student basis in exceptional cases. This is the general breakdown we'll be using:

Projects 70%
Homeworks 25%
Participation 5%

Projects will be done in teams of two with room for extra credit as described in the next section. Homeworks are to be completed individually. Though you may discuss the problems with others, your answers must be your own. There is no midterm. There is no final.


Course participation will account for 5% of the final grade. Students will be awarded one participation point for every lecture they are *actively* present (see definition below) and two participations points for every response posted on the Ed discussion board (see details below). A full score will be given to students that accumulate at least 15 points (e.g. a total of 12 points is equal to an 80% final participation grade).


There will be four projects. You'll work alone or in teams of two for the projects. Each project will require you to extend some skeleton project with new features to create a working graphics application.

Project #1: Impressionist

An interactive impressionistic paint syst that makes photos look like paintings, similar in spirit to Paul Haeberli's The Impressionist.

Project #2: Modeler

A viewer in which to construct a hierarchical articulated model using OpenGL.

Project #3: Trace

A program to create photorealistic raytraced images, complete computation of shadows, reflections, and transparent effects.

Project #4: Animator

An extension of project #2 which includes 2D curves to control joint angles and other parameters of your model and particle systems for physical simulation. Create a 3D animation of your articulated model!

You will have approximately two weeks for each project. Beyond the required extensions to the base project, you are encouraged to attempt bells and whistles, which translate into extra credit points.


For each project, you'll work in a team of two. You may choose your own partner, or be assigned a random one after the grouping deadline is passed. Exceptions will be made only under extreme circumstances.

You are encouraged to change partners for each project -- each time you work with someone you have not worked with before in the class, you will receive a bell's worth of extra credit (1 point). If we randomly assign you a partner, it will be a new partner (and you will get the extra credit).

We are using Canvas to set up pairs:

To Join a Group:

To avoid hassles and unexpected situations, it is important for students to communicate well with their teammates. Please contact the course staff if you have difficulties communicating with your teammate.

Note: For Project #4, you will be working with the same partner as you did in Project #2. If there are any issues with this, please contact the staff.

Project Grading


Projects are graded during 15-20 minute in-person grading sessions. A web-based sign up sheet will be posted prior to each grading day.

Grading sessions will consist of:


Completed project requirements will be graded on a 60-point scale. In general, every team member will receive the same project implementation grade (although not necessarily the same project knowledge grade). However, we reserve the right to give different project implementation grades to different students on the team, for extreme circumstances in which it is clear that one or more members of the team contributed little or nothing to the project.

Project knowledge

Project knowledge will be graded on a 30-point scale, separately for each team member. Here's a rough breakdown to give you a feeling for how points will be assigned:

10pt Almost clueless: Answers to questions showed a severe lack of understanding. (I don't expect anybody to get this grade!)
20pt Answers to questions showed an understanding at only a superficial level.
30pt Answers to questions demonstrated a thorough understanding of the project. This is is the grade we expect to give almost all of the time.

Extra credit

Unlimited extra credit is possible on each project. Each extra credit item is rated with a nominal value of "bells" and "whistles". One bell carries the same credit as two whistles. An actual implementation of an extra credit item may be worth somewhat more or less than its nominal value, depending on how well it was implemented. In the end, the instructor and TA's will translate your bell and whistle count into an actual number of extra credit points at a rate of 1 point per bell (and, 1/2 point per whistle).


For each project, each team member will be required to create an artifact, a final polished example (e.g., an image or model) demonstrating your application, hopefully of some artistic merit. Extra credit will be given for the nicest artifacts, as determined by class vote.

Turn-in and Late Policy

Written homework assignments are due at the beginning of lecture on the due date. Projects are due by 10 pm on the due date specified on each project page. Late assignments are marked down at a rate of 25% per day (not per lecture), meaning that if you fail to turn in an assignment on time it is worth 75% for the first 24 hours after the deadline, 50% for the next 24 hours, 25% for the next 24 hours, and then it is worth nothing after that. Exceptions will be given only in extreme circumstances with prior instructor approval.

Getting Help

You may talk to other students in the course about concepts for homeworks and projects, but you may not take any code or notes away from those conversations. A good rule of thumb is the Gilligan's Island Rule.

The Gilligan's Island Rule: This rule says that you are free to meet with fellow student(s) and discuss assignments with them. Writing on a board or shared piece of paper is acceptable during the meeting; however, you should not take any written (electronic or otherwise) record away from the meeting. This applies when the assignment is supposed to be an individual effort or whenever two teams discuss common problems they are each encountering (inter-group collaboration). After the meeting, engage in a half hour of mind-numbing activity (like watching an episode of Gilligan's Island), before starting to work on the assignment. This will assure that you are able to reconstruct what you learned from the meeting, by yourself, using your own brain.

Lecture Recordings

This course is scheduled to run synchronously at your scheduled class time via Zoom. The Zoom class sessions are scheduled to be automatically recorded and released on CANVAS. Because technical issues with recordings may arise, we cannot guarantee that all lectures will be made available offline and therefore students are strongly encouraged to attend classes unless there are unable to for extraordinary circumstances.

Privacy Note

The recording will capture the presenter’s audio, video and computer screen. Student audio and video will be recorded if they share their computer audio and video during the recorded session. The recordings will only be accessible to students enrolled in the course to review materials. These recordings will not be shared with or accessible to the public. The University and Zoom have FERPA-compliant agreements in place to protect the security and privacy of UW Zoom accounts. Students who do not wish to be recorded should:

Important Notes

This course welcomes all students of all backgrounds. The computer science and computer engineering industries have significant lack of diversity. This is due to a lack of sufficient past efforts by the field toward even greater diversity, equity, and inclusion. The Allen School seeks to create a more diverse, inclusive, and equitable environment for our community and our field. You should expect and demand to be treated by your classmates and the course staff with respect. If any incident occurs that challenges this commitment to a supportive, diverse, inclusive, and equitable environment, please let the instructor know so the issue can be addressed.

Embedded in the core values of the University of Washington is a commitment to ensuring access to a quality higher education experience for a diverse student population. Disability Resources for Students (DRS) recognizes disability as an aspect of diversity that is integral to society and to our campus community. DRS serves as a partner in fostering an inclusive and equitable environment for all University of Washington students. The DRS office is in 011 Mary Gates Hall.

Washington state law requires that UW develop a policy for accommodation of student absences or significant hardship due to reasons of faith or conscience, or for organized religious activities. The UW’s policy, including more information about how to request an accommodation, is available at Religious Accommodations Policy ( Accommodations must be requested within the first two weeks of this course using the Religious Accommodations Request form (

University policy prohibits all forms of sexual harassment. If you feel you have been a victim of sexual harassment or if you feel you have been discriminated against, you may speak with your instructor, teaching assistant, the chair of the department, or you can file a complaint with the UW Ombudsman's Office for Sexual Harassment. Their office is located at 339 HUB, (206)543-6028. There is a second office, the University Complaint Investigation and Resolution Office, who also investigate complaints. The UCIRO is located at 22 Gerberding Hall. Please see additional resources at and

The University of Washington acknowledges the Coast Salish peoples of this land, the land which touches the shared waters of all tribes and bands within the Suquamish, Tulalip and Muckleshoot nations.

Students are encouraged to access additional resources. This link describes resources of CSE majors and this one for all students: