CS4620 (5620) Introduction to Computer Graphics

CS4621 (5621) Computer Graphics Practicum

Cornell University

Online sections W 3pm, Th 11:30am, Eastern time

Instructors: Abe Davis and Steve Marschner


Graduate TAs

Joy Zhang
Albert Tsao

Ugrad TAs

Camryn Gray
Dongqing Wang
Jarrett Coleman
Lily Lin
Palini Ramnarayan
Shuyan Huang


The projects are the centerpiece of CS4620. There will be 4 projects during the semester, broken up into weekly assignments. Each project has some less open-ended and more open-ended components. Many projects will result in unique software artifacts that you can show off after the semester. After you finish each project we'll have a demo meeting where you'll explain and demonstrate what you've done to one of the course staff.


This semester's schedule for CS4620 is a little different. We will use several pre-recorded short talks each week to explain new material, give quizzes to help you finish the videos each week, and then discuss questions about the material in weekly recitations, at office hours, and at project group meetings. This format is a work in progress, so some of the details may change as we gain more experience with it.

You can find links to the video lectures in the table below, and the discussion sections happen in Zoom meetings that are set up through the CS4620/5620 Canvas page. As a particular exception for students who are still shopping around, the first week's meetings can be joined from the links in the schedule below (Cornell NetID required).

Readings are from the Fundamentals of Computer Graphics textbook listed below, unless otherwise noted.

Note that the exact timing of topics (and the topics themselves) is highly likely to change, so the schedule below is just a rough indication of what to expect.

Office Hours


There will be no exams in CS4620 or CS4621 this semester.

About CS4620

Questions, help, discussion: The instructors are available to answer questions, advise on projects, or just to discuss interesting topics related to the class at office hours and by appointment as needed. For electronic communication we are using Piazza (handy link at the top of this page).

Late policy: The CS4620 late policy is described in one of the first lectures. Briefly, you have slip days that you can use to turn assignments in late, with some number of total late days and some limit on how many can be used on any one assignment.

Practicum: In the optional practicum course, CS4621/5621, you will get a more in-depth exposure to the course material and complete additional projects that extend the assignments from 4620/5620.

Academic integrity: We assume the work you hand in is your own, and the results you hand in are generated by your program. You are welcome to read whatever you want to learn what you need to do the work, but we do expect you to build your own implementations. If you are ever in doubt, just include a citation in your code or report indicating clearly and specifically where some particular idea or implementation came from, whether it be a classmate, a web site, another piece of software, or anything—this always maintains your honesty, whether the source was used in a good way or not.

The principle is that an assignment is an academic document, like a journal article. When you turn it in, you are claiming that everything in it is your original idea (or is original to you and your partner, if you are handing in as a pair) unless you cite a source for it.

School can be stressful, and your coursework and other factors can put you under a lot of pressure, but that is never a reason for dishonesty. If you feel you can't complete the work on your own, come talk to the professor or the TAs, or your advisor, and we can help you figure out what to do. Think before you hand in!

Clear-cut cases of dishonesty will result in failing the course.

For more information see Cornell's Code of Academic Integrity.

Collaboration: You are welcome (encouraged, even) to discuss projects among yourselves in general terms. But when it comes to implementing the projects, you need to be working just with your project group. In particular, it is always a bad idea for you to see another student's implementation of an assignment you are working on, and certainly never OK to copy parts of one person's or team's writeup, code, or results into another's, even if the general solution was worked out together.



Marschner & Shirley,
Fundamentals of Computer Graphics
fourth edition
(Available online in Cornell library)

Supplemental Books:

Foundations of 3D Computer Graphics