Colorado State University Computer Science Department, CSU


Syllabus for CS510: Computer Graphics --- Spring '97

Course Description

In CS510, the focus is on computer graphics techniques for the generation of realistic images using techniques for defining surfaces and for calculating lighting and shading effects. Students will write programs to render 3D objects using techniques ranging from simple flat shading to complex ray-shading. User-interface design with X-windows will be introduced. We will also briefly discuss programming with the OpenGL graphics library and Java.

Important Information

Course Prerequisites

The prerequisite for this course is CS410, Introduction to Computer Graphics. You should be able to work easily with concepts from CS410 such as 3D homogeneous coordinate transformations, complex models, 3D viewing and clipping, polygon filling, perspective viewing, and Bezier and B-Spline curves. If, instead of CS410, you have taken a similar course at another university (or if it's been a while since you took CS410), you may wish to obtain a copy of the CS410 course notes to review any material which may have been covered differently or not covered in your graphics course. You may be able to borrow the notes from another student. If you need a copy of the notes, let the instructor know. Additional copies can be made, which you would purchase at the Research Services Print Shop in 104 USC for a cost of about four dollars. If you have not taken CS410 or the equivalent, you will probably have considerable difficulty in this course. I strongly recommend that you take CS410 first. It is offered this semester at the same times and days as CS510.

Important Dates

Here are some important dates. Others will be announced in class as the semester progresses.

On-Campus Students

SURGE Students

Grading

Various components of the class are described in the following sections. Grades will be based on the following items, weighted as follows:

Lab Assignments

There will be give lab assignments in the course to give you experience in implementing some of the computer graphics algorithms discussed in class. You will implement lighting, shading, and hidden surface algorithms, including a ray-tracing algorithm. All lab assignments must be done individually, not in groups. See the Computer Science Department's Student Information sheet for guidelines on helping other students or seeking help from other students with assignments.

Semester Project

This course will require the completion of a semester project. Each project will require a written report and a class presentation. Presentations will be late in the semester; a schedule will be announced in class. If you are taking the class through SURGE, you may elect to attend class to present your report, otherwise your project grade will be based on your written report only. Two types of semester projects are possible: Choice of topic must be discussed with and approved by the instructor. By February 24th (March 10th for SURGE students), you must turn in a two-page or more proposal on what you are doing for your semester project. This proposal must include a set of at least three milestones, each with a date by when you plan to complete the milestone. The final written reports are due May 5th (May 19th for SURGE students). See the list of handouts for a LaTeX and Postscript version of an outline of the report. The outline also discusses how the projects will be graded.

Attendance and Class Participation

Attendance at all sessions is highly recommended; some classes will cover material that is not in the book. Information in announcements made in class may not be available through other channels.

Exams

There will be two exams, a midterm and a final. The final exam will primarily pertain to the material covered after the midterm exam, with some topics from the first half of the semester.

Hardware and Software

Unless you are taking the class through SURGE, all lab assignments must be written in C or C++, and must compile and execute correctly on Computer Science Department computer systems. All assignments will require the submission of source code. SURGE students must submit source code and executables on MS-DOS format floppy disk or through electronic mail. Any exceptions require prior approval by the instructor. On-campus students may use other computers (personal computers, etc.) to develop and debug your lab programs, but the final product must compile and execute on Computer Science Department computer systems. Note that different systems almost always have some incompatibilities, so caution should be used in adopting this approach.

SURGE

This course is offered on-campus and also through the SURGE program, which provides courses on video tape for off-campus students. If you are taking CS510 through SURGE, exam dates and deadlines for lab assignments will normally be about two weeks after the deadline for on-campus students. This will allow time for receipt of video tapes and return of assignments. The deadline specified for SURGE assignments is the date by which the assignment must be postmarked (for U.S. Mail) or received (FAX or e-mail). For FAX submittal, be sure that my name and department (Computer Science) are on the cover sheet, and be sure that your writing is dark enough so that it is legible on the FAX copy. In order to complete the lab assignments, you will need access to a computer with a graphics display capable of displaying gray scale images with at least 64 gray levels. A graphical input device such as a mouse, track ball, tablet, etc., is desirable but not required. A graphics workstation or terminal with the X11 window system will be the easiest to use, but a reasonably-fast (486 or faster) personal computer will be adequate. You will also need some way to electronically submit images for your lab assignments. This may be done by modem or network login to the CSU computer systems, by electronic mail, or by sending a diskette in MS-DOS format through normal mail. Note to on-campus students: The SURGE video tapes of lectures are available for viewing in the Computer Science Department labs (3rd floor, USC). Check with the lab assistant for tape availability; tapes generally become available several days after the lecture, and are kept for a couple weeks before reuse.

On-line Information

All required information, handouts, and code is available on-line at http://www.cs.colostate.edu/~cs510. If you are unable to access this, let the instructor know immediately. Other arrangements can be made for you to receive the necessary material. The newsgroup csu.cs.510 is available for our use. If you want to ask a question of the class, find a study partner, let others know about a particularly interesting web site you have found, or any other thing you want to share with the class, you are welcome to post a note to this newsgroup. I will also be posting notes regarding any changes to the schedule.

Due Dates, Rescheduling, and Late Policy

If you are unable to take an exam at the scheduled time, you must notify me as soon as possible. Rescheduling of exams, homeworks, lab assignments, etc., will be possible only in exceptional circumstances. Guidelines can be found in the attached Computer Science Department's Student Information Student Information Sheet. See the sections Attendance Policy and University Calendar and Incomplete Grade Policy. For lab assignments, the due date will be noted on the assignment sheet; assignments are due at the start of the class period on the due date. Assignments turned in after the start of the class in which they are due will be considered late. Unless otherwise specified, late assignments will be penalized by 5% every day they are late. The day count increases every weekday at 4:00PM. (Weekend days don't count!)

Course Schedule

Here is a tentative schedule for the semester. The order of topics will probably remain the same, but the dates may shift. Each entry contains a date, a list of topics, and possibily a reading assignment from the Foley, et al., text book.
anderson@cs.colostate.edu

Copyright © 1997 Chuck Anderson