Time | Tuesdays and Thursdays (TTh) at 12:00pm - 1:20pm |
Place | EEB 037 |
Final Exam | Thursday, December 17, 2015, 10:30-12:20, EEB 037 |
This course is an introduction to the field of computer graphics and its applications. Topics that we cover include: displays, image processing, affine transformations, hierarchical modeling, projects, shading, ray tracing, texture mapping, curves, particle systems, surfaces, and animation.
If you are a CS or CE major, and you have satisfied the prerequisites, then you should be able to sign up for the course directly. Otherwise, if you have satisfied the prerequisites or have comparable background but are not currently a CS or CE major, you need to file a petition with the undergraduate advisers. You should attend class until the outcome of the petition is decided. You should also sign up on the overload form that the instructor will bring to the first day of class.
Name | Office Hours | Location | ||
---|---|---|---|---|
Instructor | Ira Kemelmacher | kemelmi@cs.uw | By Appointment | CSE650 |
TA | Menghong Chhay | menghong@uw | Mondays 4:30pm-5:30pm | CSE022 |
TA | Francis Ge | fge3@uw | Tuesdays 4:30pm-5:30pm | CSE022 |
TA | Sonja Khan | sonjak3@uw | Wednesdays 3:30pm-5:30pm | CSE022 |
The required text for this course is: Edward Angel and Dave Shreiner, Interactive Computer Graphics: A top-down approach with OpenGL, Sixth Edition. 2012. Addison-Wesley. Additional readings will be posted next to the lecture notes on the lectures page. Textbook Errata (corrected errors).
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 | 60% |
Homeworks | 20% |
Final Exam | 20% |
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. The final is closed book.
There will be four projects. You'll work or in teams of two for the projects. 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. Each project will require you to extend some skeleton project with new features to create a working graphics application.
An interactive impressionistic paint system, similar in spirit to Paul Haeberli's The Impressionist.
A viewer in which to construct a hierarchical articulated model using OpenGL.
A program to create photorealistic raytraced images, complete computation of shadows, reflections, and transparent effects.
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. Projects will be graded during in-person sessions with one of the TAs on the day that the project is due. During the grading session, a TA will run the project to make sure that it conforms to the guidelines. The TA will then quiz individual members of the team to determine how well they understand the structure of the code, the design trade-offs, and the implemented algorithms. One grade will be assigned for all members of the team for the project's implementation. Separate grades will be recorded for each team member's "knowledge of the project." Beyond the required extensions to the base project, you are encouraged to attempt bells and whistles, which translate into extra credit points. Click here for more information on project grading. In addition, for each project both team members 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.
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.
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.
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:
Each team member giving a demonstration of different portions of the program, showing that it satisfies the required part of the assignment and implements an appropriate number of bells and whistles. This is also the time to show off any great extensions or enhancements.
Question and answers: The TA will ask a variety of questions. Some questions will be open for response from any team member, but others will be directed at individuals. Each team member is expected to have a thorough understanding of all required extensions of the project, and any bells and whistles s/he may have done. Here is a sample of the kind of questions that might be asked:
Why did you choose to implement feature X using technique Y rather than technique Z? |
Describe the steps that you'd have to carry out to implement new feature X. What new data structures would you need? What modules would you have to modify? |
Please make the following small change to the program, then recompile and run it. |
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 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. |
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.
Written homework assignments are due at the beginning of lecture on the due date. Projects are due by midnight on the due date. Late assignments are marked down at a rate of 33% per day (not per lecture), meaning that if you fail to turn in an assignment on time it is worth 66% for the first 24 hours after the deadline, 33% for the next 24 hours, and it is worth nothing after that. In addition, no extra credit for bells and whistles will be awarded for any late assignment. Exceptions will be given only in extreme circumstances with prior instructor approval.