419/515: Advanced Digital: Sound Light & Interaction

Instructor: Josephine Anstey, anstey@evl.uic.edu

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

C++ Distilled
Addison Wesley


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 programming
Aug 30 : c++ & pseudo code
                  assignment: open account at sun lab in Bell
Mon Sept 4th Labor Day Holiday

Module 2: Intro to Linux and c++

Sept 6     Linux commands, first c++ programs
Sept 11/13:  c++ functions, variables, compilers
                       assignments: make directories, cp files etc in linux, simple c++ programs
Module 3: Intro to GLUT & Open GL. Drawing Objects
Sept  18   Opening GLUT window in c++. Makefile. Basic OpenGL setup.
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
Module 4: Adding Color and Texture
Oct 2 :    Intro to forloops, operators & arrays
Oct 4     Flags, #define, forloops & arrays. Toggling direction, animating, changing color
                  assignments: Annotate code. Work on Midterm project
Monday Oct 9 Holiday - class moved to Oct 10

Midterm Review

Oct  10 More Flags, forloops & arrrays  review
Oct  11   Animating, Double forloops
Module 5: Interaction
Oct 16 & Oct 23 - Mouse Interaction
                 assignments: mouse interaction
Module 6: Adding Texture
Oct 25 - Adding Textures
Oct 30 - Adding Textures Part II
Module 7: Adding Sound.
Nov 1 :   intro to Bergen Sound Server,
Nov 6 :    sound II: paths to the libraries we are using. bashrc
                  assignments: program with sound
Module 8: Intro to Classes
Nov 15 - Building Classes/ Object Oriented Programming
                    assignments: program using complex movement, start planning final project
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