Teaching

Have you been working with Processing or ActionScript, but need more performance to realize your interactive project? Are you a JavaScript hacker who’d like to add c++ to her arsenal of skills? If so, it’s probably time to make the jump to openFrameworks, an open source c++ toolkit for creative coding. OpenFrameworks is not only a very powerful tool for creative coding, but a great way to enter the sometimes daunting world of c++. For just a few examples of the type of things that are possible with openFrameworks, check out the oF gallery here.

This 6-week intensive workshop is for coders who are already familiar with object oriented programming concepts, but would like to dive into openFrameworks. We will cover topics such as interfacing with web services, intermediate-level oF/openGL classes, common computer vision techniques, and working with addons. More

This class is a top down introduction to C++ programming with a emphasis on interaction, procedural animation, and manipulation of images, audio, and video using openFrameworks, a library for creative coders. Students will learn basic object oriented programming principles, and create three or more polished interactive projects. Although the principles taught in the class are cross-platform, we will focus on Mac development, so students should have access to a Mac outside of class. More

The purpose of this class is to explore how the medium of software can be used to create new comedic forms. We will investigate the affordances and strengths of software as a medium and how to produce satire and comedic performance using it. Although we will probably use the tropes of traditional software as material inspiration, the class is decidedly not about how to inject humor into traditional software. This is an important distinction because our ultimate focus here is comedy rather than the software. While we do want to examine the medium in order to determine how to best use it, the emphasis will definitely be on the content. This class is an experiment in defining a genre. More

Hacking 101

There are a variety of definitions of the word “hacker”. Before Hollywood got it’s hands on it, a hacker was a person who learned just enough about a system to get it to do what they want. To “hack” a program was to force-fit it into being usable for a task not intended by the original creator. Although not graceful, hacking can be a powerful way to make your computer do what you want it to do, rather than what a software company tells you it should do. The class will be an introduction to computing from the perspective of the hacker. It will focus on UNIX, shell scripting, and open source web software, but the lessons will be applicable in many computer-based and non-computer based realms. Topics will include: understanding how software works, reading software documentation, and thinking of software as building blocks for your own playful exploration. We will also look at the hacker subculture and some of the texts that define their values and tenets, including Computer Lib/Dream Machines and Hackers: Heroes of the Computer Revolution. Some knowledge of HTML/CSS is helpful, but not required. More

Web as Platform

Google’s announcement of the Chrome OS provided a definite time line for what has been on the horizon for some time: web-based personal computing. With this radical change in the way we think about personal computing, languages once thought of as too rudimentary for “serious” application programming (namely JavaScript) are becoming more important. This class will look at the nuts and bolts of Web Application Development, including HTML, CSS, JavaScript, and PHP, as well as the implications of viewing the web as a platform. We will look at the current landscape of web apps and services, including Mechanical Turk, Amazon S3, Facebook, and Google Maps, and learn to use these services in our own work. We will cover many popular libraries, such as JQuery, Blueprint CSS, and the Google Web Toolkit and App Engine. This class is for students who wish to learn the basics of how to make functional web applications. The class will start with a 2 week HTML/CSS intensive review, so students with no HTML/CSS experience should expect some extra work. More

Expressive Computing

This class approaches computation not only as a means of enhancing traditional expressive forms, such as video, photography, sound, and storytelling, but also as a medium for expression in itself. We will look at basic features of computing, such as interactivity and procedurality, and learn how to use them skillfully and intentionally. We will explore the history of computing to learn how we arrived at the modern desktop computing paradigm, how that shapes the medium, and how that is changing again today. We will use a variety of platforms including Processing and openFrameworks. More