This brief syllabus has the basic info. Really the course web is the syllabus, and most topics here are discussed in more detail somewhere (links provided from this document – although this document is written first, so that the links may appear later).

Basic Info

Lectures: Tuesdays and Thursdays, 11:00-12:15, Room 1221 Computer Sciences
You are responsible for the material in lecture, and we might have in-class activities that are counted.

Instructor: Eftychios Sifakis,  Office 6387 Computer Sciences. For class-related email, please use the email address This will reach both the instructor and the TA.
Office hour 11:00-11:45 Mondays, or by appointment.

TA: Chih-Ching Chang, Office 4394 Computer Sciences. Office hours: Wednesdays 1:00-2:00. It is important that when you send email to “the TA” you use the common email address

Pre-requisites: Officially CS367 – but really the ability to write non-trivial programs.
Note: Math 320 or 340 (linear algebra) is no longer a pre-requisite. (see discussion)

Announcements and Email: Announcements will be made to this website, and you are responsible for checking it regularly. We will send email to your university provided email (sometimes via the university provided mailing list). If we receive email from you, it should be from your University email account (so we know it is from a student).

We will use Canvas as a course management system. This will be the primary mechanisms for turning in assignments, however the course web will be the primary mechanism for staff to make announcements. We will try to duplicate announcements on Canvas.

Exams: There will be a mandatory final exam in the University scheduled time slot (Tuesday May 10th, 10:05am-12:05pm, Psychology 113). There will be an evening mid-term exam (Tuesday March 15th, 7:15-9:15pm). It will be very difficult to change exam times. If you cannot make an exam slot, please contact the Professor well in advance.

Books: The textbooks will be made available online. See the books posting.

Computing Environment: All assignments will be run in a web browser. You may use Chrome or Firefox. You will have the ability to tell us if your program has only been tested on one or the other.

Many of the assignments will work better if you use a computer with graphics hardware (a dedicated GPU), however, almost any reasonably recent and decent computer will do. The CSL Windows labs are equipped with computers meant for graphics work.

Previous course offerings: This semester will be quite different previous offerings of CS559 prior to Fall2015. Many new experimental elements were first introduced in the Fall2015 offering.

Learning Objectives: Students have an understanding of the key ideas of Computer Graphics, and are able to apply them in programming projects. See the discussion of Key Ideas and Learning Goals.

Tentative list of topics

(see the detailed schedule for more information)

  • Basic concepts, coordinate systems, pixels
  • Linear Algebra, Transforms in 2D and 3D, Hierarchy
  • Drawing in 3D: Projection, Viewing, Visibility
  • Graphics Hardware, Shaders, WebGL/OpenGL
  • Lighting
  • Texturing
  • Interactive graphics tricks
  • Shape Representation: Meshes, Curves, Surfaces
  • Color and Perception
  • Image Processing and Computational Photography
  • Realistic Rendering and Ray Tracing

Course Components

  • There will be weekly reading assignments (for all weeks, except for the exam week). The required parts will be due on Mondays (and connected to the homework assignments). There will be supplemental readings to help you better understand the concepts from the required reading, as well as lectures, that you may read when you think you need them.
  • There will be weekly homework assignments (for all weeks, except for the exam week). These will be small, online checks to help you check that you have understood the reading. They will be designed so that you can succeed (or keep trying until you do succeed). Grading will be check/no check, although for some assignments you may be able to earn “above and beyond.” These will be due on Monday (and connected to the reading assignments).
    The assignments will be based on the prior weeks’ lecture and the basic parts of the required reading due on the same day.
  • There will be weekly programming assignments (for all weeks, except for the exam week and Thanksgiving). Generally, these will be small, although the last group of them will build into a more significant project (as a series of steps). The programming assignments will be graded check/no check, and you will be able to earn “above and beyond.” The programming assignments will be due on Thursdays Fridays.
  • For some programming assignments, there will be “optional” parts. You can only get credit for the optional parts after doing the basic parts. Credit for these parts raises your grade.
  • There are no explicit “projects” this semester – however, sequences of assignments will build on one another and turn into bigger things.
  • There will be a midterm and a final exam.


The different components of the class are all essential: to get a good grade you must perform adequately in all of them.

The reading, homework, and programming assignments are designed such that any student qualified to take this class could complete them with a reasonable investment of time. If you have done (e.g. gotten a check or better) for “almost all” of the homeworks and programming assignments, then you have performed adequately for the class. If you also do OK (i.e. not clearly below the median) on the exam, you should get a B.

For the programming assignments and homework assignments, the grading is “Check/No Check”. We will actually distinguish 4 categories: Not Turned In, Turned in but not complete, Check, Above and Beyond. Remember that doing above and beyond on one thing doesn’t make up for getting a check on another. Also, for some assignments, it will not be possible to get “Above and Beyond.” Getting the Above and Beyond (AB) is independent of “project components.” Getting a check on (almost) all of the assignments is enough to get a B.

To get better than a B, you need to (i) have adequate overall performance, as defined above, and (ii) go “beyond the minimums” on several of the course components; this should include a combination of an “above and beyond” homework and programming assignments, doing optional parts of programming assignments, and doing better than average on the exams. Students competing for an A grade would typically perform very well (top 30-percentile) in all course components, and excel (top 15-percentile) in at least one of the most challenging aspects (larger assignments, project, exams).

This will make more sense when you see the actual assignments.

Late Policy

Things are due on the specified day. If something is due on a Friday, it can be turned in anytime by Friday 11:59pm.

Late assignments will be accepted, but they must be turned in at least one day before the next assignment is due. Lateness will be considered in grading. If you’re consistently late, you will be penalized.

Print Friendly, PDF & Email