Office Hours: Monday 2-4
Where and When
CFA 232 or 242, MW 9:00 - 11:50
Description: This production course will introduce students to the concepts and practise of programming 2D computer graphics using c++ , OpenGL and the GLUT libraries, and to a basic sound server. The major focus will be on creating interactive art experiences by programming both graphics and sound. The course has three goals: to demystify computer code - we get behind the Graphic User Interface to the machine below; to explore the potential of programming - writing our own code means we can create customized computer tools as well as customized visuals; and to teach the fundamentals of graphics programming.
Assignments: There will be a programming assignment every week. Expect to spend at least 10 hours per week outside of class working on assignments. There will also be a midterm and final project.
Assignments 30%, midterm 30%, final 40%.
Plagiarism will result in a failing grade for that assignment or project.
The OpenGL Programming Guide, Third Edition
Neider, Davis & Woo
The following course outline may be taken as a guideline only. It is subject to revision and may include digressions and student driven subject matter.
Module 1: Background
Aug 28: Background to computer graphics programmingMon Sept 4th Labor Day Holiday
Aug 30 : c++ & pseudo code
assignment: open account at sun lab in Bell
Module 2: Intro to Linux and c++
Sept 6 Linux commands, first c++ programsModule 3: Intro to GLUT & Open GL. Drawing Objects
Sept 11/13: c++ functions, variables, compilers
assignments: make directories, cp files etc in linux, simple c++ programs
Sept 18 Opening GLUT window in c++. Makefile. Basic OpenGL setup.Module 4: Adding Color and Texture
Sept 20 Coordinate system, drawing simple 2D objects
Sept 25 & 27 : GLUT webpages, Push and Pop, Translate and Rotate
assignments: Annotate code. Open window. Draw and manipulate objects
Oct 2 : Intro to forloops, operators & arraysMonday Oct 9 Holiday - class moved to Oct 10
Oct 4 Flags, #define, forloops & arrays. Toggling direction, animating, changing color
assignments: Annotate code. Work on Midterm project
Oct 10 More Flags, forloops & arrrays reviewModule 5: Interaction
Oct 11 Animating, Double forloops
Oct 16 & Oct 23 - Mouse InteractionModule 6: Adding Texture
assignments: mouse interaction
Oct 25 - Adding TexturesModule 7: Adding Sound.
Oct 30 - Adding Textures Part II
Nov 1 : intro to Bergen Sound Server,Module 8: Intro to Classes
Nov 6 : sound II: paths to the libraries we are using. bashrc
assignments: program with sound
Nov 15 - Building Classes/ Object Oriented ProgrammingFinal Project
assignments: program using complex movement, start planning final project
Nov 20: presentation of final project plan
Nov 22: Recess
Nov 27: Problem solving for final projects
Dec 4: Topic review
Dec 6: Requests for final projects
Dec 11: Final Project critiques
Dec 13: Final Project critiques