Course Syllabus


0. Course Subject and Workload.
True literacy means being able to both read and write. If using pre-existing software (such as Photoshop) is akin to “reading” digital media, then programming is the equivalent of writing. This course is concerned with developing your ability to be literate in this way -- specifically, creating software to satisfy aesthetic, personal and/or social motivations. Now think back to how long it took you to learn to read and write English. And how much longer it took for you to learn to write articulately, fluently, precisely, and economically. And how much longer it took before you developed a clear voice of your own. Learning to write software is similarly difficult. We have a lot of catching up to do, and this class is a LOT of work. If you already know the mechanics of writing software, this class is even MORE work, because you must cut your own path towards finding your own artistic voice in this incredibly impersonal and difficult medium. No two ways about it: this class is a TON of work. If your desire to be computationally literate is just velleity -- a mere wish, unaccompanied by effort to obtain -- drop the course now.


1. Enrollment.
"Waitlisted" students should not be concerned about their status as such. This status is assigned automatically by the School of Art in order to prioritize seats for CFA students. Additionally, flaws in the registration system encourage many students to over-enlist; as a result, many students both waitlisted and registered will never show up. Consequently there is no shortage of places in the class and you should all consider yourself enrolled. After a couple of weeks pass, and the roster has settled down, I'll add all of the waitlisted students adminstratively.


2. Course Programming Environment.
This semester we will once again be using the Processing development environment. This is a free, cross-platform, comprehensive educational system for developing interactive graphics and other computational systems. I am happy to report that we will be using some of Processing's latest OpenGL-based features. Additionally, we will also be among the first people to test-drive the new Processing textbook, which is not yet published or available in stores.

To get started with Processing, please download the latest distribution from: http://www.processing.org/download/. If you're on a school PC, you may need to download into a temp directory. Extract the compressed download, and run "Processing.exe". Load up an example program, using the menu, for example: File|Sketchbook|Examples|Drawing|ContinuousLines. Press the play button (right-pointing triangle) to make the program run.


3. Coursework Management System: How to use.

Step 1: You will first need to create a (successfully-compiling) program in Processing, and then "Export" (Control-E) the project into a compiled applet. This will yield a .jar file (a "java archive" file, which is created for you in the Processing Sketchbook in your "My Documents" directory when you do the Export) -- which is the file you will need to upload to the courseware website. On a PC, this file will be located (by default) at: My_Documents|Processing|mySketch|applet|mySketch.jar, where mySketch is whatever name you saved your sketch with.

Step 2: To upload the file, log in to the following web site: http://artscool.cfa.cmu.edu/~levin/courses/dmc/iig_06f/login/ (Your user names and passwords have been sent to you by email.) Type a short description of the project in the "Description" field; copy-paste your code into the "Code (if Any)" field; and upload the .jar file into the "Medium" field. You will also need to specify the width and height of the applet's rectangle. Leave the "Photo" field blank for now. Press the button to submit the exercise.

Step 3: In a *separate* saving operation, upload a 100x100 pixel image of your project into the "Photo" field.