Introduction to Computer Graphics
CS 428 - Fall 2006 - Syllabus

Prerequisites
  Numerical Analysis and Computing (CS 323)
  Fluency in Java
  Familiarity with Linear Algebra

(If you are missing prerequisites but feel you are ready to take this class, let me know.)

Objectives
This course aims to provide a broad introduction to the field of Computer Graphics, and to describe the techniques that are commonly used in the graphics industry today (such as in production of special effects, computer animation, video games, and virtual reality).

This course is combination of algorithms, numerical methods, representations and models of the shape and appearance of real-world objects, and methods for their display and manipulation. It involves a lot of programming, and requires a certain degree of mathematical sophistication (in linear algebra, specifically). But it's also a lot of fun. No artistic skill is required, but it does come in handy.

Outline
An introduction to the field of computer graphics: displays, image formation, visual perception, images, transformations (viewing and projection), programmable pipelines (vertex and fragment programs), modeling (primitives, polygon meshes, smooth curves and surfaces, CSG, procedural models), animation (keyframing, procedural), rendering and realism (visibility, lighting, shading, shadows, texturing, ray tracing).

Expected work
Students will design, implement, and use interactive graphical applications (using the OpenGL API in Java). This amounts to two large programming projects, two medium-sized ones, and some short exercises (written and programming). On each of these projects, extra credit is given for the completion of additional features.

Some of the projects require using the programs that are written to produce graphical (and hopefully artistic) output such as an image, a scene, or an animation.

Note to CS graduate students: This course can be taken for "category B" credit, provided you do additional work (some of the extra credit will be designated as mandatory)

Late policy
Projects or homeworks handed in up to 24 hours late are worth 50%. After that, they will not be given any credit (they will still be graded, however). No extra credit is available on assignments handed in late. Of course, exceptions will be made in extreme circumstances (when possible, let us know in advance).

Collaboration and Academic Integrity
All work on the assignments (written or programming) must be your own - there is to be no "group work". However, you are encouraged to discuss the course material with other students. Here are some guiding examples:

Good Bad
  • Discussing the course material needed to do an assignment
  • Demoing your program to other students (and getting feedback)
  • Helping someone with a bug when they're stuck
  • Sharing code (or pseudocode)
  • Discussing the design of a project before you've thought it through yourself
  • Giving away the key idea needed to solve a homework problem or to proceed on a programming project

We endorse and follow the DCIS Academic Integrity Policy. Read it. If we have reason to believe you have not done your own work, we reserve the right to give you a brief oral exam about that assignment, and adjust your grade accordingly. Furthermore, do not seek help from someone not currently in the class. Do not copy material from external resources for your assignments, including code from previous or other classes, code off the web, or code from books other than the readings. (If you feel you need to use external resources, please ask.)

Should you have any questions about this, please ask the instructor or TA.

Exams
There will be one midterm and a final exam. The exams will be based on the material covered in class, and on what is learned from completing the assignments. Only the material that is covered in class will be on the exam (nothing extra is drawn from the textbook).

Grading
Projects and short homeworks: 60%
Midterm: 20%
Final: 20%

Note: Undergraduates and graduate students in the course will be graded separately

Text (There is a copy of this text on reserve in SERC.)

Interactive Computer Graphics A Top-Down Approach with OpenGL, 4th edition
Edward Angel,
Addison Wesley, 2005
ISBN 0321321375

E-mail

Many of us use spam filters. When sending us email, be sure to include the number 428 somewhere in the subject of the email. This way, it won't be discarded by our spam filters.

There will also be email sent out to the entire class on occasion. While there will not be any content in those emails that is not listed on the webpage, it is still the best way to announce things like class cancellations and deadline extensions. So you need to do two things to ensure you get these messages:

  1. Make sure your spam filter doesn't discard any messages that contain 428 in the subject line (we'll be careful to include that string in all our correspondence)

    Note that our messages won't contain your own email address in the "To:" field. So if you have a rule for discarding such email in your spam filter, make sure you put the 428 rule before it!

  2. Set your email address in your myRutgers entry to something you actually read. (We make our email list using the information from the registrar.) You can easily look up your email address here.

428 Home