Introduction to 3D computer graphics; hardware, algorithms, and software organization for computer graphics; three-dimensional transformations; fundamentals of vector and raster graphics; programming projects implementing and/or building on a subset of the above.

Blair MacIntyre
Office: 239 College of Computing
Office Phone: 894-5224
Office Hours: 11-12 Wednesday and 12:30-1:30 Tuesdays (in 239 or 259C CCB)

The prerequisites for this course are

In practice, this means I expect that students are

The quarter equivalents to this course are CS 4390 and CS 4391. If you only have CS 4390, this course is the next in sequence.

The syllabus to the course is here.

Here's a link to the newsgroup.

Here's a link to the automatically recorded notes from class. To access the notes, your user id is your name (in the format FirstLast) and your password is your student id number. There will be audio, but no video, recorded with the notes.

There is one required text for the class:

I also highly recommend the following book on OpenGL (if you :

Finally, in the past we have used this textbook, which may be useful as a second source of information:

Course notes will be available online, hopefully at least a few hours before each class. These will follow the lectures given in class. These files will be Adobe Acrobat files, which you should be able to view and print from a web browser that has the Acrobat plugin. The notes will be linked into the syllabus on the line for that days lecture.

Grading will be based on a combination of programming assignments and tests. The breakdown is approximately the following:

All programming assignments must execute on the NT workstations in the States lab. However, since we are using Java and OpenGL for all of our programming assignments, and will try to keep the programs as platform independent as possible, you should be able to work on IRIX, Solaris, Linux, Windows (NT, 98, 2000), and the Macintosh. You should be able to log into any of the Solaris, Linux or NT machines in the states clusters: all Solaris 7 and Windows NT machines support OpenGL and Java.

You will write 5-6 programs for this course. All programs must be written in Java. Documentation/code clarity will count as 20% of the grade for each program. The other 80% of the grade will be based on the program's ability to handle various requirements that will be specified when the assignment is given.

Compiling and executing without errors on the published test data is considered minimal competency for any program. Late programs will be penalized 25% per day late. Weekends count as two days. Programs that are more than 2 days late will not be graded.

You may discuss high-level design strategies and specifications of the assignments with other students in this class, and are welcome to help each other with issues not central to the assignments (ie. OpenGL, Unix or NT problems, Java, etc.). However, your programs and homework are to represent your own work. All coding and detailed design decisions are to be made without consultation with others. If in doubt, ask.

Here are some pointers to information that may be helpful in getting started:

Programming assignments count for 50% of your final grade. Most programming assignments require many hours of coding. Familiarity with Java and programming on Unix workstations will be needed to finish the programming assignments. Do not start the night before, you will be late turning in your assignment.

The Magician bindings are located in the class account (/net/hc26/cs4451/Magician). There is a subdirectory for each of the different architectures: please follow the directions in the README file in each directory to see how to use the bindings.

The online version of the assignments have links to them here. We will also post some selected sample solutions from the assignments submitted. In general, we try to select samples that cover the basic assignments and the options.

There will probably be no formal homework that needs to be turned in for this course. If there are, we will have online links to the homework and the solutions here.