I taught **Introduction to Computer Graphics and Game Development** (SER332) this Spring. I have taught this course for a year – Spring 2018 and Spring 2017.

**SER332** is a beginner-level course for students interested in learning the foundations of graphics and basic principles of the game development pipeline. We do programming in **C/C++** and use the **OpenGL** graphics library.

## Syllabus

**Lectures**

The course includes 25 lectures and covers the following topics: course presentation; concepts of computer graphics; OpenGL overview; callback functions; vertex; transformations (ModelView); transformations (Viewport); display lists and menus; transformations (Projection); linear algebra; fonts and OBJ files; mesh data structure; lighting; materials; and textures.

My slides for each lecture are available below:

- Course Presentation
- Concepts
- OpenGL Overview
- Callback Functions
- Vertex
- Laboratory 01 (Drawing in 2D)
- Model-View Transformations
- Viewport Transformation
- Laboratory 02 (Transformations)
- Display Lists and Menus
- Projection Transformation
- Laboratory 03 (Perspective)
- Linear Algebra
- Laboratory 04 (Camera)
- Fonts, OBJ Files, and Midterm Review
- Mesh Data Structure
- Laboratory 05 (OBJ Files)
- Mesh Data Structure II
- Lighting
- Laboratory 06 (Lighting)
- Materials
- Laboratory 07 (Materials)
- Textures
- Coding Review
- Final Review

**Assignments**

There are four programming assignments. The last is a comprehensive project where students create a 3D closed space room and hallways. It is a scenario for a first-person shooter game. Each room has furniture, light adjustments, materials, and textures.

**GitHub Repository**

Code for lecture examples is available here: javiergs/SER332