CS 351: Syllabus

Syllabus for Fall 2008

Topics and Reading Assignments

Textbooks

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 some. If you can find a copy of the Rogers book, you might consider it instead. That was my top choice until it went out of print in 2003. 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

Midterm Exam 15%
Final Exam 25%
Class Participation 2%
Assignments 48%
Portfolio 10%

The programming assignments and portfolio account for over half of your grade, with exams and class participation accounting for the remainder. The grading policy on assignments is that the tasks specified explicitly in the lab description will constitute about 85% of the assignment. If you complete the specified parts of the assignment properly, and produce a high-quality writeup, it's worth up to a B+ grade. In addition, the lab description will include a variety of extensions to the assignment, or you can come up with your own. Completing one or more extensions, in addition to the specified parts of the assignment, will earn you some flavor of A.


Programming Assignments & Portfolio:

There will be 12 programming assignments during the course of the semester, each of which will be due 1 week after being handed out. 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.

At the end of the semester, we will have a poster session during which you will present your portfolio to the other members of the class and the college community. The portfolio gives you the opportunity to push the envelope of the assignments and stretch your imagination. Grading for the portfolio will be based upon having images from each of the ten assignments along with explanations of how they were created (10% per assignment).

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 either.

However, the policy will be as follows. Any assignment turned in before I grade that assignment set will receive full credit. Any assignment turned in after I grade that assignment set will receive no more than 50% credit. I will generally grade graphics assignments no later than one week after they have been turned in, and the only guarantee of full credit is to turn it in before the deadline.

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, be sure to 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.

Handin

For each assignment, you will put together a short web page 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, use the Academics server.


Weekly Topics and Readings

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