Computer Graphics

Computer Science  357

Fall, 2017

Course Objectives

This course will deals with the fundamental concepts of computer graphics; that is, the use of the computer to create images.  We will study the physical and mathematical foundations of the subject, as well as the basic algorithms and techniques that form the foundation of modern graphics systems.  In addition, there will be a substantial programming component, using the graphics library OpenGL.

Grading Procedures

Your grade will be based on homework and labs, and two exams.
Point breakdown (approximate):
Labs/Homework 150-200
Midterm Exam (October 11)
Final Exam (December 16)
Total 400-450


Late labs are strongly discouraged. You may hand up to two labs one day late without penalty.  Be sure to submit early!  Labs that are up 24 hours late will be penalized by 25%.  Labs that are more than 24 hours late will not be graded.

Problem sets are due at the beginning of lecture.  Late problem sets are not accepted.

If due to extenuating circumstances (such as a severe illness) you will not be able to complete a lab or take a test, talk to me immediately, and prior to the deadline.  I will handle these situations on a case-by-case basis.

Regular class attendance and participation is expected.  Excessive absence may result in a lower final grade.

All late assignments must be submitted by the end of the reading period (December 12).

Student Disabilities

If you have a disability that might impact your performance in this course, or requires special accommodation, please contact me as soon as possible so that appropriate arrangements can be made.  Support is available through Student Academic Services.  You will need to contact them to get your disability documented before accommodations can be made.

Academic Integrity

All work in this course is to be performed in accordance with the college's Oberlin Honor Code.  You must write the Honor Pledge and sign it at the end of every submission.  Electronic submissions must include the honor pledge in the comments and your name.  The pledge is "I have adhered to the Honor Code in this assignment."

In particular, on all of the exams you are responsible for your own work; you may neither give nor receive aid during the course of the exam.  No electronic devices are permitted in exams.

That being said, in a hands-on course such as this one, some discussion of lab assignments is expected and encouraged. A few specific do's and don't's:

In the end, the work you submit must be your own.  If you're not sure what is acceptable in a given situation, please ask me about it.

Course outline

  1. Introduction:  applications, fundamental ideas, history.
  2. Introduction to OpenGL and JOGL.
  3. 2D graphics algorithms:  drawing, filling, clipping, antialiasing.
  4. Geometric transformations:  rotation, translation, and scaling.
  5. Viewing in 3D.  Parallel and perspective projections.
  6. Hierarchical modeling and animation.
  7. Visible-surface determination.  z-Buffer algorithm.
  8. Light and color.
  9. Illumination and shading.  Gourad shading.  Phong shading.
  10. Texture mapping.
  11. Ray tracing and radiosity.
  12. Curve and surface modeling: cubic curves; bicubic surfaces.