Policies

Table of contents

  1. Course Description
  2. Times and Locations
    1. Lecture
    2. Discussions
    3. Office Hours
    4. Communications
  3. Prerequisites
  4. The Big Idea
  5. Assignments and Exams
    1. Homework
    2. Final Project
    3. Exams
  6. Grading
    1. Oral Check-ins
  7. Late Policy
  8. Participation Policy
  9. Policy on Use of Generative-AI Tools
  10. Inclusion
  11. Textbook
    1. Physically Based Rendering: From Theory to Implementation (Third Edition):
    2. Fundamentals of Computer Graphics
    3. Computer Graphics: Principles and Practice
  12. Learning Cooperatively *
    1. Online Forum
    2. Academic Honesty and Class Honor Code
  13. A Parting Thought *

Course Description

This course provides a broad introduction to the fundamentals of computer graphics. The main areas covered are modeling, rendering, animation and imaging. Topics include 2D and 3D transformations, drawing to raster displays, sampling, texturing, antialiasing, geometric modeling, ray tracing and global illumination, animation, cameras, image processing and computational imaging. There will be an emphasis on mathematical and geometric aspects of graphics, and the ability to write complete 3D graphics programs.


Times and Locations

Lecture

Lectures are 3:30-5:00 PM on Monday, Tuesday, Wednesday, Thursday, in Dwinelle 145. Lecture will be recorded, and videos will be linked on the course website shortly after each class.

Discussions

Discussions are a review of recent lecture material and provide some practice in problem-solving. The Tuesday and Thursday sessions each week are two parts of one continuous discussion, not separate or repeated sections.

Time Location TA / Instructor
Tuesday 2:00-3:00 PM Wheeler 202 Stephanie Fu
Thursday 2:00-3:00 PM Wheeler 202 Chung Min Kim

Office Hours

Office hour times have been released. Please check the course calendar for any one-off changes or additional office hours near assignment deadlines.

Time Location TA / Instructor
Monday 2:00-3:00 PM 1st floor Berkeley Way West Stephanie Fu
Wednesday 2:00-3:00 PM 1st floor Berkeley Way West David McAllister

Communications

We will use Ed for course communications. Check out our calendar to see scheduled events:

Prerequisites

We will assume a data structures course (e.g. CS 61B), C/C++ programming ability, fluency with development environment and debugging programs, knowledge of vectors, matrices basic linear algebra, calculus and trigonometry. Helpful: exposure to statistics, signal processing, and the Fourier transform.


The Big Idea

Our policies are designed with the aim of allowing you students to increase focus on learning rather than grading, encourage you to learn through collaboration, and entrusting you with building and maintaining academic integrity in our class community. The key points are:

  • Collaboration in pairs is allowed, and encouraged, on the homework assignments.
  • The class will not be graded on a curve. Your performance in class is your own.

Assignments and Exams

Homework

Students will be assigned three programming homework assignments. These homework assignments may be done in pairs.

Final Project

Students will propose and complete a self-selected final project. The final project will be done in teams of four. Each team will present live during the final project presentation and produce a final video and detailed report. Final project live presentations are scheduled for Thursday, August 13, 2026 – please save the dates on your calendars now. Details will be shared as soon as room bookings are confirmed.

Exams

There will be two in-person, closed-book exams:

  • Monday, July 13th from 3:30-5:00 PM PT
  • Monday, August 10th from 3:30-5:30 PM PT

There is no final exam for this course. Please note that we do not plan to offer alternate exam times. Please check and save these dates now, or make a private Ed post or email cs184-staff@berkeley.edu for any exceptional schedule conflicts, which will be handled on a case-by-case basis.


Grading

Your course grade is computed using a point system with a total of 100 points.

  • Three homework assignments, worth 5 points each.
  • Two exams, worth 20 points each.
  • Two 10-minute oral check-ins, worth 5 points each.
  • Final project, worth 30 points.
  • Participation, worth 5 points. Participation policy below.

There are a handful of extra credit points available over the semester, especially in the homeworks and final project.

Each letter grade for the course corresponds to a range of scores:

Grade Points
A >= 94
A- >= 90
B- to B+ >= 80
C- to C+ >= 70
D- to D+ >= 60

We set these bins so that you don’t have to stress about an ambiguous grading policy. We may (however, note that this is unlikely) shift these bins downwards based on class performance, but never upwards. This means that your grade can only go up!

Oral Check-ins

This summer, we are incorporating oral check-ins as a small portion of the grade. These are structured as short (5-6 min) conversations about homework problems that have been completed thus far. There will also be time during these sessions to speak privately with an instructor or TA about any questions and concerns about the class. We will release sign-up slots for these check-ins (on Ed and through e-mail) in later weeks. These check-ins are not meant to be tricky or test deep knowledge beyond what has been practiced in the homework assignments.

Late Policy

We do not offer late days for assignments in this class, due to the accelerated schedule. Late hand-ins will incur a 0.5 point penalty per day (out of 5 course points). For exceptional circumstances where you will need an extension, please email cs184-staff@berkeley.edu. We will most likely not accept extension requests unless they are made before the original deadline.

Participation Policy

Please read the participation policy article for more details.

As mentioned above, participation will count for 5 points towards your final grade. Each week, the maximum number of participation credits available is N, where N is the number of lectures scheduled that week. You will receive:

  • 1 credit for attending one lecture, and
  • 1 credit for attending one discussion.

You cannot receive more than N credits for a given week. We expect students to attend lecture regularly, but discussion attendance can make up participation credit if you cannot attend every lecture in a given week. For example, in a week with four scheduled lectures, attending all four lectures earns full weekly participation credit. Attending three lectures and one discussion also earns full weekly participation credit.

Note that you must earn participation credits week-to-week and cannot “make-up” participation at the end of the semester.

Policy on Use of Generative-AI Tools

For homework assignments and the final project, you are welcome to use AI tools, including ChatGPT and Claude Code, for assistance with coding and debugging. However, a few rules and things to keep in mind:

  • You must acknowledge each use of AI in your homework and project reports, describe in detail how you used the tools, and describe what you learned.
  • The exams this year are in-person, and will be closed-book. You will likely be asked to write sections of code by hand – so we will be expecting you to have mastered not just successful prompt-engineering, but also the ability to execute conventional software engineering yourself.
  • Current AI tools do not produce perfect results on course coding or writing, and learning to use them effectively is an art. You are personally responsible for the final code and report, and for learning the underlying foundational visual computing concepts. Make sure to closely supervise your tools if you use them, and completely understand and perfect what they are generating on your behalf!
  • Low or minimal-effort use of AI tools may result in low or no partial credit if not documented clearly or results are not perfect.
  • We encourage you to explore AI tools in a way that augments your broader learning in your computing education, without detracting from your learning of visual computing foundations.

Inclusion

We are committed to creating a learning environment welcoming and supportive of all students. Towards this goal, we call on our class community to:

  • Respect, welcome and learn from each other as individuals with unique backgrounds, perspectives and identities.
  • Collaboration and team learning are encouraged, and will be supported through class staff and resources.
  • Homework assignments and final project are a great way to meet new people and make friends; work on building trust and leveraging each other’s unique strengths.
  • If you feel that your learning is negatively affected by your experiences outside of class (e.g. family matters, current events), please don’t hesitate to come and talk with the instructor and/or staff. We want to support you.

Campus Resources:


Textbook

The primary source for the course will be the website, lectures, and section. Suggested supplementary reading and resources will be posted on the course readings page. The following textbooks are recommended, but optional, resources for you in this course and beyond:

Physically Based Rendering: From Theory to Implementation (Third Edition):

Authors: Matt Pharr, Wenzel Jakob, and Greg Humphreys

  • Physically Based Rendering is the book for learning about modern ray tracing techniques. The book is freely available online, with full source code online for an advanced physically-based ray tracer. It even won an Oscar for its impact on the film industry!

Fundamentals of Computer Graphics

Authors: 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

Computer Graphics: Principles and Practice

Authors: John F. Hughes, Andries van Dam, Morgan McGuire, David F. Sklar, James D. Foley, Steven K. Feiner, and Kurt Akeley


Learning Cooperatively *

With the obvious exception of exams, we encourage you to discuss course activities with your friends and classmates as you are working on them. You will definitely learn more in this class if you work with others than if you do not. Ask questions, answer questions, and share ideas liberally.

Learning cooperatively is different from sharing answers. You shouldn’t be showing your code to other students or looking at others’ code, except:

  • For assignments that allow partners, you can share anything with your partner.
  • If you’ve finished a problem already, you can look at others’ code to help them finish.

If you are helping another student, don’t just tell them the answer; they will learn very little and run into trouble on exams. Instead, try to guide them toward discovering the solution on their own. Problem solving practice is the key to progress in computer science.

Since you’re working collaboratively, keep your project partner informed. If some medical or personal emergency takes you away from the course for an extended period, or if you decide to drop the course for any reason, please don’t just disappear silently! You should inform your project partner, so that nobody is depending on you to do something you can’t finish.

Online Forum

If you have any questions, please post them on the webpages for the relevant lecture slides or on Ed, the course discussion forum. Ed allows you to learn from questions your fellow students have asked. We encourage you to answer each others’ questions! Conceptual questions and comments should go on the lecture slide webpages, and logistics and assignment questions should go on Ed.

Ed is the best and most reliable way to contact the course staff. You are also welcome to email the course instructors at cs184-staff@berkeley.edu.

Academic Honesty and Class Honor Code

The Honor Code is the commitment and work of students individually and as a community to uphold honesty and integrity. This commitment is comprehensive. Specifically on exams, it means not giving or receiving any help, or using any resources that are not permitted. The Honor Code requires that students take an active role in seeing to it that others as well as themselves uphold the letter and spirit of the Honor Code.

On exams you will sign to certify that:

  • All the work submitted in my name for this exam is my work alone.
  • I have not given or received any help during this exam.
  • I have not used any un-permitted resources during this exam.
  • I have used no more than the allowed time to write my answers for this exam.
  • If I become aware of any Honor Code violations related to this exam, I will inform the course staff immediately.

Any students caught collaborating on exams will receive an F in the course. Please don’t be one of these students.

Homework cooperation has a limit, and in CS184 that limit is reading others’ homework code or reports to a problem before you solve that problem and write up that portion of your own report. You are free to discuss the problems with others beforehand, but you must write your own code and reports. You may share code and report writing with your project partner.

If you are unsure if what you are doing is cheating, please clarify with the instructor by email or teaching staff via Ed. The following is a list of things you should NOT do. This list is not exhaustive, but covers most of the big offenses:

  • Do not copy code or report writing from any student who is not your partner.
  • Do not allow any student other than your partner to copy code or report writing from you.
  • Do not copy code or writing from online sources such as Stack Overflow, Pastebin, and public repositories on GitHub.
  • Do not post your code publicly during or after the semester.

In summary, we expect you to hand in your own work, take your own tests, and complete your own projects. The assignments and evaluations are structured to help you learn, which is why you are here.

Rather than copying someone else’s work, ask for help. You are not alone in this course! The entire staff is here to help you succeed. If you invest the time to learn the material and complete the projects, you won’t need to copy any answers.


A Parting Thought *

Grades and penalties aren’t the purpose of this course. We want to enable you to focus on your learning. The entire staff is very excited to be teaching CS184 this semester, and we’re looking forward to meeting such a large and enthusiastic group of students. We want all of you to be successful here. Welcome to our course!

* Thanks to Professor John DeNero and CS61A for the structure and much of the wording of various policies.