CSE 313 Computer Graphics (3)


Xiaolei Huang (Fall 2017)

Current Catalog Description

Computer graphics for animation, visualization, and production of special effects: displays, methods of interaction, images, image processing, color, transformations, modeling (primitives, hierarchies, polygon meshes, curves and surfaces, procedural), animation (keyframing, dynamic simulation), rendering and realism (shading, texturing, shadows, visibility, ray tracing), and programmable graphics hardware. Prerequisite: CSE 109 and (MATH 043 or MATH 205 or MATH 242).


Francis S Hill Jr., Stephen M Kelley, "Computer Graphics Using OpenGL", 3rd Edition, Prentice Hall (2006), 978-0131496705


Students will have:

  • A broad understanding of current topics in the field of computer graphics
  • A grasp of basic principles and core techniques commonly used in the graphics industry, such as in computer animation, games, and production of special effects
  • Ability to write substantial graphics themselves
  • Ability to produce 2D and 3D graphics, animations, using OpenGL - the graphics application programming interface (API)
  • Ability to propose and implement computer graphics solutions to design arts


CSE 313 substantially supports the following student enabled characteristics:

A. An ability to apply knowledge of computing and mathematics appropriate to the discipline

B. An ability to analyze a problem and identify and define the computing requirements appropriate to its solution

I. An ability to use current techniques, skills, and tools necessary to computing practices

J. An ability to apply mathematical foundations, algorithmic principles, and computer science theory in the modeling and design of computer-based systems in a way that demonstrates comprehension of the tradeoffs involved in design choices

K. An ability to apply design and development principles in the construction of software systems of varying complexity

Prerequisites by Topic

  1. Software and programming: data structures, programming in C/C++, object-oriented design and implementation, practical methods for implementing medium-scale programs
  2. Linear algebra: matrices, vectors, vector spaces, elementary matrix transformations, linear differential equations, systems of linear equations, eigenvalues and applications to linear systems of differential equations

Major Topics Covered in the Course

  1. Definitions and application domains for computer graphics
  2. Displays
  3. Images, image formation, color spaces
  4. Graphics input and output primitives, drawing lines and curves
  5. Image processing and manipulation
  6. Introduction to OpenGL/Glut for graphics programming
  7. Vector tools for graphics
  8. 2D and 3D geometric transformations
  9. Viewing: camera transformations, perspective projection, orthographic projection
  10. Drawing 3D scenes using OpenGL
  11. Modeling: primitives, geometry, polygon meshes, curves and surfaces, heirarchies, fractals and procedural methods
  12. Animation: keyframing, forward vs. backward kinematics, physics-based animations/simulation, behavior-based computer animation
  13. Rendering and visual realism: illumination, shading, texturing, shadows, visibility (hidden surface removal), ray tracing, nonphotorealistic rendering, volume rendering
  14. Graphics hardware, programmable graphics hardware
  15. Graphics processing unit )GPU) programming using CUDA as an example
  16. Miscellaneous (as time permits)
    1. Virtual reality, augmented reality
    2. Sound simulation
    3. User interface design principles
    4. Image recognition

Assessment Plan for the Course

The students are given three homework assignments, three mid-size to large-size programming assignments, a midterm exam, and a final exam. Each programming assignment is given over a two to four week period. The students are given a skeleton program to start with, but must design a solution that implements one or two algorithms discussed in class, for a particular context given in the assignment description. I track the performance of the student on each homework assignment, each programming assignment, and each question on the midterm and final exam.

How Data in the Course are used to Assess Program Outcomes (unless adequately covered already in the assessment discussion under Criterion 4).

Each semester I include the above data from the assignment plan for the course in my self-asssessment of the course. This report is reviewed, in turn, by the Curriculum Committee.

© 2014-2016 Computer Science and Engineering, P.C. Rossin College of Engineering & Applied Science, Lehigh University, Bethlehem PA 18015.