Description

Instructor:
Ross Beveridge
Office: 348 CS Building
Office Hours: Tue 9:00-10:00, Fri 10:00-11:30
Email: ross@cs.colostate.edu
GTA:
Sahar Habib
Office: LAB 120
Office Hours: Wed 5:00-7:00, Sun 7:00-9:00
Email: shabib@rams.colostate.edu
Lecture Time and Place:
11:00-12:15, Tues/Thurs, CSB Room 130

CS 410 teaches students how to program a computer to generate photo-realistic images. The general idea is that given a scene model, a sensor model and a viewpoint, one should be able to create the same image that a camera would for that scene and viewpoint. Scene models include 3D object models and light sources. Objects models are composed of surfaces, and include both geometry (where is the surface?) and material properties (what is it made of? What color is it?).

This course will emphasize geometric objects and transformations, perspective projections, lighting and reflectance models, shading models, and 3D curves and surfaces. Students will design and implement a ray tracing program from scratch, thereby becoming intimately familiar with the sensor, lighting and object models described above. Perhaps most importantly, students may finally come to appreciate the power of linear algebra.

Prerequisites

In order to understand the material in this course, you will need to have a good working knowledge of data structures such as linked lists, trees, symbol tables, and dynamically allocated structures. You will need to know how to implement these data structures in C, C++ or Java. This course will also draw on knowledge of the 2D and 3D geometry of vectors and coordinate systems, and on the use of matrix algebra for coordinate transformations. To successfully complete this course, you should be familiar with material related to the above topics covered in M229 (Matrices and Linear Equations), CS200 (Algorithms and Data Structures), and CS314 (Software Development Methods).

Textbook

The textbook for this course is:

Fundamentals of Computer Graphics by Shirley and Marschner

Grading

Here are the formally graded elements of the course and associated weighting:

Activity Weight
Online Discussions, Notes and Quizzes 10 %
Term Paper 10 %
Programming Assignments (3 or 4) 45 %
Midterms (2) - may be in-class or take home (instructor's choice) 20 %
Final Exam 15 %

Semester grades are determined by the weighted sum of points earned in each of these areas. Total points for each area are normalized so that the best possible score for the semester is 100. Typically the A- to B+ cutoff falls at 90 points, the B- to C+ cutoff at 80 points, and so on. While this is the typical grading procedure, the instructor reserves the right to make adjustments.

Exams and projects will always be done individually and grades assigned on an individual basis. Further, students not already familiar with the CSU Honor Pledge should review this clear and simple pledge and always adhere to it.

Late and Makeup Policy

Midterm and Finals: Make-up exams are only given for extraordinary circumstances (e.g., illness, family emergency). Students must consult with the instructor as soon as possible, preferably before the start of the exam. Course examination dates are listed in the syllabus; be aware of them and plan accordingly.

Projects: Unless otherwise specified, programming assignments are to be submitted electronically through RamCT. Specifics will be included in each assignment. Always check the assignment page for due dates. Late assignments submitted within 48 hours of the time required will receive a 10% late penalty. Electronic submission is closed 48 hours after assignments are due; students not having submitted programs receive an automatic zero on the assignment.

Important Dates

First in class midtermTuesday, September 25th
Second in class midterm Thursday, November 1st
Final Exam Wednesday, December 12th, 2:00 to 4:00 PM

Any in-class midterms and the final exam will be held in the same classroom as regular lectures. While no change to the midterm dates is anticipated, the instructor reserves the right to change these dates with a weeks notice.

In Class Participation

All students taking this course are expected to participate actively. For all students, includes asking and responding to questions. For distance students, the mechanism for asking and responding to questions is the bulletin board on the RamCT site. The TA will note how many questions you ask! For on-campus students, questions may be asked or answered in class, during office hours, or on the same bulletin board the distance students use.

Professional Conduct

All students are expected to conduct themselves professionally. We (the instructors and GTAs) assume you are familiar with the policies in the student information sheet for the department. Additionally, you are computing professionals, albeit perhaps just starting. You should be familiar with the code of conduct for the primary professional society, ACM. You can read the ACM Code of Conduct HERE.

We work to maintain an environment supportive of learning in the classroom and laboratory. Towards that end, we require that you be courteous to and respectful of your fellow participants (i.e., classmates, instructors, GTAs and any tutors). In particular:

  • Please turn off the ring on your cell phone. If you are expecting an emergency call, sit near the door and slide out discretely to take it.
  • In class use of electronic devices in general, and laptops specifically, is permitted as a courtesy so that you may better participate and learn. If at any time the instructor judges that an electronic device is becoming a distraction the student may be asked to to turn it off and put it away.
  • All exams and quizzes are to be done without the aid of notes of any kind. Laptops and all other electronic devices must be shut and put away during exams and quizzes.