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.
J.P. Mellor
Moench F216
877-8085 (Office)
877-0084 (Home)
j.p.mellor@rose-hulman.edu
Interactive Computer Graphics: A Top-Down Approach with OpenGL, 4th Edition, Edward Angel, Addison-Wesley, 2006. errata
OpenGL: A Primer, 2nd Edition, Edward Angel, Addison-Wesley, 2005.
The OpenGL Utility Toolkit (GLUT) Programming Interface, Mark J. Kilgard, 1996.
OpenGL Programming Guide: The Official Guide to Learning OpenGL, 5th Edition, OpenGL Architecture Review Board, Dave Shreiner, Mason Woo, and Jackie Neider, Addison-Wesley, 2005.
OpenGL Programming Guide: The Official Guide to Learning OpenGL, 5th Edition, OpenGL Architecture Review Board, Dave Shreiner, Mason Woo, and Jackie Neider, Addison-Wesley, 2005.
OpenGL Reference Manual: The Official Reference Document to OpenGL, 4th Edition, OpenGL Architecture Review Board, Dave Shreiner, Mason Woo, and Jackie Neider, Addison-Wesley, 2004.
Electronic course materials may be accessed via angel or directly at http://www.rose-hulman.edu/class/csse/csse351/. You should visit these sites regularly. A copy of the schedule is available there along with course materials and other important information.
It would be to your benefit to do the reading assignments before they are covered in class so we can devote class time to discussing difficult ideas and algorithms. You are responsible for all the material in the assigned sections of the book, whether explicitly discussed in class or not.
Throughout the term, there will be about four problem sets, periodic quizzes and about four projects sets.
All programming projects are to be written in C or C++ in a maner that ensures I will be able to run them on my machine(s). Projects will be graded on style, efficiency, and documentation (in approximately equal proportion). All programs should have an opening comment block stating, in your own words, the problem being solved, a brief description of the algorithm used to solve the problem, your name, and the date written. Functions should also have comment blocks defining their purpose and parameters. Code should be broken up into small parts and each part should be preceded by comments describing the step in the algorithm the part of the code is performing. Variable names should be meaningful and comments should identify their contents.
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 be held either in class tenth week or during the final examination period.
Problem sets | 25% |
Quizzes | 20% |
Programming projects | 40% |
Final project | 15% |
Every effort should be made to turn programming projects on time. Late programming projects will be penalized in accordance with the degree of lateness. Problem sets and quizzes will not be accepted late.
Collaboration is encouraged on programming projects. It is required on the term project and prohibited on problem sets and quizzes. When you collaborate, you must properly credit your collaborators and clearly indicate the extent of the collaboration. Working out a solution as a group is acceptable collaboration. Each individual is responsible for understanding the entire solution. For programming projects, this means that once a group solution has been achieved, each collaborator must code their own solution independently. Copying is not collaboration. Failure to properly acknowledge collaboration can be considered cheating.
You are expected to abide by the Rose-Hulman honor code.