CS 351: Syllabus

Syllabus for Fall 2014

Topics and Reading Assignments


There are many texts on computer graphics. Since this course does not focus on OpenGL, many of the available books are not appropriate. The 2nd edition of the Shirley book is appropriate for the course and has wider coverage than most. In the end, it doesn't really matter which book you choose. The Shirley is straightforward and covers most of what we cover in the course with varying degrees of depth. If you want more depth on graphics mathematics, try one of the graphics math texts, although you'll get most of what you need from the Shirley text and the lectures.

P. Shirley, Fundamentals of Computer Graphics, 2nd ed, AK Peters Ltd, 2002. (recommended text)

A. Watt, 3D Computer Graphics, 3rd Ed., Addison-Wesley, Reading, MA, 2000. (alternative text)

D. F. Rogers, Procedural Elements for Computer Graphics, 2nd Ed., McGraw-Hill, Boston, MA, 1998. (recommended text)

Hearn, D., and M. P. Baker, Computer Graphics (C Version), 2nd Ed., Prentice Hall, Upper Saddle River, NJ, 1997. (alternative text)

Foley, Van Dam, Feiner, Hughes, and Phillips, Introduction to Computer Graphics, Addison-Wesley, Reading, MA, 1994. (alternative text)

E. Lengyel, Mathematics for 3D Game Programming and Computer Graphics, 2nd ed., Charles River Media, 2003. (suggested graphics math text)

D. F. Rogers and J. A. Adams, Mathematical Elements for Computer Graphics, 2nd Ed., McGraw-Hill, Boston, MA, 1990. (suggested graphics math text)

M. Mortenson, Mathematics for Computer Graphics Applications: An Introduction to the Mathematics and Geometry of Cad/Cam, Geometric Modeling, Scientific Visualization, and Other CG Applications, 2nd ed, Industrial Press, 1999. (alternative graphics math text)

P. Schnelder, D. Eberly, Geometric Tools for Computer Graphics (Morgan Kaufmann Series in Computer Graphics and Geometric Modeling), 1st ed, Morgan Kaufmann, 2002. (alternative graphics math text)

F. Dunn and I. Parberry, 3D Math Primer for Graphics and Game Development, 1st ed., Wordware Publishing, 2002. (alternative graphics math text)


Grading will be based on four items: projects (50%), quizzes/exams(30%) your portfolio (10%), and a final presentation (10%). Your code will be graded on functionality, correctness, design, and style. Your portfolio will be judged based on completeness, complexity, and visual interest. Your final presentation will be judged based on content, presentation quality, and your ability to answer questions. Your portfolio will be the primary personalized aspect of the course. It incorporates the concept of extensions, in that you can put together a complete portfolio for 80% of that grade, but increase that by creating additional pieces that demonstrate interesting computer graphics concepts.

Programming Assignments & Portfolio:

The course incorporates a number of sequential assignments. As part of each assignment you will create pictures. There will always be 1-2 required pictures; you should also create 2 or more pictures of your own design for your portfolio with each assignment. If you are working in pairs, you will hand in a single writeup, but you should still create your own versions of any pictures that require creativity.

Late Policy: Quite simply, don't fall behind. Since every assignment will build on the previous one, it is essential that you keep up. If you don't, I don't really need to assess a penalty since you won't complete the next assignment very well either.

However, the policy will be as follows. Any assignment turned in by the due date will receive full credit for the work completed. Any assignment turned in after the due date will receive reduced credit, but no less than 50% credit for the work completed.

Collaboration on assignment concepts and ideas between groups is acceptable, but you need to understand everything you do, and your code should be your own group's code. If you use ideas from another group, you must indicate that within your code or writeup. Err on the side of caution. The worst thing that can happen is the professor noticing disturbing similarities in homeworks or assignments with no attribution of credit.


For each assignment, you will put together a web or wiki page for the writeup. The writeup should describe the assignment, explain any required theory, and present the results. Your audience for the writeup is your fellow students who might be interested in what you're doing. To hand in your code, email the professor a zip or tgz file. The professor should be able to compile your code using make. Do not include any unnecessary images or other large files in your zip/tar file.

Weekly Topics and Readings

  • Introduction, course concept
  • Representing images
  • C/C++
Shirley, Chapters 1, 3
  • Working with images
  • Graphics primitives
  • Line drawing
Shirley, Chapters 2, 3
  • Circles, Ellipses
  • Polygons
  • Filled objects
Shirley, Chapter 3
  • Rasterization
  • Scanline fill
  • anti-aliasing
Shirley, Chapters 3, 4
  • 2-D transformations
  • 2-D viewing / clipping
  • Hierarchical modeling
Shirley, Chapters 5, 6
  • 3-D transformations
  • Review
  • Midterm Exam
Shirley, Chapters 5, 6
  • 3-D Viewing
  • Orthographic projection
  • Perspective projection
Shirley, Chapter 7
  • 3-D Object models
  • Splines, Bezier curves and surfaces
  • Hidden surface removal
Shirley, Chapters 2, 8, 13, 15
  • Z-buffer algorithm
  • Shading
  • Illumination models
Shirley, Chapters 8, 9, 19, 20, 24
  • Rendering algorithms
  • Shadows
Shirley, Chapters 10, 12
  • Texture mapping
  • Animation
Shirley, Chapters 11, 16
  • Particle systems
  • Behavioral modeling
Shirley, Chapter 16
  • Ray tracing
  • Radiosity
Shirley, Chapters 10, 19, 23