CS 411
Computer Graphics (Fall 2017)

Syllabus Show me more

cs 411 - Computer Graphics

Computer graphics is an important topic with numerous applications in all areas of computer science. As a corner stone to interactive user interfaces and games, computer graphics techniques are utilized in everyday computer operation. Common uses of computer graphics techniques include engineering, scientific, and entertainment applications such as: computer aided design, analysis and visualization of data, visual simulation and monitoring of complex processes, animation and special effects, movie productions, and computer games. Computer graphics techniques also play a fundamental role in web and multimedia computing, enabling interactive webpages and vector graphics in documents.

The course covers the following topics: Overview of computer graphics hardware and software; Introduction to graphics programming with WebGL; Raster graphics; 2D modeling and viewing; Curve and surface interpolation; Introduction to 3D Rendering with WebGL; 3D Modeling and viewing; Illumination models and surface rendering; Animation. Programming assignments in the course will use WebGL which is a version of OpenGL that can run on web browsers and is very similar to OpenGL ES which is an OpenGL version intended for mobile platforms such as Android and IOS. Prior knowledge of WebGL is not required as it will be taught in the course.


Gady Agam  
SB 237e, x7-583
Office hours:
Tuesday, Thursday


Bingqing Xie
SB-115, x7-5705
Office hours:
Monday 4:00-5:00pm
Thursday 4:30-5:30pm


CS-411-01:  (SB-106)

CS-411-02:  (Internet)

CS-411-03:  (Internet)

Class hours:
Tuesday, Thursday


Course outline

What to expect from this course

Computer graphics can be covered at different levels. The focus of this course is the understanding of algorithms and techniques used in computer graphics. Students in the course are expected to write computer programs implementing different techniques taught in the course. The course requires mathematical background and some programming experience. This course does not intend to teach how to use a specific graphics application software such as 3ds Max. While a graphics API (WebGL) is used in the course it is by no means the primary goal of this course.


  1. Provide overview of computer graphics.
  2. Provide understanding of mathematical concepts and algorithms used in computer graphics in two and three dimensions.
  3. Provide graphics programming experience with WebGL.


  1. Introduction: overview of computer graphics, overview of graphics hardware and software
  2. Introduction to graphics programming with WebGL: overview, concepts, syntax, libraries, basic drawing, state management
  3. Raster graphics: line and conic sections drawings, area filling, character generation, image operations, object attributes, antialiasing
  4. 2D modeling and viewing: geometric transformations, homogeneous coordinates, affine transformation, line and polygon display
  5. Curve and surface interpolation: parametric curves, continuity, cubic splines, parabolic blending, Bezier curves, B-splines, non-uniform rational B-splines (NURBS), surface interpolation
  6. Introduction to 3D Rendering with WebGL: 3d rendering concepts, 3d modeling and viewing in WebGL
  7. 3D modeling and viewing: 3D transformations, the 3D viewing pipeline, projections, clipping, visible surface detection, depth sorting, hierarchical modeling
  8. 3D object representation: polygonal surfaces, octrees, BSP trees, volumetric representations, surface representations, bounding spheres, bounding boxes, collision detection, scene graphs
  9. Color, illumination models, and surface rendering: basic illumination models, polygon rendering, texture and bump mapping, color models, blending.
  10. Global illumination: ray tracing, radiosity.


up to 4 unjustified missed classes and all quizzes  ⇒  full credit
midterm exam
open notes (4 pages of notes)
final exam
open notes (8 pages of notes)

  1. There is an additional mandatory assignment (assignment 0) which does not carry any credit. There is a penalty of 5% for not submitting this assignment.
  2. A certain percentage of the students may be invited to discuss their assignments.
  3. Late days: there is a total of 4 "late days" for all the assignments. After that 1 late day = -10%. Late days do not include weekends and university holidays. Assignments can not be submitted after classes end.
  4. Each member of this course bears responsibility for maintaining the highest standards of academic integrity. All breaches of academic integrity must be reported immediately. Copying of programs from any source (e.g. other students or the web) is considered to be a serious breach of academic integrity.


Required text

  1. Interactive Computer Graphics: A Top-Down Approach with WebGL, 7th ed., E. Angel and D. Shreiner, Addison-Wesley 2014.

Additional references

  1. WebGL Programming Guide: Interactive 3D Graphics Programming with WebGL, K. Matsuda and R. Lea, Addison-Wesley 2013.
  2. Computer Graphics: Principles and Practice, 3rd ed. J. Hughes, A. Van Dam, et. al. Addison - Wesley, 2013.
  3. Fundamentals of Computer Graphics, 4th ed., P. Shirley et al.,A.K. Peters 2015.
  4. Computer Graphics with OpenGL, 4th ed. (or 3rd ed.), D. Hearn and M.P. Baker, Prentice-Hall, 2010.

Tentative schedule

class date topic assignment

1 08/29 Introduction to computer graphics AS0
2 08/31 Introduction to JavaScript and WebGL
3 09/05

4 09/07 Raster graphics AS1
5 09/12

6 09/14 2D modeling and viewing
7 09/19

8 09/21
9 09/26 Curve and surface representation
10 09/28

11 10/03

12 10/05 Introduction to 3D rendering AS3
13 10/10

14 10/12 Midterm
15 10/17

16 10/19 3D modeling and viewing
17 10/24
18 10/26

19 10/31 3D object representation
20 11/02

21 11/07
22 11/09 Color, Illumination models, and surface rendering
23 11/14

24 11/16

25 11/21 Global illumination AS6
26 11/23 No class (Thanksgiving)
27 11/28
28 11/30 Animation
29 12/08 Final exam: 10:30am-12:30pm SB106


Videos of lectures

Videos of lectures are available through blackboard

    Reading materials


Topic Reading
Introduction to computer graphics Ch. 1
Introduction to graphics programming with WebGL Ch. 2-3
Raster graphics Ch. 8
2D modeling and viewing Ch. 4
Curve and surface interpolation Ch 11
Introduction to 3D Rendering with WebGL Ch. 4
3D modeling and viewing Ch. 5
3D object representation and animation
Ch 9
Color, illumination models, and surface rendering Ch. 6-7,12


For additional instructions/ hints check the FAQ page
Please submit assignments via blackboard

Assignment Description Data Weight Due date
assignment 1
raster graphics
5% 9/26
assignment 2
2d modeling/viewing
5% 10/5
assignment 3
spline curves/surfaces
5% 10/19
assignment 4
3d rendering  object files 5%
assignment 5
illumination models
 object files
assignment 6
 object files 5%
assignment 7
 object files 5%

Additional assignments:

Additional information:


Learning JavaScript

See http://www.w3schools.com/js/ and https://developer.mozilla.org/en-US/docs/Web/JavaScript

We're happy to hear from you

Yes Please