CS 3014 Computer Graphics
Fall Term, 2010

 

Professor:

Tylene S. Garrett

email address:

tgarrett@transy.edu

Office:

109 Brown Science Center

Office Phone:

859-233-8170

Fax:

859-233-8171

Home Phone:

502-829-5676

Office Hours:
(and by appointment)

MON

TUE

WED

THU

FRI

by appointment only

9:30 � 11:00

1:30 - 3:00

by appointment only

9:30 � 11:00

1:30 - 3:00

by appointment only

Virtual Office Hours: I will be available in the Moodle Chat Room at least two hours in the evening during the week, usually the night before a project is due. I will also attempt to answer evening emails in a timely fashion, but not after 10:00 p.m.

Class Meets:

Monday � Wednesday - Friday     1:30 � 2:20      BSC/107

Course Prerequisites:

This course assumes you have already successfully completed CS 1124 (Foundations of Computer Science), CS 2124 (Logic in Problem Solving), and CS 2444 (Data Structures). Thus, you are expected to be a competent  C++ programmer.  

Textbooks and Guides:

Computer Graphics Using OpenGL;  3rd Edition;  F.S. Hill, Jr. and Stephen M. Kelley.;  Pearson/Prentice Hall; 2007.  ISBN 0-13-149670-0

Other recommended texts (available in 106 and earlier editions available online) are:  

  • The OpenGL Utility Toolkit (GLUT) Programming Interface API Version 3     Documentation Guide; Mark Kilgard;
     
  • OpenGL Programming Guide, Fifth Edition:  The Official Guide to Learning OpenGL, Version 2  by Dave Shreiner, Mason Woo, Jackie Neider and Tom Davis;  Addison - Wesley
  • The OpenGL Reference Manual,  Fourth Edition (or later):  The Official Reference Document to OpenGL, Version 1.4 by the OpenGL Architecture Review Board; Addison - Wesley
  • OpenGL:  Programming for the X Window System by Mark Kilgard; Addison - Wesley; 1996.

Purpose:

This is the first of a two-course sequence.

The course's primary purpose is to explore the basic principles (together with the hardware) needed to design, use, and understand computer graphics.  Using only the primitive for setting a pixel on a screen, we develop all the important components of a two-dimensional and a three-dimensional graphics system.  All algorithms are developed without regard to any particular graphics library.  However, implementation of the algorithms makes extensive use of the OpenGL graphics library.

Topics covered include scan-line algorithms, two and three dimensional affine transformations, 2D and 3D morphing, clipping, lighting, texture mapping, and 3D viewing with the synthetic camera.    Platform independence is stressed; modifications necessary for mobile platforms included.

The second course in the sequence, Advanced Graphics, will be offered as a Special Topics course in the winter term and will primarily focus on curves and surfaces.  Topics will include Bezier Curves and Surfaces, Splines, NURBS, 3D Texture Mapping, and an introduction to Ray Tracing.

Missed Classes:

You are expected to attend all classes. Please inform me via email if it is necessary for you to miss. Excessive absences will lower your final grade.

Copying or Sharing Work vs Getting Help:Unless we are working on group projects, you are expecdted to do your own work.  You may discuss the homework assignments with other students but may not copy any code or "borrow" any work from anyone else.  Please see me for help whenever you need to -- check office hours or make an appointment when convenient.

Lecture Topics, Reading Assignments, and Homework Exercises:

The schedule of topics is subject to change (due to progress rate of the class) so be sure to check Moodle for the latest information, including

  • outlines of topics covered for the week
  • demonstrations of new concepts
  • programming tips
  • source code for examples
  • homework execises designed to facilitate competency

Please make the information found on Moodle an integral part of your study for the course.

You are expected to do all assigned homework exercises in the book. Although they will not directly be used to calculate your grade in the course, they will greatly impact your performance on exams as well as programming projects.  You may discuss homework exercises with other students in the class and, of course, with me.  You must bring homework assignments to class with you as you may be called upon to share solutions in class.

Programming Assignments:

Programming assignments determine 70% of your grade. There will be 8-10 programming projects (individual and group). For each programming assignment you will be provided with complete specifications, as well as a grading scale, indicating how many points each part of the assignment is worth. Thus, when you submit each programming assignment, you will know how many points you will have earned even before the program has been officially graded and reported to you. There will also be the opportunity to earn extra points on most projects.  You may be required to demonstrate each project to the class and answer questions about it. It is very important that you

  • follow the specifications given for each assignment;
  • use the precise naming conventions indicated in the assignment;
  • make sure that what you submit for grading compiles without error;
  • do not submit any code that does not work;
  • do not submit any functions that do not behave according to the pre- and post- conditions.

Scores will be posted to Moodle as soon as the programs have been officially graded.

Late Work:

You are expected to submit work on time. Each assignment will have a specified time and date that it is due. You must submit the program files to be graded by this deadline to have the possibility to earn full credit. Each assignment has the point value broken down into smaller tasks. Generally, late work will not be accepted, so you are strongly encouraged to turn in whatever tasks you have completed for the assignment.  The extra points portion must be completed within 24 hours of the deadline.  Instructions for submitting assignments will be given in class. 

You will each have three 24-hour late passes that you may use as your discretion for no penalty. 

Exam Dates:

Exam #1:

Wednesday, September 29

Exam #2:

Friday, November 5

Exam #3 (Final):

Thursday, December 16,        9:00 � 11:00

Earning Points:

Component

Percentage of Grade

Projects

60%

Exam #1

10%

Exam #2

20%

Exam #3 (Final)

10%

Determining Grade:

60%

D -

                             

63%

D

                                         

68%

D+

70%

C-

73%

C

78%

C+

80%

B-

83%

B

88%

B+

90%

A-

93%

A

98%

A+