419/533: Advanced Digital: Sound Light & Interaction

Instructor: Josephine Anstey, jranstey@buffalo.edu

Office Hours: Tuesday 3-5

Where and When
CFA 242, TR 10:00 - 11:50

Assignments: There will be a programming assignment every week. Expect to spend at least 10 hours per week outside of class working on assignments and reading. There will also be a midterm and final project.

Attendance: More than 3 absences without explanation will impact your grade.

Grading:
Assignments 30%, midterm 30%, final 40%.
Plagiarism will result in a failing grade for that assignment or project.
Late assignments will be downgraded 5% per day late.

Textbooks

The OpenGL Programming Guide, Third Edition
Neider, Davis & Woo
Addison-Wesley

Practical C++ Programming
Steve Oualline
O'Reilly

Syllabus

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: Introductions. Background to VR and VR programming.
Aug 30:  Syllabus and explication of this class
                Linux OS Basic Unix/Linux commands
           assignment: open account & familiarize self with linux/unix at sun lab in Bell
                                          : read "Practical c++ Programming" chapter 1
Sept 4/6:  View VR art work - CCR
                   EVL: Alive on the Grid - general info & project descriptions
Module 2: Intro to  c++
Sept 11/13:  linux commands test.  reading a c++ program,  writing a first c++ program
               assignment: read "Practical c++ Programming" chapter 2 pp 9-16 & chapter 3

Sept 18:  Rosh Hashanah: class cancelled
Sept 20:  c++ writing a first program, coding style, variables
                assignment: simple c++ program
                read  "Practical c++ Programming" chapter 4

Sept 25:  c++ continued
                assignment: c++ program
                Read "OpenGL programming guide", chapter 1

Sept 27:  Yom Kippur: class cancelled
Module 3: Intro to GLUT & Open GL. Drawing & Animating Objects
Oct 2:  Opening GLUT window in c++. Makefile. Basic OpenGL setup.
                Coordinate system,  drawing simple 2D objects

Oct 4:   Translation, rotation, scaling of objects. Moving objects
              assignment:  Write program that opens widow & draws and animates simple objects
                                :Read "OpenGL programming guide", chapter 2, pp 27 - 52

Module 4: Interaction
Oct 9:    programming keyboard & mouse interaction
Oct 11:Review
           assignment:  Program that uses mouse and or keyboard interaction, drawing and animating routines
Module 5: Adding Texture. Using c++ Classes written by others
Oct 16: using texture class, making textures (gimp, scp)
Oct 18: workshop
           assignment: make your own textures and write program using them
Module 6: Adding Sound. Using c++ Classes written by others
Oct 23: intro to Bergen Sound Server, sound class
Oct 25: workshop
          assignment: Program that uses sound to augment interface or content
Module 7: More c++
Oct 30: building more complicated function
Nov 1:   workshop
           assignment: write program using more complicated functions
                           : start making 1 web page describing final project
Module 8: Animation Algorithms
Nov 6:  complex movement - movement on time
Nov 8:   workshop/ looking at final project plans
           assignment:   write a program in which your objects move using more complex movement algorithms
Module 9: Mouse Again
Nov 13: making buttons, mouse-over events
Nov 15: Transparent textures - workshop
                    assignments: write program using mouse-over & transparent texture
                                   : finalize web-page describing final project
Final Project
Nov 20: presentation of final project plans
Nov 22: Thanksgiving Recess
Nov 27: Forloops and Arrays
Nov 29: Detecting collision of moving objects
Dec 4:    Problem solving for final projects
Dec 6:    Review of Final Projects