CS 451-001 Computer Graphics - Spring'2009
001 13984 W 4:30 p.m.-7:10 p.m. IN 134 Chen, J
Office hour: T 6:00pm-7:00pm; W: 3:00pm-4:00pm
ST2 Room 409
Course office hour: ST 2, Rm 409; T 6:00pm-7:00pm; W: 3:00pm-4:00pm or by appointment
jimxchen (a) gmail (dot) com
CS 451 is a 3-credit course with prerequisite MATH 203, CS 310, and CS 367. It gives a general introduction to basic graphics principles, graphics software design, and OpenGL programming. The programming platform is in Java or C. The course will be taught in Java. The course will include lecturing through the course notes, discussing the homeworks and the project, and student presentation at the end.
I am assuming you know the prerequisite material, Java (or C) programming, vector analysis, and matrix calculations. After this class, you will be able to do 2D/3D object transformation, rendering, and animation. Emphasis will be on the programming and implementation.
a) Apply trigonometry, geometry, vector analysis, and linear algebra to solve real world problems. Students can develop objects transformation and their own geometric transformation mechanism as the one implemented in the OpenGL system.
b) Analyze object positions and movements to define the computing methods and solutions for multiple objects’ movements, relations, and collision activities. Students can develop methods for objects moving and colliding in 3D space.
c) Collaborate with classmates in teams in achieving the course project. Students in teams are required to identify components to be implemented and efforts to accomplish the components.
d) Understand and use the current techniques, skills, and tools in GPU programming for advanced lighting calculations.
There are all together 100 points:
Your overall course score, S, will be the sum of these points.
Each assignment may not be accepted if it is not turned in on time. Therefore, you should plan on working early. If you cannot finish your assignment, you come to meet me or my TA during the office hours.
If there is an accident or emergency and you let me know, I will consider it accordingly.
General Course Policies
* Policies regarding attendance and participation: if you miss a quiz, you will not receive a grade for that quiz unless you have a serious reason, then you will receive a grade for the quiz according to your final grade.
* Policy regarding late assignments, make-up exams, and extra credit: no late assignments, make-up exams, and extra credit in general.
* Policy regarding incompletes: no incomplete in general.
* Policy on electronic devices (cell phones, pagers, etc): should be turned off. You can use a laptop in class if you want.
* Academic Honesty and Honor Code Statement: http://cs.gmu.edu/wiki/pmwiki.php/HonorCode/HomePage
* Disability Statement: If you are a student with a disability and you need academic accommodations, please see me and contact the Disability Resource Center (DRC) at 993-2474. All academic accommodations must be arranged through the DRC.
You may form into study groups. You can meet with your study group and discuss all homework questions freely and frequently in your group. However, you must do your own assignments. In short, collaborate freely, acknowledge all help and sources, and do your own work.
Will be announced in class and mostly due before next class. Please submit your source code to my TA through email. The midterm will be in-class in the middle of the semester. The project will be announced by early November, and is due by the end of November.
Will mostly follow the notes posted accompanying the text book with minor additions/modifications.
1. Jim X. Chen and Chunyang Chen, Foundation of 3D Graphics Programming Using JOGL and Java3D, Second Edition, Springer Verlag. (Required)
2. Jim X. Chen, Guide to Graphics Software Tools, Second Edition, Springer Verlag. (Recommended. This is the accompany book in C.)
3. Mason Woo, Jackie Neider, and Tom Davis, OpenGL Programming Guide, Addison Wesley, latest version. (Recommended. This book is very popular on OpenGL programming in C.)
2008 by Prof. Jim X. Chen, Department of Computer Science, George mason University