The following 403 words could not be found in the dictionary of 615 words (including 615 LocalSpellingWords) and are highlighted below:

200px   45am   59pm   5th   above   accepted   account   accounts   Addison   addition   Additional   Additionally   advanced   algorithms   aliasing   Aliasing   All   an   and   Angel   Animating   Animation   animation   Antialiasing   antialiasing   art   assigned   assignment   Assignment   Assignment1   Assignment2   Assignments   assignments   at   automatically   available   B08   basic   be   because   being   best   Book   book   books   boxes   Bracketed   broad   Building   but   called   Cameras   cameras   can   class   clock   cluster   Clusters   Collaboration   color   Color   common   completed   completely   compositing   Compositing   Compression   compression   computer   Computer   Computing   computing   concentrate   conceptual   conference   considered   consult   continuing   controller   count   Course   course   covers   criteria   cs148   curves   Dates   Dave   Davis   Description   design   detailed   determining   develop   devices   Digital   dimensional   directories   discuss   disk   displays   Displays   documentation   drop   dropping   Dual   due   dynamic   each   easy   Edition   edu   Edward   encouraged   escapement   essentially   Evaluation   Example   exams   excerpts   exclusive   expected   Exposure   exposure   extra   extraction   features   Feb   few   Filtering   filtering   final   following   For   for   found   freely   friends   from   Fundamentals   gamepad   Gates   Generative   Geometry   geometry   get   Ghz   given   gives   good   grade   grades   grading   graphics   Graphics   Guide   handed   hardware   Hardware   high   Home   home   hours   ideas   ids   if   If   illumination   image   imaging   immediately   implement   in   In   include   including   increase   information   Information   Input   Instructors   Interaction   interactive   Interactive   interest   Interpolation   introduction   Introduction   Jackie   Jan   journals   large   late   Late   layout   lecture   Lectures   leland   Light   light   lighting   Linux   linux   list   lists   located   lot   lowest   mac   machine   machines   mailing   main   Mar   Mason   Masters   Matte   Mattes   meant   methods   mid   model   modeling   Modeling   models   more   most   myth   myth1   myth29   named   need   Neider   No   non   notice   notify   of   officially   often   older   on   one   online   Only   Open   opengl   or   other   out   output   over   overview   own   page   pan   papers   Participants   particular   pattern   per   personal   Peter   Peters   platforms   Please   Prerequisites   primer   Primer   priority   proceedings   processing   program   programming   Programming   programs   projects   provided   provides   quarter   quota   range   read   readily   readings   Readings   recomended   recommended   Red   red   reflection   Registered   remote   Rendering   representations   reproduction   Reproduction   required   revised   Room   S107   S148   S248   Sampling   sampling   scores   second   Self   services   Shading   shared   Shirley   short   should   Shreiner   shtml   signing   Simple   Since   skipped   so   software   solutions   Splines   staff   stanford   Stanford   stated   strong   students   style   such   support   surfaces   Syllabus   system   take   techniques   Techniques   Technology   tentative   term   tested   Text   text   Th   that   The   the   There   these   These   this   This   three   Thu   Time   to   Tom   tone   Tone   toolkits   tools   Topics   transformations   Transforms   Tu   Tue   tutorials   two   Typography   typography   up   use   used   using   vertex   Video   view   Wavelet   we   web   week   Week   welcome   Wesley   when   width   will   win0607   windows   Winter   wish   with   withing   Woo   write   Xeon   year   You   you   your   zoom  



This course is being completely revised this year.

This course provides a broad introduction to computer graphics and imaging. Topics: Input and output devices such as cameras and displays, graphics hardware and software, interactive techniques and the model-view-controller design pattern, typography and page layout, light and color representations, tone reproduction, image filtering, sampling, aliasing and antialiasing, compression, two- and three-dimensional geometry and transformations, modeling techniques including curves and surfaces, reflection models and illumination algorithms, and basic methods for animation.


CS107, MATH 103.

Programming using C/C++ and OpenGL and use of common graphics tools such as drawing programs and image processing toolkits.

Masters students or students with a strong interest in continuing in graphics should take CS248.







Jan 9, 11




Jan 16, 18




Jan 23, 25


Splines and Interpolation


Jan 30, Feb 1

Input Technology

Interaction Techniques


Feb 6, 8

Light and Color

Digital Cameras


Feb 13, 15


Exposure and Tone Reproduction


Feb 20, 22

Mattes and Compositing



Feb 27, Mar 1

Sampling: Aliasing and Antialiasing



Mar 6, 8

Digital Video and HDTV



Mar 13, 15




Text and readings

There is one required text for the course.

  • Peter Shirley
    Fundamentals of Computer Graphics, 2nd Edition

  • K. Peters, 2006.

In addition, one of the following books on OpenGL are recommended. The first one, the primer, is easy to read and gives a good overview of OpenGL. The second book, often called 'The Red Book" is more detailed and covers more advanced features. These books are recomended- not required -because most of this information can be found online. In particular, the older 2nd Edition of the OpenGL Programming Guide is freely available.

  • Edward Angel
    OpenGL: A Primer, 2nd Edition
    Addison-Wesley, 2005

    Dave Shreiner, Mason Woo, Jackie Neider, Tom Davis
    OpenGL Programming Guide, 5th Edition
    Addison-Wesley, 2006

Additional readings will be assigned from journals and conference proceedings, and excerpts from conference tutorials. Only papers NOT available online will be handed out in class. Readings for each lecture are available from the Lectures page.

Assignments, exams and grading

This course will include 8 short assignments, one per week, in addition to a mid-term and a final.

The assignments will be short and are meant to be completed in a few hours. Example code and data will be provided so that you can concentrate on the main conceptual ideas and not need to write a lot of code. Additionally, of your 8 assignments, we will drop the lowest 2 scores when computing final grades.

The tentative list of assignments are::

  • Assignment1: Generative art Assignment2: Animating a clock escapement Assignment 3: Simple page layout system Assignment 4: Interactive zoom-and-pan over a large image using a gamepad Assignment 5: Bracketed exposure and high-dynamic range imaging Assignment 6: Matte extraction and compositing Assignment 7: Wavelet compression Assignment 8: Shading and lighting using a vertex program

Evaluation criteria: Programming assignments will count 60% of your grade. As stated above, your best 6 grades out of the 8 programming assignments will be used for determining your final grade. The mid-term and the final will each count 20% of your grade.

Collaboration: For the programming projects, you may discuss the assignment with friends, but you are expected to implement your own solutions.

Late assignments: Assignments will be handed out on Thu and are due the following Thu at 11:59pm. No late assignments will be accepted for grading. Since we will be dropping your two lowest assignment scores, a late assignment will essentially be considered one of your skipped assignments.

Hardware and software

You are welcome and encouraged to do class assignments on your own machines. OpenGL is readily available on linux, windows and mac platforms. The support code will be tested on each of these platforms.

If you do not wish to develop on a personal machine, you will have access to the 'myth' machines located in Gates B08. These 3.2 Ghz DELL Dual-Xeon Linux boxes, named myth1 - myth29 are available for remote access. CS148 students are given non-exclusive priority access to these machines.

All students with leland accounts automatically have accounts on these machines. Home directories on these machines are shared with other Stanford Computing Clusters using AFS. If you do not have a leland account, consult this ITSS web page. Registered students will get an extra 200MB of disk quota for the quarter. Please notify the course staff immediately if you do not notice this quota increase withing 48 hours of officially signing up for the course.