San José State University
Department of Computer Science
CS-116A: Introduction to Computer Graphics

Instructor

Robert Bruce

Prerequisites

MATH 31, MATH 129A, CS 146 (with a grade of "C-" or better in each) and previous programming experience in C/C++, or instructor consent.

Course Description

Vector geometry, geometric transformations and the graphics pipeline. Basic raster graphics algorithms for drawing discrete lines, clipping, visible surface determination and shading. Display of curves and surfaces. Graphics data structures.

Learning Outcomes

Upon successful completion of this course, students will be able to:

  • Describe different color spaces.
  • Describe the impact of shading in computer graphics.
  • Compare and contrast vector and bitmap graphic file formats.
  • Describe different techniques used in image compression.
  • Explain how linear transformations are used in computer graphics.
  • Create a three-dimensional OBJ file format visualizer.
  • Create two-dimensional primitives including line segments, rectangles, ellipses, and bezier curves using OpenGL.

Required Texts/Readings

Computer Graphics with OpenGL (4th Edition) by Donald Hearn, M. Pauline Baker, and Warren R. Carithers. ISBN 0-13-605358-0

Grading

Grading will be based on a total accumulation of 100 possible points, distributed as follows:

Assignment Points
Programming assignment 1: Drawing Mandelbrot fractals 10
Programming assignment 2: Simulated flying over surface 15
Programming assignment 3: A visualizer for OBJ files 20
Programming assignment 4: A 2D paint and draw program 25
Midterm Exam 15
Final Exam 15
TOTAL POINTS 100

Grading Scale

Percent range Grade
97% to 100% inclusive A+
93% to 96% inclusive A
90% to 92% inclusive A-
87% to 89% inclusive B+
83% to 86% inclusive B
80% to 82% inclusive B-
77% to 79% inclusive C+
73% to 76% inclusive C
70% to 72% inclusive C-
67% to 69% inclusive D+
63% to 66% inclusive D
60% to 62% inclusive D-
Below 60% F

Course Schedule

Week Topic Readings and Deadlines
1 Introduction and course objectives No readings
1 Introduction to OpenGL and GLUT Read: Computer Graphics with OpenGL, pp. 35-50
2 Fractals Read: Computer Graphics with OpenGL, pp. 695-722
2 Splines Read: Computer Graphics with OpenGL, pp. 411-461
3 Meshes No readings
3 Event driven programming: capturing keypresses and mouse clicks No readings
DUE: Programming Assignment 1
4 Camera and clipping plane Read: Computer Graphics with OpenGL, pp. 307-357
4 Interactive program to adjust frustum and clipping planes No readings
5 Light and Color (part 1 of 2) Read: Computer Graphics with OpenGL, pp. 579-597
5 Light and Color (part 2 of 2) Read: Computer Graphics with OpenGL, pp. 507-529
6 Graphics File Formats Read: Computer Graphics with OpenGL, pp. 767-782
DUE: Programming Assignment 2
6 Creating mouse-driven menus in GLUT No readings
7 Developing Graphical user interface widgets with OpenGL No readings
7 Review for midterm exam No readings
8 MIDTERM EXAM  
8 Hidden surface removal Read: Computer Graphics with OpenGL, pp. 479-503
9 GLSL: OpenGL Shading Language Read: Computer Graphics with OpenGL, pp. 665-694
9 OpenGL Shading Language examples No readings
10 Accelerated Graphics Hardware Read: Computer Graphics with OpenGL, pp. 9-33 and pp. 803-812
10 Metaballs and Blobbies No readings
11 Vectors, Matrices, Euler angles, and Quaternions Read: Computer Graphics with OpenGL., pp. 279-305
DUE: Programming Assignment 3
11 Coordinate systems in OpenGL No readings
12 Introduction to Blender No readings
12 Algorithmic animation and modelling (part 1 of 2) No readings
13 Algorithmic animation and modelling (part 2 of 2) No readings
13 Squash, Stretch, and Bounce: The twelve principles of animation No readings
14 Character Rigging for animation No readings
14 Augmented Reality and Virtual Reality (live demo) No readings
15 Introduction to WebGL No readings
15 Review for final exam DUE: Programming Assignment 4
16 FINAL EXAM