Course Description and Policies
CS 445: Computer Graphics, Spring 2012


Course Description:

This course is an introduction to 3D computer graphics programming. It begins with a short unit on ray-tracing followed by an in-depth exploration of OpenGL and GLSL. Topics include ray tracing, the 3D rendering pipeline, geometric transformations, modeling, scene graphs, graphics data structures, lighting & shading, textures, and shaders. Extensive programming in C++ and OpenGL will be required. See the schedule for more details.

Learning Objectives

Students will:

  1. Achieve proficiency in Computer Science skills: graphics programming, computer graphics theory, vector & matrix algebra.
  2. Demonstrate the ability to communicate through presentation and discussion of their work.
  3. Demonstrate the ability to work effectively as part of a team.
  4. Demonstrate the ability to work independently to analyze and solve problems.
  5. Become familiar with the computer graphics research and arts community.

Prerequisites

CS241 or equivalent.
CS 343 Analysis of Algorithms and Math 253 Linear Algebra are recommended but not required.

Time:

Class: TuTh: 9:40-11:10pm in Ford 224
Lab: TuTh: 2:30-4:00pm in Ford 224

Final Exam: lecture: Saturday, Dec. 15, 2012, from 8-11 am, or lab: Monday, Dec. 10, 2012, from 2-5 pm

Required Text:

Interactive Computer Graphics: A Top-Down Approach Using OpenGL, 6/E , by Edward Angel

Attendance

Class attendance is required. You are allowed 5 unexcused absences. Each additional absence will reduce your final course grade by half a grade (A becomes A-, A- becomes B+, etc). Excused absenses require documentation (e.g. mail from a sports team). Note, if you are sick and miss class but do not have a doctor's note, then this absence will count as one of your 5 unexcused absences. Please reserve your unexcused absences for this type of situation.

Students who fall behind often start missing class. Missing class is the worst possible thing you can do because it insures that you will fall even further behind.

Unless you can show that you have completed the current lab assignment (e.g. by doing a demo), you are expected to attend the lab.

Assignments

Labs assignments will be assigned approximately every 1-2 weeks. Partial instructions and due dates will be posted online, however, some instructions (and resources) will be given in class on the day the assignment is assigned. If you are absent that day, it is your responsibility to get this material as soon as possible either from the instructor or classmate. It is strongly recommended that you start the assignments early if you want to be certain of finishing on time. Starting the night before the due date will mean 1) you probably won't have enough time to finish, 2) you will be up all night, 3) you won't be able to get help from the instructor and 4) the instructor will have little sympathy.

If you must miss class on the day the assignment is due, you are still expected to turn in the assignment electronically by the due date. If you are physically unable to do this, e.g. due to significant illness, then please consult the instructor as soon as possible to arrange a makeup schedule. If a presentation is part of the assignment, then you will be asked to present as soon as you return to class.

Late assignments are problematic for several reasons. First, it is difficult to catch up once you are behind. Second, you won't be able to contribute to the class discussion and assignment review. For these reasons - don't be late! The best way to avoid lateness is to start the assignment early and seek help (in lab, office hours, from fellow students) when you have problems. To provide a strong incentive to get assignments done on time,

late assignments will be penalized by 25% if they are not turned in on the day they are due and 50% if they are more than 1 week late.
Exceptions may be made due to extended illness or extenuating circumstances, but don't assume you will be the exception, and be certain to contact the instructor as soon as possible.

Evaluation

There will be a midterm and a final.

Final course grades will be based in the following:

Labs/In-Class-Exercises

60%

Midterm

20%

Final

20%

Attendance

Half grade reduction for
each absence beyond 5

Plagiarism and Cheating:

If you do a search on the web or look in books, you will find a significant amount of information and code available. You are not to use this material without explicit permission from instructor. The purpose of this class is for you to learn the concepts and coding. Copying material from other sources defeats this purpose.

In the context of this class, plagiarism is defined as representing someone else's work as your own. Cheating is defined as violating stated rules for an exam or an assignment. Plagiarized work will receive a grade of 0 as will any assignment in which cheating occurred. Both plagiarism and cheating will be reported to the university. (Also see student handbook and college catalogue for more details)