Wed 4 Jan 2006
Location: SN014
Time: 11:00-12:15, MW
Course Web Page:
http://www.cs.unc.edu/~jwendt/classes/COMP136/
Instructor: Jeremy Wendt
Telephone: 962-1926
Office: SN370
Email: jwendt@cs.unc.edu
Office Hours: TBD
Goals:
Prepare students interested in Computer Graphics (as a career) for any of the various foci in Computer Graphics (UI, Video Games, Movies, CAD/CAM). Students with another primary focus (i.e. graphics is only an interesting/fun (dare I say REQUIRED?) class) should know the basics of what graphics does for their focus, and gain a respect for the difficulties faced by those who work in graphics. These goals will be achieved by learning the following:
- a familiarity with current graphics API’s (OpenGL principally)
- the “under the hood” behaviour of computer graphics API’s
- the human visual system and how we fool it
- light transport in the real world
- survey knowledge about advanced concepts in Computer Graphics
- the mathematics behind graphics (vectors, transforms, etc)
Text:
Interactive Computer Graphics: A Top-Down Approach Using OpenGL
by Edward Angel (Addison Wesley Publisher)
Note that either the 3rd or 4th edition will be acceptable. Only the 4th edition is available at the student store.
Prerequisites:
The Computer Science Department webpage states requires COMP 121 and elementary linear algebra (MATH 83). Implied in this are COMP 14 and COMP 114. I expect that all students are familiar with C/C++. Java programming will be accepted, but not encouraged. Object Oriented Programming skills are an advantage.
I CAN’T STRESS ENOUGH THE IMPORTANCE OF THESE PREREQUISITES. This class will require each student to be able to create graphical interface UIs starting with very little base code. If you don’t know how to program already, you won’t learn it here.
Grading:
| Programming Assignments | 60% |
| Quizzes (every other Monday) | 25% | Final Exam | 15% |
Assignments/Late Policy:
All assignments are given with ample time for completion. Late assignments will lose 5% of their worth for each day (M-F) they are late. If an important life event (i.e. illness, death in the family, etc.) ocurrs, send me an email before time passes and points are lost. We will work around such events as best we can. Missed quizzes can not be made up. Each student may drop their lowest quiz score, allowing you to miss a quiz without penalty. The final exam MUST be taken on the date assigned by UNC.
Class Participation:
While class participation is not required, I should point out that when deciding borderline grades, I will be more lenient towards students who have participated in class, and made themselves known to me.
Honor Code:
UNC has a strict honor code which prohibits cheating and academic dishonesty in all forms. I am bound to report those who do so. Before I deliniate specific points expected in this class, I want to point out two quotes:
An Open Letter on Honor and Integrity
“I have been asked what I mean by my word of honor. I will tell you. Place me behind prison walls - walls of stone ever so high, ever so thick, reaching ever so far into the ground - there is a possiblity that in some way or another I may escape; but stand me on the floor and draw a chalk line around me and have me give my word of honor never to cross it. Can I get out of the circle? No. Never! I’d die first!”
Karl G. Maeser - First President of Brigham Young University
As found on http://www.vanderbilt.edu/HonorCouncil/honorquo.php
In this class, there will be exams and quizzes proctored in class. While students are encouraged to study together BEFORE a test, they are prohibited from copying DURING a test, or discussing the test while there are other students who have not completed the test. This class will also involve creating projects to solve basic computer graphics problems. Code examples for nearly all of these things can be found easily on the internet. However, NO STUDENT MAY COPY THESE PIECES OF CODE. If you use a source in the creation of your own code (such as the textbook), you are REQUIRED to cite the reference in a comment in your code. Code which is completely, or excessively based on other code will not be permitted. While discussing algorithmic details or general program organization between students is encouraged, “team programming” is not allowed. Students must write their own code with the exceptions pointed out by the instructor. When in doubt, contact the instructor!