Advanced Web Programming

School of Visual Arts, MFA Computer Art
Fall 2004
Instructor: A. Deck


This class is designed for artists who want to learn advanced techniques that are relevant to artistic practices involving the Internet. It is not a step-by-step program for learning any one particular language. Since the technologies used for communication change over time, so do the topics of this course.
The best conclusion for this class would be for each person to present different work that demonstrates concentrated effort. In other words, since each of us are unique individuals with differing perspectives, I would like to see that in the work each person produces for the course. Imitation is easy. In the 90s, I saw dozens of student presentations, programmed primarily in Lingo, that implemented a kind of digital, interactive jigsaw puzzle. People just kept re-discovering this ultimately boring idea. More to the point, people found the source code for this phenomenon. In this age of search engines and file sharing, it is all to easy to find, decompile, deconstruct and reinterpret existing codes. This is why, in my opinion, genuinely interesting projects should start with thought and dialog rather than with distracted browsing at the portals of various toolkit vendors like Macromedia.
This course will cover scripting techniques used in Web programming focusing primarily on PHP and Actionscript. An attempt will be made to integrate browser-based scripting and server-side techniques. Of particular concern will be the technical foundation for meaningful interactivity using the Internet. Students will be expected to conduct out of class research concerning the programming techniques demonstrated in class. They must learn to coordinate their use of various languages (Javascript, HTML, PHP, Actionscript). Debugging of programs, and the Document Object Model that underlies Dynamic HTML will also be covered. Students will continue their programming education, covering client server communication, application servers, file and socket operations, ECMA script, and databasing. The final project will consist of a personal project that demonstrates knowledge they have developed.
The grades will be based primarily on the art made with the techniques taught. There is not an imperative to use all the techniques! This is not a conventional computer science class. Please don't forget that, really, although making codes execute correctly can be amusing, it's not necessarily art. What do the programs do? Why should anyone care? These are questions that should not be left to the last months of a graduate education. Does every little thing need to be more than an exercise? Probably not. But it would be unfortunate if this class concluded without some interesting art developing....