CS 354 (BME 345): COMPUTER GRAPHICS

Lecture: T/Th 9:30-11am, BUR 220
Prerequisite: CS 310, 310H, 429, or 429H; 336 or 336H; Math 408D, 408M, or 427L; and 340L or 341
Required text: Interactive Computer Graphics, 6th edition, by Edward Angel
Course website: cs.utexas.edu/~edwardsj/teaching/2012fall/cs354/
UTCS Account: UTCS account creation

Instructor: John Edwards
Email: john.edwards@utexas.edu
Office Hours: M 10-11am, ACES 2.100 (north end); WF 12-1pm, ENS 31NR

TA: Randall Smith
Email: agrippa@cs.utexas.edu
Office Hours: TTh 11-12 (for now), ENS 31NR

Proctor: Alex Pharo
Email: apharo@texhorseman.com
Office Hours: F 3-5, ENS 31NR

Schedule

  Date Reading Topic Assignments
1 Aug 30   Overview  
2 Sept 4 2.1, 2.4 - 2.4.2, 2.4.7 Graphics programming I  
3 Sept 6 2.5 - 2.7 Graphics programming II  
4 Sept 11 3.1 - 3.2 Geometry & transformations I  
5 Sept 13 3.3 - 3.4, 3.7 Geometry & transformations II  
6 Sept 18 3.8 - 3.10 Geometry & transformations III  
7 Sept 20 3.11, 3.13 - 3.14 Geometry & transformations IV Project 1 (due Sept 21, 11:59pm)
8 Sept 25 4.3 - 4.4 Viewing I hw1 (due in class)
9 Sept 27 4.5 - 4.8 Viewing II Project 2 (due Sept 28, 11:59pm)
10 Oct 2 8.1 - 8.5 Hierarchical models  
11 Oct 4 5.1 - 5.3 Lighting and shading I hw2 (due in class)
12 Oct 9 MIDTERM    
13 Oct 11 5.4 - 5.7 Lighting and shading II 1 2  
14 Oct 16 No quiz Lighting and shading III Project 3 (due Oct 17, 11:59pm)
15 Oct 18 7.1 - 7.5 Mapping I  
16 Oct 23 7.6 Mapping II  
17 Oct 25 7.7 - 7.10 Mapping III  
18 Oct 30 7.11 - 7.12 Mapping IV hw3 (due in class)
19 Nov 1 6.1 - 6.6 Vertices and fragments I  
20 Nov 6 6.8 - 6.11 Vertices and fragments II  
21 Nov 8 No quiz Shaders Project 4 (due Nov 9, 11:59pm) data viewer
22 Nov 13 11.1 - 11.4 Advanced rendering I  
23 Nov 15 11.5 - 11.7 Advanced rendering II  
24 Nov 20 10.1 - 10.3 Curve representation I Project 5 (due Nov 21, 11:59pm)
  Nov 22 THANKSGIVING HOLIDAY    
25 Nov 27 10.4 - 10.7 Curve representation II  
26 Nov 29 10.8 - 10.9, 10.11 - 10.12 Curve representation III  
27 Dec 4   Review hw4 (due in class)
28 Dec 6   FINAL Project 6 (due Dec 9, 11:59pm) extras

Course Overview

The purpose of this course is to introduce the student to computer graphics. Topics we will cover are listed in the schedule. We will cover mathematical foundations and algorithms relating to graphics modeling, rendering and interaction. We will implement most of the ideas using the OpenGL API. While we will not go into OpenGL in depth, we will learn enough of it to put the graphics concepts to use.

The student is expected to have programming experience in a C-based language (e.g. C, C++, Java, C#) including a solid understanding of data structures. All programming projects will be done in C++. The student is also expected to have a basic understanding of trigonometry and linear algebra.

Grading

Final grade percentage will be computed as follows:

Type Number Percentage
Quizzes Best 22 10%
Projects 7 40%
Homework 4-7 15%
Midterm 1 15%
Final 1 20%

Quizzes - We will have daily quizzes at the beginning of class (really). No quiz will be given the first day of class, making a total of 26 quizzes. The bottom 4 quiz scores will be dropped. The quizzes will be on the daily reading assignment. This doesn't mean that you must have a perfect understanding of everything you read. It just means that you need to have a grasp of what is being talked about, why it is important, etc. Quizzes cannot be made up.

Projects - There will be seven programming projects spaced, usually spaced 2 weeks apart. We will have covered enough material to get started two weeks prior to the due date. All necessary material will have been covered one week prior to the due date. These projects make up the majority of the grade. All assignments are due on Fridays at 11:59 pm. No late assignments will be accepted. This means that if you turn an assignment in at 12:01 Saturday morning it will receive a zero.

Projects are graded using the CS UNIX machines. I strongly advise that students do their projects on CS UNIX machines. If you choose to develop on another computer you should test your final program on a CS UNIX machine before submitting. Programming projects will be turned in with the UNIX-based turnin. The web-based turnin will not work. Sign up for a CS UNIX account if you don't have one already. Do this early because it often takes a couple of days to process and you won't be able to turn in any assignments until this account is active. Public labs are available.

Projects will be posted at least two weeks before they are due.

Projects will be graded as follows

After downloading the project, extract it with "tar -zxf project1.tar.gz". Then consult README.pdf for further instructions.

Homework - Between 4 and 7 written homework assignments will be given throughout the semester. They can be typed or written by hand and will be turned in in class. No late homework will be accepted.

Midterm/Final - A midterm and final will be given. No exam study guide will be given. The exams will cover material in the reading assignments, lecture, projects and written homework. The exams are closed book, but you are allowed one 8 1/2 x 11 sheet of notes.

Blackboard - Scores will be maintained on Blackboard.

Late Work Policy

Again, late projects or homeworks are not accepted. Daily quizzes and exams cannot be made up. Exceptions are on a case-by-case basis and are only granted for religious holy days (must have prior approval), documented illness or emergencies.

Academic Honesty

Projects and homework must be done individually. You may not work in pairs or groups. Helping other students through discussion is permitted, but if you are looking at another student's source code or written assignment, then you are cheating. You may consult the Internet, but you may not copy code from the Internet or any other source except for the course textbook. See the department's code of conduct.

Laptops

No open laptops in class.