Stanford CS248A, Winter 2025
Computer Graphics:
Rendering, Geometry, and Image Manipulation
Tues/Thurs 1:30-2:50pm
Location: Gates B1
Instructor: Kayvon Fatahalian
Course Description

This course provides a comprehensive introduction to computer graphics, focusing on fundamental concepts and techniques, as well as their cross-cutting relationship to multiple problem domains in computer graphics (such as rendering, geometry, image processing, and modern AI-based graphics). Topics include: 2D and 3D drawing, sampling, interpolation, rasterization, image compositing, the GPU graphics pipeline (and parallel rendering), geometric transformations, curves and surfaces, geometric data structures, subdivision, meshing, spatial hierarchies, ray tracing, global illumination, image processing, and image compression.

Lectures will be recorded for offline viewing on Canvas. We will have frequent discussions and student breakouts during live lecture. Therefore, while attendance at live lecture will not be checked or graded, we ask you to make an effort to attend live lecture as much as possible.

Instructors and CAs
Your fun and helpful CAs:
Jitong Zhou
 
Haoyi Duan
 
Office Hours Calendar
Prerequisites

CS248A DOES NOT depend upon CS148 as a prerequisuite. We do not assume you have taken CS148. However, we expect you to be a proficient C/C++ programmer to complete the required programming assignments. (We expect you've taken at least CS107). We also assume basic understanding of linear algebra (at least MATH 51) and 3D calculus.

Textbook

There is no required textbook for CS248A, though a variety of books may provide good supplementary material:

Pete Shirley and Steve Marschner with Michael Ashikhmin, Michael Gleicher, Naty Hoffman, Garrett Johnson, Tamara Munzner, Erik Reinhard, Kelvin Sung, William B. Thompson, Peter Willemsen, and Bryan Wyvill
Fundamentals of Computer Graphics. A K Peters, 2009
[ On Amazon ]

John F. Hughes, Andries van Dam, Morgan McGuire, David F. Sklar, James D. Foley, Steven K. Feiner, and Kurt Akeley
Computer Graphics: Principles and Practice
[ On Amazon ]

Announcements via Ed Discussion

All class announcements will be made via our Ed discussion. Everyone enrolled in the course via Canvas should be able to access this site.

Grading (What You Will Do!)

All students will be expected to perform:

  • Four programming assignments: 4 x 15% = 60%
  • Five written exercises: 5 x 5% = 25%
  • One exam: 15% (scheduled for 6pm on Wed March 5th)

Programming assignments can be completed in teams of up to two students. Students can pick their own partners, work on their own, or have the staff recommend a partner. Written assignments will be performed in teams of three, with new randomly assigned partners each assignment.

Each student is allotted a total of eight late-day points for the semester. Late-day points are for use on programming assignments only. Late-day points work as follows:

  • A one-person team can extend a programming assignment deadline by one day using one point.
  • A two-person team can extend a programming assignment deadline by one day using two points. (e.g., one point from each student)
  • If a team does not have remaining late day points, late hand-ins will incur a 10% penalty per day.
  • No assignments will be accepted more than three days after the deadline. This is true whether or not the student(s) have late-day points remaining.

FAQ

Do I need a partner for programming and written assignments?

CS248A students will complete both written assignments and programming assignments during the quarter. Written assignments will be done in groups of three, with partners randomly assigned to you by the course staff. (We will assign you unique random partners on each assignment to help you get to know your fellow classmates.)

Programming assignments can be done in tems of up to two students. However, doing programming assignments with a partner is optional. Each year a number of students decide to do all the programming assignments on their own because they think it will help them learn the material better. Note that all teams, regardless of whether they are one or two person teams, are graded the same.

I don't have a programming assignment partner but definitely want one, what should I do?

We understand that it can be hard to find partners in CS classes. We want everyone that wants to work with a partner to have the opportunity to do so. In the first week of class, the course staff will run a partner matching service that will ask students to fill out a survey and match students according to responses.

If you need to change partners or find a partner in the middle of the quarter, just reach out to the staff and we'll do our best to help you find someone. We are here to help!

Do I need to tell the staff that I am using late days on a programming assignment?

No, just submit your assignment. The submission will be time stamped and the staff will keep track of late days.

I got sick, had a busy week, had extra curricular activities, had a family event I want to attend, etc.? Can I get an extension?

You are going to have periods throughout the quarter where you cannot put much time in CS248A. That's perfectly fine! Late days are there to allow you to adjust your deadlines. Given that you have a generous number of late days for the quarter, we expect you to manage those days according to your needs. We intend to only give students additional late days under exceptional circumstances (significant long-running illnesses, important family concerns, etc.) or in accordance with OAE designations. If you believe exceptional circumstances may be in play, we want to help! But please make the staff aware of your situation at least 72 hours prior to the impacted deadline. We are going to hold all students to the 72-advance notice rule and deny last-minute requests, unless an unforeseeable exceptional event happened during this last-minute period.

Office hours are busy and I'm having trouble getting the help I need. What can I do?

Office hours aren't the only time you can get help from the staff. Just reach out by posting on Ed or writing an email to the staff asking for an appointment for a 1-on-1 conversation. We'll make time to help!

Will lectures be recorded?

Yes, lectures are recorded by CGOE and available for offline viewing on Canvas. We try to make lectures participatory and have in-class discussions, so we hope that you will make an effort to attend lecture as much as possible and use the recorded lectures as review and reference.

Can I audit the class?

Please email one of the CAs and we will be happy to add you to Canvas as an observer.