CSC 333
Computer Graphics and Image Processing

Instructor: Dr. Stephen Bloch

Fall, 2005

This course meets from 9:25-10:40 AM on Tuesdays and Thursdays in Science 227. The last time I taught this course was Fall 1999. My office hours are Monday 11:00-2:00, Wednesday 10:00-1:00, Tuesday and Thursday 3:00-4:00.

Syllabus Calendar Grading Assignments PSP Examples


Getting Help

My office hours (in Alumnae Hall 113A; if I'm not there, look around the corner in 112) are to be announced.

Subject matter

This course is primarily about computer graphics: using a computer to generate images, especially generating two-dimensional images on a computer screen which nonetheless "look" three-dimensional to the human eye. This requires some mathematics, particularly linear algebra.

This course is intended primarily for students majoring or minoring in computer science or information systems. It assumes MTH 142 (Calculus II), MTH 253 (Linear Algebra), and CSC 270 (Survey of Programming Languages) as prerequisites. In practice, we won't use much calculus; we will, however, use linear algebra and the C/C++ programming languages (as well as Java, perhaps).

If you're looking for a course on using Adobe PhotoShop, Quark XPress, or other pre-written applications to create graphics, you're in the wrong place; the Art department offers such courses.

If you're looking for a course on writing programs with graphical user interfaces, menus, buttons, and so on, we will address those issues from time to time, but they're not the central focus of this course; see CSC 233.


The textbook will be Interactive Computer Graphics, by Edward Angel, who has also provided a variety of on-line supplements and resources, including on-line programming examples.

You may also want to use Angel's OpenGL: A Primer, which doesn't explain principles of computer graphics, but is more useful as a reference to OpenGL. The programs in this book are available on the web.

This semester, we'll use the graphics package OpenGL (see online documentation). For more documentation, see the Red Book (user's guide) and the Blue Book (reference manual).


Development Environments

I recommend Eclipse, a professional-level development environment which is available for free download and has "plug-ins" available to work with several different languages: Java, C, C++, Prolog, etc. It should come with Java pre-installed. If you want to use it with C/C++, you'll need to install a C/C++ compiler for Eclipse to use. On Windows, probably the best choice is Borland's free C++ compiler. Downloading this requires registration, but no money. By itself, it's just a fast, reliable, command-line-driven C++ compiler, but Eclipse knows how to invoke it on your behalf.

You can also use Microsoft's Visual C++ IDE. This has the disadvantage that it's a Microsoft product, and therefore knows what you want to do better than you do, but if it works for you, great.

Software support

I've set up some forms for entering and viewing PSP data. You may use these forms to record defects, time allotted, time spent, and program size, but I won't require this information. To use the forms successfully, make sure your browser accepts JavaScript and cookies. (For those with a moral opposition to cookies, I assure you that they're all "temporary" -- they disappear as soon as you quit the browser.) (For more information about PSP, see the PSP page at Carnegie-Mellon or read Watts Humphrey's Introduction to the Personal Software Process.)

Last modified:
Stephen Bloch /