Spring 2007
JMU CS480 - Computer Graphics and Visualization
Help Policies Solutions Study-Aids Tools
Syllabus


Description: This course is an introduction to the mathematical and algorithmic issues that arise in computer graphics and visualization. It covers the material from the bottom up. That is, it begins with the mathematical and algorithmic foundations and then moves to application-level programming. Hence, while this is not a course on rendering, you will need to understand the rendering process and implement a simple renderer before using existing (sophisticated) renderers.
Textbook: Some of the readings for this course are available on the Internet. Most others are are from the following required textbook:

Angel, E. (2005) Interactive Computer Graphics: A Top-Down Approach with OpenGL , Addison Wesley.
(Order from amazon , order from Barnes and Noble , compare at bigwords , compare at CampusBooks4Less , order from Chegg , or search eFollett )

Outline: This course is organized as follows, though specific topics and dates may change. (Readings are listed in the right-most column.)
Part I: Introduction (Math and/or Programming 'Review')
1/9 About CS480
1/11 Math Review: 2D Vector Arithmetic B
1/16 Programming Review: Java Basics , Using Objects and References
1/18 Math Review: Matrix Arithmetic C
1/23 Programming Review: Developing Classes , Multi-Dimensional Arrays and Specialization
1/25 Math Review: 3D Vector Arithmetic 4.1
Part II: Foundations of 2D Graphics
1/30 2D Analytic Geometry (i.e., Graphics Primitives)
2/1 2D Rasterization 7.8-7.9
2/6 2D Transformations
2/8 Exam 1
Part III: Foundations of 3D Graphics
2/15 3D Analytic Geometry
2/20 3D Transformations 4.6-4.9
2/22 Projections: Overview and Classical 5.1-5.9
2/27 Hidden/Visible Objects 7.1-7.11
3/1 Lighting 6.1-6.4
3/13 Shading 6.5
3/15 Review
3/20 Exam 2
Part IV: Applied 3D Graphics
3/22 Developing in C , Arguments in C , GLUT Basics and Comparing GLUT and MS-Windows 2, 3, 4
3/27 OpenGL Basics and OpenGL Animation 6.7-6.10
3/29 Lighting in OpenGL 6.7-6.10
4/3 Texture Mapping and Textures in OpenGL 8.8-8.11
4/5 Misc. OpenGL: Display Lists , Text and Animation (Revisited)
4/10 DXUT Basics and Direct3D Basics D3D 1 , D3D 2 , D3D 3 and D3D 4
4/12 Lighting and Shading in Direct3D , Textures in Direct3D and Animation in Direct3D D3D 5 and D3D 6
Part V: 3D Modeling
4/17 Scene Graphs , Java3D Scene Graphs and Java3D Basics 10.1-10.9 , J3D 1 and J3D 4
4/19 Lighting , Texture Mapping , Animation and J2ME J3D 6 and J3D 7
4/24-4/26 Presentations (Optional)

Attendance at lectures is not mandatory but is strongly encouraged. You are expected to come to class prepared to ask and answer questions. Hence, you should complete the readings on a topic before it is discussed in lecture.

Grading: Final grades will be based on your performance on: 2 in-class exams (35% each) , several assignments (10% total) and 1 final project (20% total).
Programming Assignments: 4 programming assignments will be assigned during the semester. Note that their due dates are subject to change.
Programming Assignment 1 ; Due: 1/30 (Vector and Matrix Arithmetic)
Programming Assignment 2 ; Due: 2/6 (2D Rasterization)
Programming Assignment 3 ; Due: 3/1 (Transformations and Projections)
Programming Assignment 4 ; Due: 3/15 (Hidden Lines/Surfaces)

Make sure you read and understand all of the policies related to programming assignments.

Office Hours: You may meet with Prof. Bernstein during his scheduled office hours or you may schedule an appointment with him.

Copyright 2019