4565 Home
Syllabus
Lectures
Homework
Programming
Links

 

 

CSC 4565/5565 Introduction to Computer Graphics

Instructor: Dr. Min Choi
Office: Lawrence St. Center LW812


Class: Mon, Wed 3:30 - 4:45pm
Office Hour: M 2:30-3:30PM   W 2-3:30PM
Teaching Assistant: Breawn Schoun (breawn.schoun at ucdenver.edu) Office hours: Tue and Fri 2-3PM.

Prerequisites
CSC3412 Algorithms, C/C++ Programming, Math 3191 Linear Algebra  

Catalog Information
Introduces two and three dimensional computer graphics. Topics include scan conversion, geometric primitives, transformation, viewing, basic rendering, and illumination. Emphasis is on programming using "C" and "C++" Open GL. Prereq: CSCI 3412 and MATH 3191 or 3195. Cross-listed with CSCI 5565. Max hours: 3 Credits. Semester Hours: 3 to 3

Textbooks

Computer Graphics with OpenGL (4th edition)
by Hearn & Baker


Publisher: Pearson; 4 edition
ISBN-10: 0136053580
ISBN-13: 978-0136053583

 

Recommended Book

OpenGL Superbible 7th Edition

Publisher: Addison-Wesley Professional; 7 edition
ISBN-10: 0672337479
ISBN-13: 978-0672337475

 

Course Objectives

The aim of the course is to develop understanding of and gain experience with the basic techniques of interactive computer graphics. There will be substantial emphasis on 3D graphics and on developing proficiency in OpenGL graphics programming. We will cover much of the material in the textbook, though not in the order presented in the book.

Topics

  • OpenGL
  • 2D interaction
  • Graphics primitives
  • Viewing and projection
  • Surface rendering
  • Illumination model
  • Curve and curved surface
  • Texture mapping
  • Ray tracing
  • Graphics hardware

 

Expected Knowledge/skills at the beginning of the course

  • Object oriented programming in C/C++
  • Abstract data type and data structures
  • Algorithm analysis
  • Vector and Matrix calculation in Linear Algebra

Expected knowledge/skills at the end of the course

  • Solid understanding in fundamentals of computer graphics
  • Computer graphics pipeline and hardware
  • Rendering
  • 3D modeling
  • Texture mapping
  • Ray tracing

 

Requirements and grading

Course grades will be based on approximately 6 homework assignments, one midterm test, and a final exam. Programming problems will usually be given as part of regular written homework assignments; there will not be a separate grading category for programming assignments. Class participation and effort may be taken into account in determining grades in borderline situations. The components will be weighted roughly as follows

Homework assignments 35%
Midterm exam30%
Final exam 30%
Class participation 5%

 

Percentage of the total accumulated score will be used for letter grades in following scale
90-100 % A/A+, 80-89% B/B+, 70-79% C/C+, 60-69% D/D+, Below 60% F
NOTE:I reserve the right to modify any or all of these percentages based on the curve.

4565 and 5565 will have different scope and criteria for exams and assignments.
Specifically, 5565 will include more in-depth reseach components.

Semester schedule

The approximate schedule is below. It will be updated regularly, and will reflect what was actually covered and when.

Week

Topic

Assignments

Week 1:

Introduction to Computer Graphics

 

Week 2:

OpenGL, GLUT basic

 

Week 3:

2D graphics primitives

 HW1

Week 4:

Coordinates, frames

 

Week 5:

Transformation

 HW2

Week 6:

Viewing, Projection

 

Week 7:

Lighting Illumination Model

 HW3

Week 8:

Rendering, Material Properties

 

Week 9:

Polygon shading

 

Week 10:

Modeling

 HW4

Week 11:

Interaction techniques

 

Week 12:

Texture mapping

 HW5

Week 13:

Antialiasing

 

Week 14:

Graphics hardware

 HW6

Week 15:

Ray tracing, radiosity, global illumination

 

Week 16:

Preparation week

 

 

Programming language, graphics API and toolkits

Program code and/or examples in lectures will be given in C, C++, and OpenGL (or pseudo-code). For homework and programming assignments both C and C++ are acceptable.

The graphics API used for the course is OpenGL. The departmental lab will provide PCs with OpenGL. The OpenGL API does not deal directly with windowing systems and user interaction. We will use the GLUT (OpenGL Utility Toolkit). It is a library that provides a simple interface for windowing operations and user interaction. Issues specific to particular windowing systems or operating systems are hidden within the GLUT implementation. Thus, programs written using OpenGL plus GLUT are portable across operating systems.

Refer to Programming Guide for more information.

 

Late assignment policy:

You should expect to spend around 8 hours per week on this course. This includes the time you will need to complete the readings, as well as any discussion work that week. Do not expect to succeed in this course if you do not allocate sufficient time in a week for this class!

Late work is accepted entirely at the discretion of the instructor on special circumstances given all the supporting documents. Any work accepted late will be graded down a minimum of one full grade.
Typically any work accepted late will be graded down 10% per 24 hours within 7 days.


Completing assignments on time is critical to your success in the course!

In the case that you will not be able to complete work the week it will be due, please contact the instructor to see if other arrangements are possible.

 

 


Academic integrity:

Homework and programming assignments, except when explicitly specified otherwise,  should be done alone. It is reasonable to discuss general approaches to problem solutions or algorithm design with other students but the bulk of the work must be done alone. Working out details, sharing in the write-up or sharing or copying code, regardless of the amount of copied contents, will be treated as a violation of the academic integrity rules.

Although cooperative learning among yourselves can be helpful, you are expected to perform and present your own work.

Copying someone else's assignment or cheating on exams will not be tolerated and will be handled according to University policies if found to occur. You are responsible for observing the University's Student Code of Conduct regarding these matters.

Please refer to CEDC Honor Code