Objects and Algorithms for Interactive Media


Weds | 10:00am to 1:00pm | Room ???
Matt Parker, Instructor
maddparker@gmail.com
Course Description
One of the primary challenges of learning object-oriented programming (OOP) is to find real-world applications that demonstrate how concepts such as encapsulation, subtype polymorphism, and inheritance empower a programmer or a team of programmers to develop sophisticated, robust software. This class will attempt to meet that challenge by exploring OOP as it applies to the implementation of digital games and interactive art. Students will learn the process of iterative design and its relationship to game and interface development through the creation of prototypes. Projects will be built in Processing, but the concepts discussed will be applicable to other object-oriented languages and digital formats. The class will focus on core programming techniques, data structures and algorithms as they apply to game and installation development. A main goal will be for students to understand why object-oriented code can be powerful, dynamic, and easier to manage. We will also examine interactive programming concepts such as collision detection; level construction; the use of sprite sheets to animate characters; application flow; and basic ways to make game elements appear intelligent. Class discussions and guest speakers will help contextualize the power and potential of games and installations in our culture. Assignments will consist primarily of programming, but will also include readings, presentations and the critical evaluation of digital games. Permission of instructor required: students should have at least one semester of programming experience, preferably in Processing, Java or C++.

Goals
By the end of this course, I hope you will have learned the following:

  • An improved understanding of interactive art and game design
  • Become comfortable presenting and sharing your work
  • Deep understanding of OOP concepts, such as polymorphism, inheritance, and encapsulation
  • A knowledge of a range of data structures and there uses
  • Have fun and create interactive experiences

Grading
Attendance, participation, and presentation 33%
Projects 33%
Final project 33%