Computer Graphics
CS43 - Fall 2005
Instructor: Fabio Pellacini


Course Description

The Computer Graphics course will introduce students to the mathematical foundations of modeling and rendering (drawing) three-dimensional scenes. Topics include digital image representation, geometrical transformations, curves and surfaces, illumination and shading models, and visible surface algorithms. Coursework will consist of a mixture of written homeworks and short programming assignemnts.


  • Fabio Pellacini (fabio -at- cs -dot- dartmouth -dot- edu) | Sudikoff 153 | Office hour: W 2:00-3:00
Teaching assistant
  • Keren Tan (keren -dot- tan -at- dartmouth -dot- edu) | Sudikoff 154 | Office hours: F 2:00-3:00
  • TuTh 10:00-11:50 | Sudikoff 115
  • Xhour: W 3:00-3:50pm | Used sometimes for lectures
  • Strongly suggested: Shirley, Fundamentals of Computer Graphics



The class will have bi-weekly homeworks consisting of a few short problems, where you will be required to work out numerical problems or answer short question. The schedule page will contain an up-to-date list of homeworks and due dates.

The homeworks will be due at the beginning of class on Thursdays, unless otherwise noted, with answers either printer or clearly written. Before class begin, please drop in the homeworks in the TA mailing box located just beyond the glass doors by the reception counter.

Programming assignments

The class will also require you to perform the following four programming assignments:

  • Raytracing I: Simple raytracer with shading and lighting
  • Surfaces and Transforms: surface tesselation and hierachical transformations
  • Animation: basic animation, skeletal animation, skinning
  • Raytracing II: large models and indirect illumination

You are to perform the assignments in Java using the basic code provided in class and email your results to, unless otherwise noted. Assignments are typically due at 11:59 pm of the due date.


Announcements and Help

Whenever necessary we will update the Announcement page with last minute and important information; the same information will be sent to you via email, so please check it often.

There are two main ways to get help from us: office hours and email questions. In general you should feel fre to email us with questions if small enough. We will do our best to answer you in a timely fashion. Otherwise please come to our office hours.

Grading, Late Assignments and Extra credit

Note that midterm and final have been removed from the syllabus, hence the final grading policy is changed.

We will not accept late submissions for either homeworks or programming assignments. If handed in late, we will not consider the work toward your grade. Exception to this rule might be made for special cases only if the professor is informed way before the deadline and at his sole discretion.

In general there will be no extra credit questions in either the homeworks, midterm or final exam. You are welcome to implement extra features in your programming assignments if you'd like. We will grade these separately and grant you extra credits only if the basic functionality has been successfully implemented (i.e. at least 90% of the original requirements/grade are met). Extra credit will not affect the grading curve and might not exceed 20% of the overall grade.

Working Together and Academic Integrity

You are encouraged to talk to other students about the topics discussed in class as well as the homneworks/assignments in general terms. The goal is to get a deeper understanding of the material and the homeworks/assignments are meant for this.

Once it gets to preparing the final homework solution or the code for your program, you should only work by yourself. The solution you hand in is meant to indicate your own understanding of the problem and its solution. In particular you should not consult the solution or code of any other person when preparing yrou submission.

You are welcome to use any source of information that can deepen your understandiung of the material, but please do not include any code in the assignment that is not yours.

During the exams, you cannot discuss the problems with other students, and you can only receive help from the TA or the instructor.


This course is heavily inspired by previously developed courses and in particular by the great course taught by Steve Marschner at Cornell University. Some slides in the course are directly based on the Steve's ones. Other credits are given on each slide.