Foundations of Computer Graphics

4.40 / 5 rating2.60 / 5 difficulty10.20 hrs / week

Quick Facts and Resources

Something missing or incorrect? Tell us more.

Name
Foundations of Computer Graphics
Listed As
CS-6491
Credit Hours
3
Available to
CS students
Description
Mathematical/physical/perceptual principles and modeling/rendering techniques used to create, represent, display, and animate models of 3D shapes and their properties.
Syllabus
Syllabus
  • HBSwSIlY4W/ObBOpTutzyg==summer 2026

    Overall, this was a great course. The course reaches a good balance between theoretical background and practical application. The topics are really interesting, especially the ray tracing module (which is half of the course), you get to learn a lot of the specifics for implementing the algorithms, then apply them in a friendly way in the assignments and finally you will see it reflected in your screen. The grade is divided into 5 assignments (80%) and many quizzes about the lectures (20%).

    Assignments: They provide you with a good starting code, so that you can focus on implementing the topics you learned in class. They also provide good public and private test cases to test individual functions, which makes it easier to know you are on the right track. Finally, you are also evaluated based on images of the target scenes you need to generate. The assignments are programmed in Java using the Processing library.

    Quizzes: I find them easy and a good refresher of the lectures

    Some minor improvements:

    • Processing can be good for learning, but it would be nice to learn a graphics API that is used in the real world. At least for some modules.

    • I got less points in one question of the last assignment because I didn’t implement the function in the exact same way as the lecture described it, even though mine was clearly that it was mathematically equivalent to it (and the final output was correct). It didn’t end up affecting my grade but, if you are taking this course, be careful with that.

    Rating: 5 / 5Difficulty: 3 / 5Workload: 10 hours / week
  • Iry1J3YMb99kAfRKQq4FPg==summer 2026

    The course was well done overall, I did not like the monotone reading from Dr. Wilson's lectures. It was so robotic that I thought it was AI at first. The content itself was interesting and I learned a lot. The use of Java didn't really bother me and this kind of implementation (Ray Tracing & Mesh Manipulations) should really only be done on low level frameworks like Metal and OpenGL but doing it in that would have made it a bigger headache IMO.

    The projects were not easy by any means, but they were a tad boring at times.

    Rating: 4 / 5Difficulty: 3 / 5Workload: 15 hours / week
  • fTqoyiXKd7q7GeTvylNYYg==spring 2026

    Really interesting course on the low level math of computer graphics. Mostly just geometry and vector math, nothing difficult there.

    Grade is split between 5 programming assignments and 20 quizzes, but the quizzes only count for 20% of the total grade. The first three assignments are treated as one three part assignment, but it's separate due dates and grades, with each part building on the previous one.

    Each assignment the grade is split between an autograder and recreating images from the instructions. You usually get 3 weeks per assignment, and can resubmit unlimited times to see how you do against the autograder. In my semester, the TAs lined up their office hours so there was someone holding office hours every day except Sunday, and they were willing to help if you were stuck on a programming assignment. As long as you start early, you have plenty of time to refine your assignments and get full points on all of them. I was able to and I have no background in computer graphics.

    End of semester, I had full points on the assignments and a C average on the quizzes, which still left me with an A in the class overall. If you're looking for an elective that's interesting and makes you think without being too difficult, this is a good fit.

    Rating: 4 / 5Difficulty: 2 / 5Workload: 10 hours / week
  • Y//78ivuAYK34qoqqIUJsA==spring 2026

    The semester is still not over but I wanted to leave my review since there aren't many right now.

    This is a reasonably light-weight course, with roughly 3 assignments:

    • A1 RAY TRACER (40%) is divided into 3 parts (divided in 2+3+3 weeks) where the idea is to implement a basic physically-based ray tracer in Java on top of a pre-implemented Processing visualizer (learning Processing is not required; only standard Java), covering topics like: ray casting, shading, acceleration structures, scene graphs, indirect lighting/path tracing for explicit surfaces. Some algorithms are easy to implement, others are more intricate but in general the assignment scheduling is very forgiving, and so is the autograder.

    • A2 IMPLICIT SURFACES (16%) is about modeling/defining implicit surfaces through skeletal and CSG primitives. The meshing and rendering of the surfaces is already provided. This assignment had an extra credit section about modeling something interesting through skeletal primitives. Some classmates designed Pokémons, Star Wars stuff, Hollow Night characters, cars, etc. 3 weeks to work on this.

    • A3 MESH MANIPULATION (24%) is about implementing subdivision and smoothing algorithms on triangle meshes. Again, rendering is already provided. Subdivision is tricky but we're given 3 weeks to work on this.

    On average, I spent ~14 hours in each assignment. In each assignment we must also replicate and submit reference images that helps us assess whether our implementations are approximately correct.

    In comparison, quizzes are much more difficult. They are kinda tricky but not annoyingly. I got around 72% in quizzes overall, but they are only 20% of the final grade.

    The lectures are kinda dry and sometimes too lengthy. I had to look for other resources to understand many of the topics. Still, the course was very enjoyable overall.

    TAs are attentive and responsive. EdStem participation was very lacking (maybe due to the class size) but every question was replied on time. Grading is also quick for assignments though not completely autograded (one can self-assess based on reference image replication), and quiz grading is immediate. No final exam or additional grading rubric.

    I set "Workload 10 hours / week" based on a reasonable commitment expectation. I spent a lot more than that since I found physically-based ray tracing so marvelous that I spent a lot of time learning further on my own and implementing everything from scratch in C++ (reminder: this course is programmed in Java).


    PS: Ray tracing is a beautiful algorithm.

    Rating: 5 / 5Difficulty: 3 / 5Workload: 10 hours / week
  • JSYEBKrCp/OkgYNve7bHkw==spring 2026

    Background:

    • eng UG; nonCS
    • 10 y exp in industry: test and devops
    • 7/8th course; took concurrently w VGD
    • have taken GIOS, SAT, AI4R, CN, AOS, IIS.
    • will likely end with an A

    Time:

    • reading book/lecs apart from assignments: 5 hr
    • Assignment 0 and setup: 1.5 hr
    • Assignment 1.1: 11 hr
    • Assignment 1.2: 20 hr
    • Assignment 1.3: 15 hr
    • Assignment 2: 16 hr
    • Assignment 3: 18 hr
    • Quizzes (incl reading lecs/notes): 12 hr

    Experience:

    • Ended up being a lighter course than expected, which is nice.
    • course only has 3 assignments (worth 80% total) and quizzes (20%); no other exams.
    • assignments and quizzes are gated until certain dates. It would be great if they could just all be released upon class opening. This would bump the rating up more for me.
    • TAs would post a thread for each assignment, along with major hints/instructions for each method/function one needed to implement, along with where to find further info in the notes or textbook. Very helpful
    • Assignment 1 is creating a raytracing (how to render an image) program, split into 3 parts, and gradually adding on shading, shadow and light effects, etc.
    • Assignment 2 deals with implicit surfaces and using geometric definitions of simpler shapes to create more complex shapes
    • Assignment 3 deals with algorithms for creating and manipulating surface meshes
    • Each assignment would have roughly half of the points be autograded via gradescope tests, and the other half manually graded (usually within 1-2 weeks) from submitted images of whatever the assignment required us to render.
    • The quizzes are open note/book and not honorlock monitored, which is nice. A good reading of each section's notes and ctrl-f would usually be enough to do well. The questions were usually also very well-designed, testing a basic understanding of the concept, and not obtuse, nor too obvious.
    • Good course overall. Very little edstem discussion. Most posts were from the TAs moving or cancelling their OH
    Rating: 4 / 5Difficulty: 2 / 5Workload: 6 hours / week