Spring 2013

Lecture: T/Th 11-12:30am, BUR 130
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
Required: i>clicker available at the CO-OP and online
Course website: cs.utexas.edu/~edwardsj/teaching/2013spring/cs354/
UTCS Account: UTCS account creation

Instructor: John Edwards
Email: john.edwards@utexas.edu
Desk location: ACES 2.100 (north end)
Office Hours: WF 12-1pm, GDC 3.302 and by appointment

TA: Vineet Keshari
Email: vkeshari@cs.utexas.edu
Office Hours: TTh 4-5, GDC 3.302


  Date Reading Topic Assignments
1 Jan 15   Overview  
2 Jan 17 2.1, 2.4 - 2.4.2, 2.4.7 Graphics programming I  
3 Jan 22 2.5 - 2.7 Graphics programming II  
4 Jan 24 3.1 - 3.2 Geometry & transformations I  
5 Jan 29 3.3 - 3.4, 3.7 Geometry & transformations II  
6 Jan 31 3.8 - 3.10 Geometry & transformations III Project 1 (due Feb 1, 5pm)
7 Feb 5 3.11, 3.13 - 3.14 Geometry & transformations IV  
8 Feb 7 4.3 - 4.4 Viewing I hw1 (due in class)
9 Feb 12 4.5 - 4.8 Viewing II  
10 Feb 14 8.1 - 8.5 Hierarchical models Project 2 (due Feb 15, 5pm)
11 Feb 19 5.1 - 5.3 Lighting and shading I  
12 Feb 21   EXAM 1 hw2 (due in class)
13 Feb 26 5.4 - 5.7 Lighting and shading II  
14 Feb 28 No quiz Lighting and shading III Project 3 (due Mar 1, 5pm)
15 Mar 5 7.1 - 7.5 Mapping I  
16 Mar 7 7.6 Mapping II  
  Mar 11-16   SPRING BREAK  
17 Mar 19 7.7 - 7.10 Mapping III  
18 Mar 21 7.11 - 7.12 Mapping IV hw3 (due in class)
19 Mar 26 6.1 - 6.6 Vertices and fragments I  
20 Mar 28 6.8 - 6.11 Vertices and fragments II Project 4 (due March 29, 5pm) data
21 Apr 2   EXAM 2  
22 Apr 4   canceled  
23 Apr 9 No quiz Shaders  
24 Apr 11 11.1 - 11.4 Advanced rendering I  
25 Apr 16 11.5 - 11.7 Advanced rendering II  
26 Apr 18 10.1 - 10.3 Curve representation I Project 5 (due April 19, 5pm)
27 Apr 23 10.4 - 10.7 Curve representation II  
28 Apr 25 10.8 - 10.9, 10.11 - 10.12 Curve representation III  
29 Apr 30   Review hw4 (due in class)
30 May 2   EXAM 3 Project 6 (due May 4, 5pm) 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.


Final grade percentage will be computed as follows:

Type Number Percentage
Quizzes Best 18 10%
Projects 6 40%
Homework 4 10%
Exams 3 40%

Quizzes - We will have daily quizzes at the beginning of class (really). There will be a total of about 21 quizzes. The bottom 3 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.

Quizzes are given using the i>clicker, which allows you to electronically respond to the quiz questions. The clickers will also be used for in-class participation. You will need to get an i>clicker from the CO-OP or elsewhere by the second class day. You're welcome to buy a used i>clicker or even borrow one from a friend. You will register your clicker remote in class on the second class day. You are responsible for bringing your clicker remote to class every day.

Projects - There will be 6 programming projects usually spaced 2-3 weeks apart. All projects are due on Fridays at 5:00 pm. No late projects will be accepted. This means that if you turn a project in at 5:01 pm on Friday it will receive a zero. Projects will be posted at least two weeks before they are due.

Projects are to be done in groups of 2 or 3 people. You may work with the same person for no more than 3 projects.

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.

They will be graded as follows:

After downloading the project, extract it with "unzip project1.zip". Then consult README.pdf for further instructions.

Homework - 4 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.

Exams - Three exams will be given and 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.

Piazza - All communication will be done on the class Piazza webpage. Please post questions here so everyone can benefit from the answers.

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 are expected to be original work. You may consult the Internet, but you may not copy code from the Internet or any other source except for the course textbook. We use software to detect copied code. If you wish to use any APIs other than the standard template library (STL) then you must receive prior approval from the instructor. You may work together on the homework, but keep in mind that exam questions will often be similar to homework questions, so if you do work with someone else, make sure that you understand the material. See the department's code of conduct.


No open laptops in class.