CS 432 - Interactive Computer Graphics
Winter 2026
Description: This is a projects-oriented class that introduces the
concepts of interactive computer graphics.
Students will learn the
details of the WebGL graphics system by implementing weekly
programming assignments.
Topics covered by the programming assignments include
- GL Shading Language
- Graphics primitives (points, lines & triangles)
- Interaction and callback functions
- Buffer objects
- Viewing models
- Hidden surface removal
- Model transformations
- Hierarchical models
- Color and shading models
- Curves and surfaces
- Picking
- Texture mapping
- Frame buffer operations
Prerequisites - CS 260 and (MATH 201 or MATH 261 or ENGR 231)
Location - 3675 Market Street, Room 1104
Time - Monday & Wednesday, 4:30 PM → 5:50 PM
Instructor
Dr. David Breen
3675 Market Street, Room 1133
david AT cs.drexel.edu
215-895-1626
Office Hours - Thursday, 1:00 PM → 3:30 PM
Other times by appointment
Teaching Assistant
Linh Cao
llc69 AT drexel.edu
Office Hours in the CLC:
Tuesdays 10:30 AM → 12:30 PM, Thursdays 10:30 AM → 12:30 PM
Textbooks
- Recommended
- Interactive Computer Graphics, 8th Edition, Edward Angel and
Dave Shreiner, Pearson, 2020
Paper ISBN-13: 978-0-13-525826-2
Electronic ISBN-13: 978-0-13-521722-1
- Suggested
-
WebGL Programming Guide: Interactive 3D Graphics Programming with
WebGL, 1st Edition, Kouichi Matsuda and Rodger Lea,
Addison-Wesley, 2013
ISBN-10: 0321902920, ISBN-13: 978-0321902924
- OpenGL Shading Language, 3rd Edition, Randi Rost, et al.,
Pearson Education, Inc., 2010
ISBN-10: 0321637631, ISBN-13: 978-0321637635
Grading
Programming Assignments - 100%
The lowest assignment grade will be dropped.
I intend to use the standard grading scale of 100 → 90 (A), 89 → 80 (B),
79 → 70 (C), 69 → 60 (D), else (F).
Late Policy
1 point per day will be deducted
from late assignments, up to 7 days.
After this time the assignment
may be turned in, but it will only be worth a maximum of 3 points.
No assignments can be turned in after March 15.
Assignments
Assignments due Thursdays at 11:59 PM (7:00 AM with vampire rule)
All programming assignments must use the shader-based functionality
of WebGL 2.0 and GL ES 3.0.
You may not use third-party libraries to complete your assignments.
Points will also be subtracted if you do not follow the submission
instructions EXACTLY.
Each web page that includes user interaction must contain text that explains what it does and
how to use its interface.
2 points will be subtracted from
the assignment's grade if this is not included.
You may NOT make extensive use of the Angel example code (or any other
programs or generative tools available on the Internet) to complete your assignments.
For all assignments submit a zip file that contains a folder with your Drexel login ID and assignment number, for example ak876_a1.
All your files (source, common and data files and a README) should be inside this folder.
The main file to be viewed/executed should be named index.html.
The TA should be able to unzip your file, go to your folder, and follow the
execution instructions to run your WebGL program.
The programming assignments must be submitted
on the class Bb Learn site.
In order to facilitate grading, all homework programs should run, and will be tested, in Firefox.
You must ensure that your code runs properly in Firefox!
Assignment Schedule
Students must work on the assignments individually.
Note: If the TA or instructor finds strong
evidence of cheating on assignments, the student(s) involved will receive an "F"
in the course,
and an Academic Integrity report
describing the cheating will be filed with the university.
Note: Your source code for all programming assignments will be run through a
plagiarism detection system checking against assignments turned in this
and previous terms.
This program uses compiler techniques, which are
invariant of syntax and style. If you are sharing/borrowing code with/from other
classmates (from this or previous years), you will get caught.
If two current students are found to have turned in the same code, they
both will receive zeros on the assignment.
Following department policy, each infraction will be reported to the
Office of Student Conduct.
See CCI's
Academic Integrity Policy for more information.
It is your responsibility to avoid violating the university's policy.
If you are unclear as to what the policy means in a particular situation,
ask the instructor for clarification before you hand anything in.
See the examples below for clarification of this policy.
Examples
The following are acceptable:
- Using code provided in lecture: include comments that cite the source.
- Using code provided in the class textbook: include comments that
cite the source.
- Code developed jointly with instructor or teaching assistants assigned
to this course.
- Discussing algorithms or possible approaches to writing your program, WITHOUT discussing
particulars of the code.
- Discussing how to resolve errors/bugs, WITHOUT discussing particulars
of the code.
These are NOT acceptable:
- You borrow a printed or electronic copy of a friend's assignment,
and use it for "inspiration".
- You give a printed or electronic copy of your assignment to somebody
else.
- You "find" a copy of somebody's program in the
trash, on a lab machine, on their hard drive, on the web, etc., and use it for "inspiration".
- You pay a "tutor" who writes the assignment for you.
- You download code from the Web, and turn in some or all of it
as your own assignment.
- You use generative tools to create portions of your assignments.
- You and a friend together write one assignment, then create separate
modifications to be handed in.
- You and a friend write certain portions of the assignment individually,
but collaborate on other portions of the assignment.
- You work in a group that works out the detailed structure of the assignment and you turn it into a specific program.
Recorded lectures can be viewed via the class Bb Learn page by
following the "Echo360 Class Recordings" link.
Syllabus
Week 1 - 1/5/26
Week 2 - 1/12/26
Week 3 - 1/19/26
Week 4 - 1/26/26
Week 5 - 2/2/26
Week 6 - 2/9/26
Week 7 - 2/16/26
Week 8 - 2/23/24
Week 9 - 3/2/26
Week 10 - 3/9/26
Last modified February 4, 2026.