CPTR 425
Computer Graphics Fall 2014

Home Code Assignments WebGrades


Instructor

Rick Halterman

School of Computing
126 Hickman Hall
Southern Adventist University
Collegedale, TN 37315-0370
423-236-2871

halterman@southern.edu
http://computing.southern.edu/halterman

Office Hours: http://computing.southern.edu/halterman/General/OfficeHours


Course Venue

HSC 115   T 5:00 pm


Textbook


Prerequisites

CPTR 318 and MATH 182, recommended MATH 200; or permission of instructor.
Students should have a working knowledge of the C++ programming language; previous experience with the more advanced object-oriented and generic programming features of C++ is not required and will be introduced as necessary. No previous experience programming computer graphics is necessary.


Purpose

Catalog description:

CPTR 425. Computer Graphics   3 hours
Prerequisites: CPTR 318; MATH 182. Recommended: MATH 200.
This course teaches the principles of generating graphical images on a computer with an emphasis on the underlying mathematical theory and its programming implementations. Topics include graphics primitives, windowing techniques, clipping, 2-D and 3-D transformations, projections, 3-D viewing techniques, cubic interpolating and approximating curves, bicubic 3-D surface patches, fractal curves and surfaces, hidden line and surface removal, shading, surface mapping, ray tracing, animation techniques.

For this particular course offering, students will:

  • become familiar with the mathematical principles supporting computer graphics,
  • explore data structures and algorithms used in computer graphics programming, and
  • develop computer graphics applications using C++ with the OpenGL toolkit.


Class Requirements and Grading

Grade Distribution. Final grades are determined according to the following table:

Overall Average
(a)

Letter
Grade

92 ≤ a

     A

90 ≤ a < 92

     A–

88 ≤ a < 90

     B+

82 ≤ a < 88

     B

80 ≤ a < 82

     B–

78 ≤ a < 80

     C+

70 ≤ a < 78

     C

60 ≤ a < 70

     C–

58 ≤ a < 60

     D+

52 ≤ a < 58

     D

50 ≤ a < 52

     D–

a < 50

     F

Class Work. The average used to determine the final grade is computed from the following class activities and is weighted as indicated.

Activity

Weight

Assignments

30%

Quizzes

10%

Test 1

20%

Project

20%

Test 2

20%

Remarks

This course is project-intensive. This means you should expect to spend considerable time working on the programming projects. If you enjoy writing code that does interesting things, this will be more fun than drudgery.

Since we are using C++ and OpenGL, you can develop on any platform you like (Microsoft Windows under Visual C++/Visual Studio or MinGW/CodeBlocks, Linux with FreeGLUT and Mesa 3D, or Mac OS X), but be sure to stick with the standard multiplatform libraries. Do not, for example, develop a standard Microsoft Windows GUI program or a Mac OS X Cocoa application. Your code, with perhaps only minor changes to #include directives, should compile and run as is on any of the three major platforms. The reference platform we will use is Visual C++ under Windows since it is available on the School of Computing lab machines.

Any submitted work must be the original work of the submitter for an individual project or the original work of the team members for a team project. Any work or portion thereof derived from an outside source must be documented as such. Students representing the work of others as their own without giving due credit to the original authors risk receiving a grade of F in the course.

Appropriate study for the course includes reading the textbook (at least as far as last class's lecture material) and working through the exercises at the end of each chapter. Periodic quizzes encourage students to remain current in their class preparation. Usually quizzes will be distributed at the beginning of the class period. Missed quizzes may not be made up.

Each test contributes significantly to the overall grade. In certain situations, due to unavoidable circumstances, a missed test may be made up. Arrangements for the retake should be made before the time of the originally scheduled test. The make-up test may vary greatly in form from the original test, but its content (topics addressed) will be the same. Because of this difference, any points added (the so called "curve") to tests taken during the regularly scheduled time may not apply to retakes.

Ethics. It is expected that each student work individually on individual programming assignments.  For team assignments, collaboration is limited to teammates.  Some exam questions will be based on experience gained by doing the assignments, so it is important that each student develop his own programs for adequate preparation for the examinations. As long as each student develops her own logic and code, it is permissible to help each other over occasional rough spots. In a team programming environment, each team member is expected to understand the workings of the complete program regardless of the division of responsibilities during development.  Except among teammates, portions of programs should never be shared. Those involved in allowing their programs, or parts of their programs, to be copied, or copying from other students' programs risk receiving a grade of F in the course.

Class study. Appropriate study for the course includes reading the textbook (at least as far as last class's lecture material), experimenting with the programs from the book and programs we develop in class, working through the exercises at the end of each chapter. Periodic quizzes encourage students to remain current in their class preparation. Usually quizzes will be distributed at the beginning of the class period. Missed quizzes may not be made up; however, your final quiz score will be computed based on two fewer quizzes than were actually given, so if you miss a quiz or two it will not hurt you, and if you don't miss any quizzes it can help you.

Class decorum. Please comply with the standards of classroom attire as specified in the Student Handbook.  Notebook computers are welcome, and the classroom and lab (generally) have an excellent wireless signal.  Those with computers should mute the volume and sit in the rear of the class so as not to distract students behind them.  Electronic devices must be turned off during quizzes and tests.  You are expected to remain in the classroom during quizzes and tests, so be sure to take care of affairs (such as bathroom visits and tissue acquisition) before you sit for the quiz or test.

Examinations.  Each test contributes significantly to the overall grade. In certain situations, due to unavoidable circumstances, a missed test may be made up. Arrangements for the retake should be made before the time of the originally scheduled test. The make-up test may vary greatly in form from the original test, but its content (topics addressed) will be the same. Because of this difference, any points added (the so called "curve") to tests taken during the regularly scheduled time may not apply to retakes.

Attendance is required for project presentations scheduled during the official final exam period assigned for this class. Please make your work and vacation plans accordingly. Academic Administration will grant approval for variance from the published exam schedule only in cases of verified, serious, illness or a death in the immediate family. Academic Administration may, in case of exceptional and unavoidable circumstances, approve a variance, in consultation with the professor of this course. A $65 processing fee may be assessed.

Extra credit. Since the assigned material and activities are sufficient for most students, no extra credit will be available for additional work. However, well-prepared students wishing to enhance their learning experience beyond the class activities will be directed, upon request, to additional resources. Any such additional work will not influence the grade for this class.  

SAU account.  All students must have an active Southern Adventist University email account. This account is necessary to receive class messages and to be able to use the computers in the programming lab. If you normally use a different email address, please set up your SAU account to forward your email to your preferred address; instructions about how to do this are available upon request.

Learning Success Services. In keeping with University policy, any student with a disability who needs academic accommodations must call Disability Support Services at 236-2574 or stop by Lynn Wood Hall, room 308, to arrange a confidential appointment with the Disability Services Coordinator during the first week of classes. (Students who request accommodations after the third week of the semester should not depend on receiving accommodations for that semester. Legally, no retroactive accommodations can be provided. For more details, visit the Learning Success Services Web site at http://lss.southern.edu/.) Students whose accommodations requests are approved will be provided confidential letters for them to deliver to their professors for review and discussion about how to implement the accommodations in relation to particular course requirements. Accommodations for disabilities are available only as recommended by Disability Support Services.


Topics

Date

Text Chapter

Topics

August 26

1

Graphics display devices and input primitives

September 2

2

Introduction to OpenGL

September 9

3

Windows and viewports; drawing lines

September 16

3

Drawing circles, arcs, and polygons; clipping; parametric curves

September 23

4

Vector tools for graphics

September 30

5

2D, 3D, and affine transformations

October 7

Test 1

October 14

6

Polygon meshes

October 21

7

3D Viewing

October 28

8

Smoothing, shading models, GLSL; visible surface determination

November 4

10

Bezier, B-splines, and NURBS

November 11

12

Introduction to ray tracing; fractals

November 18

Fractals

November 25

Thanksgiving Break

December 2

Test 2

December 9

Project presentations

December 15

Project presentations

(The exact mapping of dates with topics listed above is approximate.)


Important Dates

  • Tuesday, August 26: first day of class for CPTR 425
  • Tuesday, October 7: Test 1
  • Tuesday, November 25: no class (Thanksgiving break)
  • Tuesday, December 2: Test 2
  • Tuesday, December 9 at 5:00 pm, and Monday, December 15 at 4:00 pm: Project presentations Note days and times!


Class Code

Code we develop in class is available at here.