COMP 175 Graphics (2020 Spring)

Course Number COMP175
Semester Spring, 2020
Hours TR 1:30-2:45
Schedule H+ Block
Location Barnum 208

Instructor Remco Chang
email remco at cs tufts edu
Office Halligan 221
Office Hours By Appointment

Graduate TA Matthew Russell
email mrussell at cs tufts edu
Office Halligan
Office Hours Tue 3:00 - 4:00

Course Description
In Class Labs

Course Description

This course explores the fundamentals of computer graphics, including 3D rendering via ray casting, ray tracing and radiosity, viewing transformations, 3D shape representation, and an introduction to modeling and computer animation. Assignments and projects require a good working knowledge of linear algebra and the C and C++ programming languages.

Prerequisite: COMP 40 (Machine Structure and Assembly-Language Programming). Background in Linear Algebra a plus


Date Topic Assignments Notes
01-16-2020 Intro
01-21-2020 OpenGL
01-23-2020 Lab 0 -- Compiling OpenGL
01-28-2020 Linear Algebra Recap A1 out
01-30-2020 Lab1 -- Loading a Shape File
02-04-2020 Transform
02-06-2020 Lab2 -- User Interactions in FLTK
02-11-2020 Transform 2 A2 out A1 due
02-13-2020 Camera
02-18-2020 Lab3 -- Solar System Present A3
02-20-2020 Tufts Monday
02-25-2020 CLASS CANCELLED A3 out A2 due Remco Away
02-27-2020 Lab4 -- Silhouette
03-03-2020 Scene Graph | Animation
03-05-2020 Lab5 -- Roller Coaster
03-10-2020 Ray Casting A4 out A3 due
03-12-2020 Lab6 -- Painting an Object
03-17-2020 Spring Break
03-19-2020 Spring Break
03-24-2020 Extended Spring Break
03-26-2020 Illumination and Intersection Normals
03-31-2020 Recursive Ray Tracer - Basics and Texture A5 out
04-02-2020 Lab7 -- Dragging A4 due
04-07-2020 Recursive Ray Tracer - Advanced Concepts and Data Structure | Final Project Discussion
04-09-2020 Shaders
04-14-2020 Lab 8 -- Shaders - Modeling Final Project Out A5 due
04-16-2020 Shaders Part 2
04-21-2020 Final Project Check-In Prsentation Order
04-23-2020 Lab 9 -- Shaders - Normal Mapping
04-28-2020 Reading Period
04-30-2020 Reading Period
05-04-2020 Final Project Presentation
Final Project Due


Assignment 1: Shapes  (Demo: Windows | Mac | Ubuntu) Render 3D Shapes using OpenGL           Handout | Worksheet PDF | Worksheet TeX
Assignment 2: Camera (Demo: Windows | Mac | Ubuntu) Create your own camera                       Handout | Worksheet PDF | Worksheet TeX
Assignment 3: SceneView (Demo: Windows | Mac | Ubuntu) Render a hierarchical scene                   Handout | Worksheet PDF | Worksheet TeX
Assignment 4: Intersect (Demo: Windows | Mac | Ubuntu) Implement a basic ray tracer                 Handout | Worksheet PDF | Worksheet TeX
Assignment 5: Ray (Demo: Windows | Mac | Ubuntu ) Implement a recursive ray tracer            Handout | Worksheet PDF | Worksheet TeX
Final Project: Spec

In Class Labs

Lab0 Handout | Files
Lab1 Handout | Files
Lab2 Handout | Files
Lab3 Handout | Files
Lab4 Handout | Files
Lab5 Handout | Files
Lab6 Handout | Files
Lab7 Handout | Files
Lab8 Handout | Files
Lab9 Handout | Files


Recommended Book
R1 Fundamentals of Computer Graphics (Third Edition) by Shirley and Marschner


Assignment 1 11%
Assignment 2 11%
Assignment 3 11%
Assignment 4 11%
Assignment 5 11%
Final Project 18%
In Class Labs 27%
Total 100%
Grading: Each assignment is worth 11% of your final grade. Out of the 11%, 2% is for your written algorithm, and 9% for the implementation.

Late Policy: All the assignments due at 11:59pm on Sunday (the night before the Monday lecture). The algorithm worksheets are due at noon on Fridays of the week when the assignment is handed out. Assignments that are turned in late will receive a 0. However, you are allowed one "extension" for the semester. When you use an extension, you will be granted an extra 3 days. The rationale for the late policy is that the assignments are built on top of each other (e.g. you cannot complete assignment 5 without completing assignment 4). So completing each assignment in time is essential to the success of the next assignment. If you have an extraordinary circumstance, you must contact the instructor or the TA as soon as possible and obtain written approval.

In-Class Labs
Grading: There are 9 in-class labs, each is worth 3% of your final grade. Note that Lab0 is not for credit, but obviously getting OpenGL to compile is essential for the rest of your course work.

Late Policy: All in-class labs must be completed by the start of the next in-class lab (1 week). The lab will be checked in person by the TA or the instructor during class. There is no late policy for in-class labs. You will not receive partial credit for turning in a late lab.

Final Project
Grading: Your final project will be graded in-person during the final exam period.

Late Policy: There is no late policy for the final project. You will receive a 0 if your final project isn't working by the demo day.


Tufts is committed to providing support services and reasonable accommodations to all students with documented disabilities. To request an accommodation, you must register with the Student Accessibility Services at the beginning of the semester. To do so, arrange an appointment with Linda Sullivan, Program Director of Student Accessibility Services at (617) 627-5447.


Some images and slides are based on lectures by Professor Andy van Dam at Brown University and Professor Daniel Keefe at the University of Minnesota.