San José State University
College of Science / Department of Computer Science
CS-116A, Introduction to Computer Graphics, Section 1, Fall 2015

Course and Contact Information

Instructor: Robert Bruce
Office Location: Duncan Hall, DH-282
Office Hours: Mondays and Wednesdays 5pm-6pm, or by appointment
Class Days/Time: Monday and Wednesday, 6pm-7:15pm
Classroom: Duncan Hall, DH-450
Prerequisites: MATH 31, MATH 129A, CS 146 (with a grade of "C-" or better in each) and previous programming experience in C/C++/Java, 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. Prerequisite: 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.

Learning Outcomes

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

1. SLO 1 Describe different color spaces.

2. SLO 2 Describe the impact of shading in computer graphics.

3. SLO 3 Compare and contrast vector and bitmap graphic file formats.

4. SLO 4 Describe different techniques used in image compression.

5. SLO 5 Explain how linear transformations are used in computer graphics.

6. SLO 6 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

A copy of this book is available on course reserves for two-hour checkout from the SJSU King Library. Please visit the King library circulation desk to check out this book. A second copy of this book is available for reviewing during office hours. This book is also available for sale from online book retailers. If you purchase this book, please be sure to get the fourth edition. Previous editions or international editions may have different content.

Other Readings [Optional]


Other equipment / material requirements (include if applicable)

You will need access to a computer with a C/C++ compiler or the Java Development Kit (JDK) and Internet connectivity to download and compile OpenGL libraries. Java users will need to install JogAmp at to use OpenGL libraries with Java. Windows users may need to install Cygwin at to compile and run your programs within a shell. Linux users will need to have X windows configured and installed to properly run openGL programs. This course has no service-learning components.

Course Requirements and Assignments

SJSU classes are designed such that in order to be successful, it is expected that students will spend a minimum of forty-five hours for each unit of credit (normally three hours per unit per week), including preparing for class, participating in course activities, completing assignments, and so on. More details about student workload can be found in University Policy S12-3 at

There are three programming projects in this course. The programming projects are designed as building blocks which lead to a culminating final project: a simple paint and draw program. Detailed instructions and specifications for each programming project will be posted to the Canvas learning management system course website at with adequate time for students to complete the project by project deadline. Students are strongly encouraged to ask the instructor for clarification on each programming project specification.

NOTE that University policy F69-24 at states that "Students should attend all meetings of their classes, not only because they are responsible for material discussed therein, but because active participation is frequently essential to insure maximum benefit for all members of the class. Attendance per se shall not be used as a criterion for grading."

Grading Policy

Incomplete assignments

Points will be deducted for incomplete or partially working solutions. Point penalties vary with each assignment but are listed in the programming project assignment.

Late assignments

Programming assignments submitted after their specified due date will be considered late and subject to minimally 50% loss in points (additional points will be deducted for incomplete projects as noted above). For example, a late programming project 1 will be worth, at most, 7.5 points; a late programming project 3 would be worth, at most, 10 points.

Makeup Exams

Exams must be your own work. Makeup exams will only be given in extraordinary circumstances with instructor approval; instructor MUST be notified in advance.

Grade breakdown

Programming Project 1: 15 points

Programming Project 2: 15 points

Final Programming Project: 20 points

Midterm Exam 1: 15 points

Midterm Exam 2: 15 points

Final Exam: 20 points

TOTAL: 100 possible points

Grading Scale:

Percent range Grade
93% to 100% 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

Note that "All students have the right, within a reasonable time, to know their academic scores, to review their grade-dependent work, and to be provided with explanations for the determination of their course grades." See University Policy F13-1 at for more details.

Classroom Protocol

Regular class attendance is highly recommended. Students are responsible for knowing all materials covered through in-class lectures and assigned readings. Please be mindful of fellow students and the instructor by not talking on mobile phones during instruction. Students are expected to leave the class quietly in the event they must use their mobile phones.

University Policies

General Expectations, Rights and Responsibilities of the Student

As members of the academic community, students accept both the rights and responsibilities incumbent upon all members of the institution. Students are encouraged to familiarize themselves with SJSU's policies and practices pertaining to the procedures to follow if and when questions or concerns about a class arises. See University Policy S90-5 at More detailed information on a variety of related topics is available in the SJSU catalog, at In general, it is recommended that students begin by seeking clarification or discussing concerns with their instructor. If such conversation is not possible, or if it does not serve to address the issue, it is recommended that the student contact the Department Chair as a next step.

Dropping and Adding

Students are responsible for understanding the policies and procedures about add/drop, grade forgiveness, etc. Refer to the current semester's Catalog Policies section at Add/drop deadlines can be found on the current academic year calendars document on the Academic Calendars webpage at The Late Drop Policy is available at Students should be aware of the current deadlines and penalties for dropping classes.

Information about the latest changes and news is available at the Advising Hub at

Consent for Recording of Class and Public Sharing of Instructor Material

University Policy S12-7,, requires students to obtain instructor's permission to record the course and the following items to be included in the syllabus:

"Common courtesy and professional behavior dictate that you notify someone when you are recording him/her. You must obtain the instructor's permission to make audio or video recordings in this class. Such permission allows the recordings to be used for your private, study purposes only. The recordings are the intellectual property of the instructor; you have not been given any rights to reproduce or distribute the material."

It is suggested that the greensheet include the instructor's process for granting permission, whether in writing or orally and whether for the whole semester or on a class by class basis.

In classes where active participation of students or guests may be on the recording, permission of those students or guests should be obtained as well.

"Course material developed by the instructor is the intellectual property of the instructor and cannot be shared publicly without his/her approval. You may not publicly share or upload instructor generated material for this course such as exam questions, lecture notes, or homework solutions without instructor consent."

Academic integrity

Your commitment, as a student, to learning is evidenced by your enrollment at San Jose State University. The University Academic Integrity Policy S07-2 at requires you to be honest in all your academic course work. Faculty members are required to report all infractions to the office of Student Conduct and Ethical Development. The Student Conduct and Ethical Development website is available at

Campus Policy in Compliance with the American Disabilities Act

If you need course adaptations or accommodations because of a disability, or if you need to make special arrangements in case the building must be evacuated, please make an appointment with your instructor as soon as possible, or see the instructor during office hours. Presidential Directive 97-03 at requires that students with disabilities requesting accommodations must register with the Accessible Education Center (AEC) at to establish a record of their disability.

CS-116A / Introduction to Computer Graphics, Fall 2015, Course Schedule

Course Schedule

Week Date Topics, Readings, Assignments, Deadlines
1 Monday,
August 24
Topic: Introduction and course objectives.
Readings: none.
1 Wednesday,
August 26
Topic: Light and Color (part 1 of 2).
Readings: pp. 579-597 of Computer Graphics with OpenGL
2 Monday,
August 31
Topic: Light and Color (part 2 of 2)
Readings: pp. 507-529 of Computer Graphics with OpenGL
2 Wednesday,
September 2
Topic: Introduction to OpenGL and GLUT
Readings: pp. 35-50 of Computer Graphics with OpenGL.
3 Monday,
September 7
3 Wednesday,
September 9
Topic: Dissection of OpenGL/GLUT programming examples in C
Readings: none
4 Monday,
September 14
Topic: Dissection of OpenGL/GLUT programming examples in Java
Readings: none
4 Wednesday,
September 16
Topic: Splines
Readings: none.
5 Monday,
September 21
Topic: Meshes: Vertices, Edges, and Faces
Readings: pp. 411-461 of Computer Graphics with OpenGL.
5 Wednesday,
September 23
Topic: Question and Answer session / review for midterm exam 1
Readings: none
6 Monday,
September 28
DUE: Programming Project 1
6 Wednesday,
September 30
Topic: Camera and clipping plane
Readings: pp. 307-357
7 Monday,
October 5
Topic: Linear transformations
Readings: pp. 279-305
7 Wednesday,
October 7
Topic: Interactive program to adjust frustum, near, and far clipping planes
Readings: none
8 Monday,
October 12:
Topic: Metaballs and Blobbies
Readings: none
8 Wednesday,
October 14
Topic: Graphics File Formats
Readings: pp. 767-782 of Computer Graphics with OpenGL.
9 Monday,
October 19
Topic: Accelerated Graphics Hardware (GPU)
Readings: pp. 9-33 and pp. 803-812 of Computer Graphics with OpenGL.
9 Wednesday,
October 21
Topic: GLSL: OpenGL Shading Language (part 1 of 2)
Readings: pp. 665-694 of Computer Graphics with OpenGL.
10 Monday,
October 26
Topic: GLSL: OpenGL Shading Language (part 2 of 2)
Readings: none
10 Wednesday,
October 28
Topic: Question and Answer session / review for midterm exam 2
Readings: none
11 Monday,
November 2
DUE: Programming Project 2
11 Wednesday,
November 4
Topic: Squash, Stretch, and Bounce: The twelve principles of animation
Readings: none
12 Monday,
November 9
Topic: Introduction to Blender.
Readings: none
12 Wednesday,
November 11
Veteran's Day.
13 Monday,
November 16
Topic: Character Rigging for animation
Readings: none
13 Wednesday,
November 18
Topic: Algorithmic animation and modelling (part 1 of 2)
Readings: none
14 Monday,
November 23
Topic: Algorithmic animation and modelling (part 2 of 2)
Readings: none
14 Wednesday,
November 25
No class meeting. Happy Thanksgiving!
15 Monday,
November 30
Topic: Introduction to Computer Vision
Readings: none
15 Wednesday,
December 2
Topic: Introduction to WebGL
Readings: none
16 Monday,
December 7
DUE: Final Programming Project
Topic: Question and Answer session / review for final exam.
Readings: none
Final Exam Monday,
December 14
Duncan Hall, room DH-450 at 5:15PM

Robert Bruce

Contact and Office hours


Research interests



Graduate supervision

Undergraduate supervision


Fall 2015, CS-116A:



  • Light and Color (part 1 of 2)
  • Light and Color (part 2 of 2)
  • Introduction to OpenGL and GLUT
  • Dissection of OpenGL/GLUT programming examples in C
  • Dissection of OpenGL/GLUT programming examples in Java
  • Splines
  • Meshes: Vertices, Edges, and Faces
  • Camera and clipping plane
  • Linear transformations
  • Interactive program to adjust frustum, near, and far clipping planes
  • Metaballs and Blobbies
  • Graphics File Formats
  • Accelerated Graphics Hardware (GPU)
  • GLSL: OpenGL Shading Language (part 1 of 2)
  • GLSL: OpenGL Shading Language (part 2 of 2)
  • Squash, Stretch, and Bounce: The twelve principles of animation
  • Introduction to Blender
  • Character Rigging for animation
  • Algorithmic animation and modelling (part 1 of 2)
  • Algorithmic animation and modelling (part 2 of 2)
  • Introduction to Computer Vision
  • Introduction to WebGL



Valid XHTML 1.0 Strict Valid CSS!