Course: CMSC 23700 Introduction to Computer Graphics Instructor: John Reppy Hinds 033 TAs: Jon Riehl Hinds 024A Aren Jansen Ry 257 Lecture: TR 1:30-2:50 Ry 251 Lab: W 3:30-4:50 Mac Lab Office hours: 
Monday 10:00-12:00 Reppy Hinds 033 Tuesday 4:00-6:00 Riehl Mac Lab Wednesday 1:30-3:30 Riehl Mac Lab Thursday 3:00-5:00 Jansen Mac Lab Friday 2:00-4:00 Jansen Mac Lab Mailing list: cmsc23700@mailman.cs.uchicago.edu mailman.cs.uchicago.edu/mailman/listinfo/cmsc23700
This course aims to provide an introduction to the basic concepts and techniques used in 3D computer graphics. The focus is on real-time rendering techniques, such as those found in computer games. These include: coordinate systems and transformations; geometric modeling; the graphics pipeline; level-of detail optimizations; and rendering techniques using programmable shaders.
The course covers both the theory and practice of computer graphics. The lectures, homework assignments and exam will focus on the mathematical foundations of computer graphics, while while the lab sessions and programming projects deal with translating theory into practice.
The programming assignments will be written using the C programming language (specifically, the C99 version). If you do not have a good C manual, we recommend the following:
Title: Mathematics for 3D Game Programming & Computer Graphics (2nd Edition) Author: Eric Lengyel Publisher: Charles River Media, 2004 Title: OpenGL -- A Primer (3rd edition) Author: Edward Angel Publisher: Addison Wesley, 2008
Title: C -- A Reference Manual (5th Edition) Authors: Samuel P. Harbison and Guy L. Steele Jr. Publisher: Prentice Hall, 2002 Errata: www.careferencemanual.com/errata.htm
Grading for the course will be based on:
Percentage Component 20% Homework assignments 30% Midterm Exam (Feb. 13; Pick Hall 016) 50% Projects
Paper copies of the assignments will be distributed in lecture and electronic copies will be made available for the course web page. Homework assignments should be handed in at the beginning of class the day they are due. Programming projects will be automatically collected from your course gforge repository. In general, late homework and programming assignments will not be accepted, although valid excuses delivered before the assignment is due will be considered.
Project grades will consist of a correctness portion (worth 70%) and a style portion (worth 30%). Your code must compile. Failure to compile will result in a 0 for the correctness portion of the grade.
Date Assignment Due date January 8 Homework 1 January 22 January 22 Homework 2 January 29 January 31 Homework 3 February 7 February 21 Homework 4 February 28
The following is a list of the other handouts that have been distributed in class with links to PDF files. As necessary, we will post revisions here.
Date Handout January 8 Course information [revised] January 9 Lab tips [revised]
The University of Chicago is a scholarly academic community. You need to both understand and internalize the ethics of our community. A good place to start is with the Cadet's Honor Code of the US Military Academy: "A Cadet will not lie, cheat, or steal, or tolerate those who do." It is important to understand that the notion of property that matters most to academics is ideas, and that to pass someone else's ideas off as your own is to lie, cheat, and steal.
The University has a formal policy on Academic Honesty, which is somewhat more verbose than West Point's. Even so, you should read and understand it.
We believe that student interactions are an important and useful means to mastery of the material. We recommend that you discuss the material in this class with other students, and that includes the homework assignments. So what is the boundary between acceptable collaboration and academic misconduct? First, while it is acceptable to discuss homework, it is not acceptable to turn in someone else's work as your own. When the time comes to write down your answer, you should write it down yourself from your own memory. Moreover, you should cite any material discussions, or written sources, e.g.,
Note: I discussed this exercise with Jane Smith.
The University's policy, for its relative length, says less than it should regarding the culpability of those who know of misconduct by others, but do not report it. An all too common case has been where one student has decided to "help" another student by giving them a copy of their assignment, only to have that other student copy it and turn it in. In such cases, we view both students as culpable and pursue disciplinary sanctions against both.
For the student collaborations, it can be a slippery slope that leads from sanctioned collaboration to outright misconduct. But for all the slipperyness, there is a clear line: present only your ideas as yours and attribute all others.
If you have any questions about what is or is not proper academic conduct, please ask your instructors.