Spring 2014 (Section 1, 16382) - 3 credit hours
JMU CS588 - Introduction to Computer Graphics
Help Policies Solutions Study-Aids Tools
Syllabus


Description: This course is an introduction to 2-D and 3-D computer graphics that covers the material from the bottom up. That is, it starts with the mathematical foundations, then explores the algorithmic issues that arise when implementing those mathematical concepts, and then considers the practice of developing graphical applications (using existing libraries). It also considers some of the ways in which these techniques are used in forensics and information security.
Outline: This course is organized as follows, though specific topics and dates may change. (Readings are listed in the right-most column.)
Part I: An Introduction to Linear Algebra
1/13 About CS588 and What You Need to Know about C/C++
1/15 2D Vector Arithmetic
1/22 Matrix Arithmetic
1/27 No Lecture - Departmental Speaker Series (nTelos Room)
1/29 3D Vector Arithmetic
Part II: Foundations of 2D Rendering
2/3 2D Analytic Geometry (i.e., Graphics Primitives)
2/5 2D Rasterization
2/10 2D Transformations
2/12 JMU Closed for Inclement Weather
2/17 Exam 1
Part III: Foundations of 3D Rendering
2/19 3D Analytic Geometry
2/24 3D Transformations and An Overview of Projections
2/26 Classical Projections , 3D Coordinate Systems and Cartographic Projections
3/3 JMU Closed for Inclement Weather
3/5 Hidden/Visible Objects
3/17 JMU Closed for Inclement Weather
3/19 Lighting and Shading
3/24 Curves and Surfaces
3/26 Exam 2
Part IV: Applied 3D Graphics
3/31 GLUT Basics and OpenGL Basics
4/2 OpenGL Animation , Lighting in OpenGL , Texture Mapping and Textures in OpenGL
4/7 OpenGL: Transformations , Display Lists , Text and Fog
4/9 OpenGL: Curves , Surfaces and Object-Oriented Animation
Part V: Applications in Forensics and Information Security (Student Presentations)
4/14-4/16 Image Forensics
4/21-4/23 Fingerprint Analysis and/or Face Recognition
4/28-4/30 Steganography and/or Visual Cryptography

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 presentation/paper (20% total).
Programming Assignments: 6 programming assignments will be assigned during the semester. Note that their due dates are subject to change.
Programming Assignment 1 ; Due: 1/22 (Vector Arithmetic)
Programming Assignment 2 ; Due: 2/3 (Matrix Arithmetic)
Programming Assignment 3 ; Due: 2/19 (2D Rasterization)
Programming Assignment 4 ; Due: 3/5 (Transformations and Projections)
Programming Assignment 5 ; Due: 3/19 (Hidden Lines/Surfaces)
Programming Assignment 6 ; Due: 3/31 (Lighting and Shading)

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