IS – 1014 Computer Graphics
5:45 - 9:00 Wednesday, IS 403

Contact Information
Instructor: Stephen Hughes
Phone:  624-1178
e-mail:  shughes@mail.sis.pitt.edu
Office:  IS B208
Office Hours:  Tuesdays 10:00 - 12:00 
or by appointment
Course Web Page: http://www2.sis.pitt.edu/~shughes/classes/summer01/is1014-01s.html

Goals
The primary goal of this course is to provide an overview of the principles of computer graphics. You will have a solid understanding of the fundamental algorithms, and mathematics of computer graphics from which all commercial packages are derived.  A secondary goal is to gain an understanding of a state-of-the art graphics API: OpenGL.

Course Content
The course will roughly be divided into 2 parts, 2-D graphics and 3-D graphics. Here is a tentative outline of the class
 
May 16 Graphics Systems
Color 
Lines 
May 23 Circles
Drawing Effects 
Events & Menus 
Assign 1 Due
May 30  Transformations
Image Manipulation 
June 6 Animation  Assign 2 Due
June 13 Mid Term
June 20 3D Intro 
Glut Shapes 
Assign 3 Due
June 27 Clipping 
Perspective, Depth 
Camera Movement 
Assign 4 Due
July 4  No Class
July 11 Light Theory 
Lights in OpenGL
Assignment 5 Due
July 18 Lights Effects
Shadows 
Assignment 6 Due
July 25 Texture Mapping 
Aug 1 Final Exam Assignment 7 Due

The summer session is 4 weeks shorter than the fall and spring semesters. However, it is important to note that the class is not abridged. I will be presenting the same amount of material as a full term, and you will be expected to do the same amount of work. Consequently, your efforts will also need to be consolidated to complete the course in the allotted time.

Course Materials

Prerequisites

INFSCI 0020: Programming Design and Software Tools and required math course. This means that I expect:

Grading
 
40%  Examinations: There will be a midterm (circa June 13) and a final exam.  They are weighted equally.
45%  Assignments:  There will be about 7 assignments distributed roughly every other week. 
15% Weekly Quizzes: Every class will begin with a 5-10 minute quiz that covers material from the previous week.

 
 
 
 

Course Policies

Collaboration
You are permitted to discuss assignments with other students in the class.  Under no circumstances should there ever be an electronic transfer of code between students in the class.

Code from other sources
In the electronic age, source code is often available on the web or through CD-ROMs that supplement textbooks.  If you use code from any other source, you are required to cite the source by adding comments to the top of your files.

Submitted Work
By submitting work under your name, you are indicating that you have completed the assignment. This means that you should be able to completely explain every line of code in your program. Failure to be able to account for your coding decisions (to my satisfaction) will be reflected in your grade.

Academic Honesty
Honesty and integrity are qualities we respect in ourselves and in others. Therefore, you are expected to be fully aware of your responsibility to maintain a high quality of integrity in all of your work. Furthermore, you are expected to have read and understood the University Guidelines for Academic Integrity. Any unauthorized collaboration or copying will result in no credit for the affected assignment (at minimum!)

Late Assignments
I understand that circumstances conspire against us all, and when 3 term papers and a programming assignment are due within a 24-hour span, something has to give. Therefore, you have 5 late days that are penalty-free to use at your discretion (i.e. you may use them on a single assignment, or distribute them over several assignments.).  Any submission beyond your grace period will be penalized 10% per day. For a maximum of 30% penalty.

Resubmitting Assignments
One goal of this class (or any educational experience), is to be able to learn from our mistakes. Whenever your submissions contain errors, you will have 7 days to resubmit a corrected version for up to 50% of the difference.

Office Hours
Office hours are an opportunity for you to clarify details you may have missed in class. They are not a place to get answers on the assignment. If you come to office hours with a problem on the assignment, you should come prepared to answer questions, as well as asking them. Additionally, you need to make sure that you have access to an electronic version of your code.
 

Lectures

I will post the electronic notes for my lectures after they are presented
Disclaimer:   These notes usually take the form of diagrams that are referenced during class time. They are not meant to be used as a replacement for classroom attendence.  I do not believe in reading slides to you, as such, these slides do not stand alone, but they can be valuable for review.

May 16   Graphics Systems, Color, Lines
May 23   Circles, Events & Effects
May 30   TransformationsAnimation Demo
June 6      More Animations, Matrix Stack Planents Demo
June 13    Clipping & 3D Intro JuggleDemo
June 20   Exam
June 27   Perspective, Depth & Camera Motion
July 11   Lighting  Lights Demo
July 18   Textures  Texture Demo
July 25   Light Tricks

Assignments
Here is where I will post materials that are related to your assignments.
Typically, you will be provided with stub-code and asked to fill in the details. This is a convenience for you; use as much or as little as you feel necessary.

Assign 1   Due May 23
Assign 2   Due June 6
Assign 3   Due June 23
Assign 4   Due July 11
Assign 5   Due July 21
Assign 6   Due July 26
Assign 7   Due Aug 4
 

Additional Resources
 OpenGL Tutorial
 Glut API A listing of all Glut commands