CS 432 - Interactive Computer Graphics
Winter 2023
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 1052
Time - Tuesday & Thursday, 12:30 PM → 1:50 PM
Instructor
Dr. David Breen
3675 Market Street, Room 1177
david AT cs.drexel.edu
215-895-1626
Office Hours - Thursday, 2:00 PM → 4:00 PM
Other times by appointment
Teaching Assistant
Dilir Rafid
dr974 AT drexel.edu
Office Hours in the CLC:
Wednesdays 6:00 PM → 8:00 PM and Thursdays, 10:00 AM → 12:00 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 19.
Assignments
Assignments due Fridays at 11:59 PM
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 found 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.
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 a memo describing the cheating will be added to their record.
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 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.
The College of Computing and Informatics has a
"2 Strikes You're Out" policy.
If you have two cheating infractions, you will be expelled from
your CCI major.
Recorded lectures can be viewed via the class Bb Learn page by
following the "Echo360 Class Recordings" link.
Syllabus
Week 1 - 1/9/23
Week 2 - 1/16/23
Week 3 - 1/23/23
Week 4 - 1/30/23
Week 5 - 2/6/23
Week 6 - 2/13/23
Week 7 - 2/20/23
Week 8 - 2/27/23
Week 9 - 3/6/23
Week 10 - 3/13/23
Last modified May 2, 2023.