Cs184 1x Homework 10-2

About CS184.1x

CS184.1x teaches the Foundations of Computer Graphics. Students will understand the concepts of 3D graphics, and develop programs that create images of a 3D scene with lighting, using both real-time OpenGL and GLSL programming, as well as offline raytracing. The focus is on foundations and writing your own programs, rather than learning use of a specific software like Maya or Photoshop.

Course Overview

You can check out the syllabus page to see the topics we will be covering, along with lecture slides, videos and homework assignments. Briefly, the course is organized in 4 units, each with its own homework assignment.

  1. Overview and Basic Math (Homework 0: 10% of grade)
  2. Transformations (Homework 1: 20% of grade)
  3. OpenGL and Lighting (Homework 2: 35% of grade)
  4. Raytracing (Homework 3: 35% of grade).

Units/homeworks 0 and 1 are allotted 1 week each, while the more challenging homeworks 2 and 3 are allotted 2 weeks each. The full course is 6 weeks, and should provide a solid foundation for interactive and offline 3D computer graphics.

This term, students who earn a total score of 50% or greater will have passed the course and may obtain a free honor code certificate from BerkeleyX. As with all EdX classes, no numerical score or grade will be shown on the certificate.

Video Lectures

The video lectures are available from the courseware and hosted on YouTube. Since YouTube is not available in some countries, we also provide links for each lecture video, to download the mp4 video, slides and transcript, as well as half-resolution video for lower bandwidth. Some students who want to download the videos for offline use have also reported that lower filesize videos can be obtained using keepvid. On many lectures, I will derive equations or code, writing on the slides (I use a WaCom Cintiq 12WX tablet attached to a MacBook Pro). I believe this keeps the lecture engaging, as opposed to purely watching PowerPoint. However, I admit that my handwriting is not the best. For any relevant mathematical equation, the full typeset equation will always be shown, usually on the immediately next slide. The lecture slides PDFs you can download also contain all of the equations. The EdX video viewer should support interactive transcripts, and resolutions from 240p to HD 720p. In case you want a direct link to the YouTube videos, you can access the local UC Berkeley website for Online Lectures, as well as directly browse the CS 184 YouTube channel.  Finally, please note that there are multiple video segments for each lecture, and you can access them off the tabs on the top.  For convenience, the slides include the full lecture (all segments).


  • C++ (knowledge of C or Java should be adequate to learn C++)
  • A computer (laptop or desktop) capable of running Homework 0
  • Basic math: vectors and matrices (a review is given in Lecture 2)
The course makes extensive use of OpenGL (and C++) in homeworks 0,1 and 2, mainly as a tool/language to understand and implement graphics concepts. While no prior knowledge of OpenGL is required, you will be expected to learn the basics and program in it largely from online documentation; learning/using a new language from searching online documentation is not unusual for experienced programmers.

Late Policy

Assignments are due by the due date listed on the syllabus at 11:59pm Pacific Standard Time (PST is GMT -8 hours). We provide a grace period (with no penalty) of 3 days to account for unexpected issues. Beyond that point, no credit will be given, and the graders will not work after that point.

We recommend you to start early on the homework assignments. Experiences with the local Berkeley class tells us that the homework 1 should take around 12 hours, and homeworks 2 and 3 should take about 24 hours. Your mileage may vary (one student in the Fall EdX class commented that time for homework completion increases geometrically as about 1, 3, 9, 27 hours for homeworks 0,1,2,3), but please plan ahead.

Textbooks and Computer Requirements

There are no textbooks required; the course is free. We post links to some free OpenGL and GLSL tutorials; you can search online for many others. You may use any computer system that supports programmable shaders on a graphics card (GPU). Most computers (including laptops) built in the last 5-10 years satisfy this requirement.  More precisely, your graphics card must support at least GLSL version 120 (OpenGL 2.1).  This is true for almost any NVIDIA or ATI GPU, but some old integrated graphics cards (Intel GMA 950 or similar) may not run the homeworks appropriately.  Given the variety of systems, this should only be taken as a guideline; you can test your machine by doing homework 0.


Grading will be based on the four programming projects.

Honor Code

You may discuss your homework and class material with classmates; in fact, we encourage you to do so (please avoid spoilers and explicit code on the forums, though!). However, all submitted work must be your own, and you must write all programs yourself (no copying code from classmates, previous instances of the class or online resources). You must only submit images for grading that were actually produced by your program. You must abide by the edX Honor Code. Please do not post your source code or programs on external websites or social media. In particular, do not post source code to a public repository on github or a similar site; use private/not searchable repositories, or simply do not use github.  


Announcements will be posted in the updates & news section. Our primary communication channel will be our interactive forum, where students and staff will all contribute to an ongoing discussion of the course material.

Course staff

Ravi Ramamoorthi

Ravi Ramamoorthi was a Professor at UC Berkeley. He has moved to UCSD since Jul 1, 2014, but continues to maintain an affiliation at Berkeley; this course was developed and is still being offered as a BerkeleyX class. He has taught computer graphics more than 10 times at Stanford, Columbia and UC Berkeley, and has been honored with a number of awards for his research, including the ACM SIGGRAPH Significant New Researcher Award and by the White House with the PECASE (Presidential Early Career Award for Scientists and Engineers).

Course Technical Staff

Berkeley students Nicholas Estorga and Brandon Wang have done a tremendous job developing the auto-graders and other materials used in the course, but have now graduated. Current Berkeley PhD student Ling-Qi Yan will be maintaining the graders for this iteration.  A number of community TAs from previous local and online iterations of the course will also be answering questions on the forums.  

Беккер поблагодарил. Отпил глоток и чуть не поперхнулся. Ничего себе капелька. В голове у нее стучало.

Leave a Comment


Your email address will not be published. Required fields are marked *