CSSE351 - Computer Graphics
Rose-Hulman Institute of Technology
Computer Science and Software Engineering Department
Fall 2015-2016

Course description

This course is an introduction to computer graphics with rasterization. It also covers very basic animation and modeling. You will learn the theory behind computer graphics and implement many graphics algorithms. There will be large programming problems and written assignments due nearly every week. Smaller programs and quizzes will be assigned per topic session. A course capstone team project is required. You will be required to interact with your classmates and participate in many group projects.

Official course description: Computer graphics algorithms, hardware and software. Line generators, affine transformations, line and polygon clipping, interactive techniques, perspective projection, solid modeling, hidden surface algorithms, lighting models, shading, and graphics standards. Programming assignments and a final project are required.

Course prerequisites

CSSE 220 - OOP and design
MA 212 - matrix knowledge

Technical prerequisites

Knowledge of C-style programming languages
Ability to use and manage software repositories
Ability to use modern internet tools

Social prerequisites

Interact with others in technical setting
Communicate online effectively
Maintain professional communication in course matters

Schedule

See the main course page for schedule details.

Schedule

Section 1 : MTRF 6 : O257
Section 2 : MTRF 7 : O257

Instructor

Micah Taylor
Moench F205 - check my schedule!
812-877-8396
taylormt@rose-hulman.edu

Course objectives

This is what you will learn through this course.

Required resources

Book: Fundamentals of Computer Graphics, 3rd edition
Peter Shirley, Steve Marschner
A K Peters/CRC Press, 2009
The authors maintain a list of known errors.

Hardware: Computer supporting OpenGL version 3+.

Software:

I will help with any difficulties for the above tools. For other technical problems, consult EIT.

Reading

It would be to your benefit to do the reading. You are responsible for all the material in the assigned sections of the book, whether discussed elsewhere or not.

Assignments

There will be many short programs to complete individually. These should not require very much time to complete. Contact me if you get stuck! There will also be several large programming assignments. These will be completed in groups and will require significant time investment. Near the end of the term, there will be a programming project. This is an open-ended group assignment that will require you to use the algorithms and techniques from the course.

All programming assignments are to be written in C++ in a manner that ensures I will be able to run them on my machine(s). Programming assignments will be graded primarily on correctness, but style and efficiency are considered. You are not permitted to use any external libraries in your programming assignemnts.

Final Project

Starting in the seventh week of the course you will be working on a project of your choosing. You may work in groups of 3 or 4. Project presentations will likely be held Wednesday or Thursday of 10th week.

Grading

Written assignments10%
Programs40%
Quick code20%
Project30%
Every effort should be made to turn programming projects on time. Late programming projects will be penalized in accordance with the degree of lateness. No other late work will be accepted.

Collaboration

Collaboration is encouraged on quick code projects and written assignments. It is required on programs and the project; failure to collaborate will result in a penalty grade. Each individual is responsible for understanding the entire solution. When you collaborate, you must properly credit your collaborators and clearly indicate the extent of the collaboration.

Failure to properly acknowledge collaboration is considered cheating. Directly copying code and ideas is cheating. Cheating will result in a penalty grade on the assignment and Student Affairs will be notified. See this page for details.

Resources

Rose provides a number of resources to help you: