Syllabus - CMP 160 - Introduction to Computer Graphics

Fall 2003, MWF 3:30-4:40pm, TENTATIVE Location: BE 156 TENTATIVE

Instructor

Jane Wilhelms, wilhelms@cse.ucsc.edu, 345 Baskin Engineering, x9-2440
Office Hours: T 12:00-2:00pm or by appointment.

Teaching Assistant

Amin Charanaya amin@cse.ucsc.edu
Discussion Sections: 5

Course Prerequisites

Math 12 or 17 or 21 or 27 -- matrix manipulation, determinants, dot products, and cross products.

CMP 101 -- data structures, C/C++ programming.

Class Topics

We will first cover the basics of computer graphics, including modeling, transformations and rendering. Topics include 2D and 3D graphics primitives, line drawing, curve and surface modeling, projection, matrix composition, hidden surface removal, and shading algorithms.

Class Information and Reference Material

Required Text

Optional OpenGL Texts

Laboratories

We will use the CATS Sun lab in BE 105 and possibly the PC lab in 109. Scheduled discussion sections will take place in BE 105. Assignments must be submitted using the CATS submit program and must compile and run on the BE 105 lab computers. However, you may want to do the assignments on a PC. This is fine as long as the version that you turn in runs on our Unix systems for grading. We are using Fltk as our graphics user interface, which requires the C++ compiler, but stylistically you can program as if in C, if you wish.

To register for a new CATS account.

Grading

Exam 50%

25% Exam 1
50% Exam 2 (Note this exam is worth twice as much as the others!)
25% Exam 3

Exams are closed book and closed notes.

Programming 50%

75% Programming assignment
25% Project

There will (probably) be three programming assignments, during the first part of the course. The final project will involve software, a public demonstration of how it works, and a brief paper and manual describing the project and how to use it. Demonstrations will be during the final exam period.

To minimize congestion in the lab, you can turn in any programming assignment up to 5 days early and receive early days or up to five days late and receive late days. Assignments will not be accepted more than 5 days late. If at the end of the quarter, you have more late days than early days, each late day will reduce the score on one assignment by 20 points out of 100.

The final project is a program that you choose (approved by the instructor) and demonstrate to the class during the final exam period.

To Pass

You must receive an average score of 70% on the exams to pass the course.

You must also receive an average score of 70% on the programming part of the course to pass. That is, you must have a passing score, independently, both on the exams and on the programming.

There will be no make-up exams or programs except for serious and documented emergencies. There will be no incompletes given in the class, except for extreme cases. There can be no changes to narrative evaluations or grades except in case of error.

Attendance:

You should participate enough in the class lectures or outside of class (e.g. office hours) so that the TA, Lab assistant, or myself know who you are. You are strongly advised to attend one of the regularly scheduled lab sections. Attendance/participation/effort is crucial in determining borderline cases at the end of the quarter.

Questions/Discussions:

Aside from the classroom and graphics lab, you can clear up any questions you might have during regularly scheduled office hours, or by appointment. You can also reach the TA, lab assistants, or myself and get your answers by email. In addition, we have the newsgroup ucsc.class.cmp160 devoted to topics relevant to this class (also occasional graphics related job ads and announcements). Finally, we will be putting handouts and other information on the web. Make sure you bookmark the class web page and check back at least once a week.
Note that we are only familiar with your CATs email accounts, and will use this if we need to contact you. Please check your CATS email regularly, or set up a mail alias to other accounts that you use.

Cheating

Cheating in any part of the course will result in failing the course. It is cheating to use anyone else's work and present it as your own, on exams, homework, or programs.

All course work including homework, programs, and exams are intended as individual effort and are graded as such. Though you are welcome to discuss assignments with other students, you should not let other people copy, use, or read your code, nor should you read or use anyone else's. You are responsible for protecting your work from being copied by others. Do not discard printouts in public places. Alway log out when you leave. It is appropriate to discuss general approaches and algorithms with other students, but this should be done without writing down or or sharing code.

See Official UCSC Guideline on Academic Integrity.)

Last modified Sunday, 25-Mar-2001 23:26:21 PST.