CPSC 4050 / 6050

Section 001

Computer Graphics

Spring 2014

M/W 2:30 - 3:45, Daniel 415, 3 credits



Professor: Donald H. House

office: McAdams 319, phone: 656-2844
email: email
                      addr, hours: Tu/Th 4:00-5:00

TA: Kacey Coley, McAdams 118 (DPA Lab)

Web Page: http://www.cs.clemson.edu/~dhouse/courses/405



Programming Projects

Project Results

Resources and Documentation


Course Catalog Description

Computational, mathematical, physical, and perceptual principles underlying the production of effective three-dimensional computer graphics imagery.


Coursework in Data Structures (CPSC 2120) and Linear Algebra (MTHS 3110) or DPA 4010.


Course Objectives

This course is designed to train students in the foundation principles of 3D Computer Graphics, so that they will be able to

Students attend lectures, read, discuss, and complete quizzes on hand-out material. They also complete a series of programming projects designed to gradually expand their knowledge of the field of 3D graphics.


Programming Projects

All of the projects involve programming in C++ and require the use of graphics libraries. Work may be done on any computer supporting C++, and the OpenGL, and GLUT API's. However, before turning in an assignment, the program must be compiled and tested under the Clemson School of Computing linux operating system, and a working Makefile must be provided.

In order to access files from the course home directory, and to turn in programming projects, all students will need to use their computer science account. All students enrolled in CS courses are automatically assigned CS accounts. You will need to login early in the semester to change your password, or the account may be expired. If you have problems logging in, send an email to helpdesk@cs.clemson.edu from your Clemson email account, or stop by 109 or 112 McAdams with a picture ID.


Text and Handout Materials


Reference Reading Material


Course Outline

The course outline below covers the theoretical foundations of computer graphics.
Practical material on the use of the 3D graphics API OpenGL will be presented as required throughout the semester.

  1. The Foundations of 3D Computer Graphics
  2. Storage of Images
  3. Vectors and Vector Algebra
  4. Rendering I
  5. Lighting and Shading
  6. Geometry
  7. Rendering II
  8. Matrices and Matrix Algebra
  9. Coordinate Systems and Camera Models
  10. Rendering III
  11. Geometry
  12. Shading
  13. Modeling: Parametric Curves and Surfaces
  1. Rendering IV

Performance Evaluation

Undergraduate students:
Grading will be based on performance on a set of seven programming projects, ten quizzes, the final exam, and class participation, using the following percentage distribution:
• Programming Projects: 50%
• Quizzes: 20%
• Final Exam: 20%
• Class Participation: 10%

Graduate students:
Each programming project will include an extension involving advanced concepts. Completion of all regular requirements and this extension, on each assignment, is required for graduate students. Grading will be based on performance on a set of seven programming projects, seven advanced project extensions, ten quizzes, the final exam, and class participation, using the following percentage distribution:
• Programming Projects: 30%
• Advanced Project Extensions: 20%
• Quizzes: 20%
• Final Exam: 20%
• Class Participation: 10%

Programming projects: All seven programming projects will involve developing computer graphics software in C++, using the OpenGL and GLUT API's.
To be on time, work must be submitted before midnight of the due date.
A late penalty of 1/2 point will be applied for each of the first seven days that a project is late. No project will be accepted beyond seven days from the due date.
Homework problems and extensions will be graded using the following scheme:

The final programming project average will be computed by averaging the student's seven project scores.

Quizzes: Each Quiz will have two questions and will be take home. Quizzes must be submitted by the start of class on the due date, and the class will begin by a discussion of the quiz problems. No quizzes will be accepted after the start of class. Quizzes will be graded as follows:

Quiz scores are interepreted as follows: 4 => 100, 3 => 87, 2 => 71, 1 => 50, 0 => 0. The final quiz average will be computed by averaging the student's top 8 of 10 quiz scores.

Final Examination: Students maintaining an average of 8.0 or higher on programming projects, and 3.0 or higher on quizzes may elect to waive the final exam. In that case, the grade will be the weighted average of the remaining 80 points. The exam will be comprehensive. It will consist of ten short answer and two essay style questions. Short answers will require at most a short paragraph, code segment, and/or a figure to answer. Essay questions will require at most two pages, including accompanying figures, to answer.

Class Participation:
The class participation grade is the instructor's subjective judgement of the student's contribution to a lively classroom atmosphere. He will consider mainly active, informed participation in classroom discussions, quiz and homework reviews. Obviously, students not attending class are not contributing in this way.


Late Class Policy

Your instructor will make every effort to be in class on time, or to inform you of any delay or cancellation. In the unusual event that he should not arrive in class or send word by 10 minutes from the class start time, the class is officially cancelled.


Attendance Policy

Attendance in class is optional, but remember that a percentage of the grade is based on class participation.


Collaboration Yes, Plagiarism No

In this course, we want to encourage collaboration and the free interchange of ideas among students and in particular the discussion of homework and quiz problems, approaches to solving them, etc. However, we do not allow plagiarism, which, as commonly defined, consists of passing off as one's own ideas, words, writings, etc., which belong to another. In accordance with this definition, you are committing plagiarism if you copy the work of another person and turn it in as your own, even if you should have the permission of that person. Plagiarism is one of the worst academic sins, for the plagiarist destroys the trust among colleagues without which research cannot be safely communicated.



Materials in this course are copyrighted. They are intended for use only by students registered and enrolled in this course and only for instructional activities associated with and for the duration of the course. They may not be retained in another medium or disseminated further. They are provided in compliance with the provisions of the Teach Act. Students should refer to the Use of Copyrighted Materials and “Fair Use Guidelines” policy on the Clemson University website for additional informationhttp://www.lib.clemson.edu/copyright/.


Disability Access

It is University policy to provide, on a flexible and individualized basis, reasonable accommodations to students who have disabilities.  Students are encouraged to contact Student Disability Services to discuss their individual needs for accommodation.


Academic Integrity

As members of the Clemson University community, we have inherited Thomas Green Clemson’s vision of this institution as a ‘high seminary of learning.’ Fundamental to this vision is a mutual commitment to truthfulness, honor, and responsibility, without which we cannot earn the trust and respect of others.  Furthermore, we recognize that academic dishonesty detracts from the value of a Clemson degree.  Therefore, we shall not tolerate lying, cheating, or stealing in any form. In instances where academic standards may have been compromised, Clemson University has a responsibility to respond appropriately and expeditiously to charges of violations of academic integrity.
Please refer to the graduate academic integrity policy, approved March 26, 2007 by the Provost’s Advisory Council, at http://gradspace.editme.com/AcademicGrievancePolicyandProcedures#integritypolicy
Each graduate student should read this policy annually to be apprised of this critical information.