CS 465 Graphics I
CS 466 Computer Graphics Practicum
Cornell University

Fall 2007


Schedule Practicum Homework Assign: ray1, model, pipeline  ray2
Rendering Contest Results



  • CS 465 Computer Graphics I
    • Time: M/W/F 2:30 - 3:20 PM
    • First Class: Friday, August 24 ***
    • Location: 111 Upson Hall
  • CS 466 Computer Graphics Practicum (optional... but the best part!)
    • Time: Wed 3:35-4:25 PM  (Tentative: Time may change to reduce conflicts)
    • Location: Hollister 110
    • Both 465 and 466 involve programming assignments, however since 466 is a practicum it will have a more substantial programming component. Similar to how the compilers practicum builds a compiler, or how the OS practicum builds an OS, the 466 graphics practicum will allow you to have more experience programming a large project. Note that 466 satisfies a practicum requirement, and that there will be no other graphics practicum offered this year.
  • Professor: Doug James (djames at cs.cornell.edu)
    • Office: 5146 Upson Hall
    • Office hours: Tuesday, 2:45-4:00 PM
  • Staff mailing list: cs465-staff-l  at cs.cornell.edu
  • Teaching Assistants:
    • Jesse Simons (jmsimons  at  cs.cornell.edu)
      • Office hours: TH 1:00-3:00pm (Rhodes 455)
    • Yi Xu (yx34 at cornell.edu)
      • Office hours: T/TH 12:00-12:45pm (Rhodes 455)
    • Don Holden (dsh34 at cornell.edu)
      • Office hours: Sun 1:15-2:00pm & 5:15-6:00pm (Rhodes 455)
    • Xingqun Jiang (xj22 at cornell.edu)
    • Paul Lewellen (ptl5 at cornell.edu)
  • Administrative Assistant: Amy Fish
    • Office: 4115 Upson Hall
  • Shirley et al., Fundamentals of Computer Graphics, Second Edition, AK Peters, Ltd., 662 pages, 2005. (required)
  • Other materials:

CS465 involves four programming assignments:

  1. Ray I: A very simple ray tracing renderer that renders spheres and triangles using a perspective camera, point light sources with shadows, and basic surface materials.
  2. Resample: A program that dynamically scales an image to fit in a resizable window, exploring the speed/quality tradeoff using several different filtering techniques.
  3. Pipeline: A software model of a modern programmable graphics processor, using vertex and fragment processing to achieve a variety of rendering effects.
  4. Ray II: A more full-featured ray tracer than the first assignment that can handle larger models and do more advanced shading, including texture mapping and reflections in shiny surfaces.

CS466 will cover one major programming assignment based on subdivision surfaces: a program to load and represent triangle mesh data structures, as well as subdivision refinement.

These programs are to be done in teams of two. If you really want to work by yourself, that is OK but you will still have to do all the work. If you want to work with a partner but can't find one, please contact the course staff and we will help.

The programs must be written in Java using the framework code we'll provide. The CSUGLab in Rhodes 455 is set up to support this course. You are free to work on whatever computer you like, using any programming environment, but your code must compile and work using the basic command-line tools on the machines in our lab. You will hand in your source code using CMS.


Grading and late assignments

Your final grade will be computed from the grades on the assignments and exams. The homeworks will account for 30% of the grade, the programs will account for 30%, and the three exams will account for 40% (12% for each prelim and 16% for the final).

Homework assignments are due at the start of class on the due date, and are accepted with a late penalty until the start of the next class. Programming assignments are due at 11:59 pm on the due date and are accepted with a late penalty until 11:59 pm two days after the due date. The implications of handing in late for either kind of assignment are as follows:

  1. Hand in by late deadline: 10% off score (about 1 letter grade)
  2. Hand in within 1 week of due date: graded pass/fail; pass receives 50/100
  3. More than 1 week late: no credit

Assignments that are handed in under option 2 will not be graded carefully and may be returned very late. That option is just intended to give you a chance to reduce the effect of zeros averaged into your grade.



There will be two in-class prelims and a final exam (nonfinal/estimated dates!!!):

  • Prelim I: Wednesday, October 3 (in class)
  • Prelim II: Monday, November 12 (in class)
  • Final: 7:00 pm (until 9:30 pm) on Thurs December 6

Together the two prelims cover the first 2/3 of the course. The final is comprehensive, so it covers all material from the whole course.

All three exams are closed book, but you're allowed to bring one letter-sized piece of paper with writing on both sides, to avoid the need to memorize things.

After the fact, you can find the exams and solutions on the exams page.



In this course we expect complete integrity from everyone. School can be stressful, and your coursework and other factors can put you under a lot of pressure, but that is never a reason for dishonesty. If you feel you can't complete the work on your own, come talk to the professor or the TAs, or your advisor, and we can help you figure out what to do. Think before you hand in!

Clear-cut cases of dishonesty will result in failing the course.

For more information see Cornell's Code of Academic Integrity .