COMS 4160 : Computer Graphics



[Images courtesy Blue Sky Studios and Mike Defeo]



[intro] [instructor] [registration] [lecture] [prerequisites] [textbook] [notes&reading] [programming] [exams/grading] [schedule]



Introduction

This course is an introduction to computer graphics -- a field that is unique in its combination of science, art, and engineering. Its focus is the generation and manipulation of visual content, and it provides the fundamental technology to an ever-increasing variety of media, including special effects and animation, interactive computer games and simulation, and graphical user interfaces. In this class we will discuss methods for synthesizing images in two and three dimensions, with an emphasis on "photorealistic rendering". We will also spend time looking at other applications, including those for interactive rendering as used in computer games.

To illustrate the material, we will use a combination of lectures, code walkthroughs, physical models, short films, and graphics & animation software. We will also have a few guests from the animation and research worlds. This will be a fun course, but will require the completion of some nontrivial homework as well -- it is expected that you have coding skills.



Instructor

Michael Reed          
[ m-reed@cs.columbia.edu  |  Home Page ]
office hours:
after class Tuesday, or by appointment
mail:
Department of Computer Science
Columbia University
500 W. 120th Street, M.C. 0401
New York, New York 10027

 

Registrar Information

Course ID: W4160 [sometimes also called COMS4160], section 001

Registrar Call #: 82305

This course is 3 points.


Lectures

Tuesday, 6:10-8:00pm, Pupin room 325.


Prerequisites

In addition to programming proficiency in C++, the student should have a basic understanding of linear algebra and calculus.

Students without these qualifications, who still wish to participate, should speak to the instructor.


Textbook

Fundamentals of Computer Graphics, 3rd edition, by Peter Shirley et al.

Publishers: A.K. Peters, 2009.

Additional material will be provided by the instructor.



Course Notes & Reading Assignments

All course notes (in pdf format) and homeworks will be put on the CourseWorks website. If you are registered for this course, it will show up automatically when you log in. If you are not registered and are a Columbia affiliate, you can see all the course material by logging into CourseWorks and searching under "Other Course Listings" using subject code COMS.

Guests from outside the university can view some of the course's material here.


Programming Assignments

There will be four homework assignments, each of which will be mostly fullfilled by programming. Assignments are to be coded in C++; a framework will be provided, as well as an interface specification (i.e. the name of the functions to write, their arguments, and return values). The framework is so that you will not have to spend time on anything other than the relevant aspects of the problem, to provide a uniform set of tests on your implementation, and to make grading easier.

On Late Assignments: Students are permitted 2 late days total for the entire semester without penalty.
Other than those 2 days, assignments are not accepted after they are due.

On Collaboration: Discussion of algorithms is encouraged, as well as the sharing of drawings and other representations of problems and the like. What is not permitted is the sharing or acquisition of code in any form. Any material from an outside source must be explicitly acknowledged

 

Exams

There is a written midterm and final exam, each worth 20% of the grade. The exams are designed to be
relatively easy for those who have done the homework and understood the lectures.


Grading

Grades will be determined by a weighted average of the four homework assignments (%60), the midterm
exam (%20), and the final exam (%20).



Schedule

NOTE: the class schedule is approximate and subject to change.

Class# / Date

Title & Selected Topics
1       Introduction plus history, mathematical preliminaries
2       Images, displays, line and polygon drawing
animation appreciation
: "The Adventures of Andre & Wally B." (Pixar 1984)
3        Viewing & Transformations & "The Graphics Pipeline"
4       Geometry 1: polygon meshes & subdivision surfaces & OpenGL 1
animation appreciation : "Knick Knack" (Pixar 1986)
5       Geometry 2: parametric curves & surfaces
6 Ray Tracing 1
animation appreciation : "Stanley & Stella" (Symbolics 1987)
7       Illumination & Shading
guest
: TBA
8       Rasterization-based rendering
animation appreciation
: "Geri's Game" (Pixar 1997)
9       Midterm
guest
: Mike Defeo, Master Sculptor at Blue Sky Studios
10     Aliasing & Antialiasing Special Topic: High Performance Computing on the GPU
animation appreciation : "Bunny" (Blue Sky 1998)
11     Ray Tracing 2
12     Textures & Materials
13     Animation & Simulation 1
animation appreciation
: TBA
14     Miscellaneous Topics & Review
Finals Week Final Exam


Prior Class Notes

The class notes for the previous school year (2008f-2009s) can be found here.