General Information

i

DM7021: Introduction to Creative Programming, Fall 2007
Digital+Media Dept., Rhode Island School of Design
Wednesdays, 11:20AM - 4:20PM, CIT Room 305

Catherine D'Ignazio, professor
kanarinka@ikatun.com
AIM: kanarinkabot
Yahoo: kanarinkabot
GoogleChat: kanarinka

TA: Clement Valla - cvalla@risd.edu

Lab Hours: 9AM - 11:20AM before class, 4:20PM - 6PM or as needed after class

Important Information

del.icio.us: Upload all presentation links and final project links to delicious
Username: emergent
Password: digital

FTP Server: dm.risd.edu
You all have FTP accounts with your DM username & password. Email me if you have problems FTPing.

Course Description

This course will teach basic programming concepts with a focus on Processing and web-based applications. Beyond basic cross-language technical skills, the course will also ground software practices in a critical context to examine how and why contemporary artists choose to use software, how software written by artists gets used and disseminated via the web, and how software practices intersect with traditions of performance art and public art. Students will create case studies of software-based art projects to gain greater understanding of the social, political and technological forces at work in software development. The course will explore variables, functions, data structures, loops, conditionals, web architectures -- and various approaches to the software development process -- iterative design, debugging, unit testing, usability. Students will collaboratively experiment with different programming languages such as ActionScript, PHP and Processing along with XML and mySQL data sources to develop web-based software projects.

What the Course Is Not

This class is NOT a step-by-step introduction to any particular technology. It's an opportunity to solve problems with a number of different technologies (and to think about what kinds of problems are worth solving). What you will learn in this course will help you learn all of the technologies in your future.

This is a studio course, which means there will be a lot of small, hands-on assignments and work completed in the laboratories during class. This class will use several programming technologies to teach basic programming concepts. However, there is a lot of latitude to use some of the in-class assignments and the final project to explore other technologies that are not dealt with explicitly (RSS, XML, Java, DHTML, XHTML, CSS, and so on). I encourage you to be ambitious with your projects and use this as an opportunity to learn a technology that is useful to your own work as an artist.

In addition to in-class coding, there will be technical presentations (mostly by the professor), contemporary software project presentations (mostly by the students), a hand-written programming sketchbook, visiting artists, and demos. There will hopefully be lots of discussions, questions, and interesting disagreements, too.

While you will produce a series of small things (programs & code) in this class, your main project will be a well-organized technical and conceptual proposal for a final project along with a small prototype or component of this project realized in code. While the conceptual proposal needs to be detailed and thorough, the prototype needs to be small, incomplete and full of bugs. You will demo this prototype for the class.I highly encourage you to work collaboratively on this project with people inside & outside this class.

How to Stay Sane While Programming

1. Don't learn information. Learn how to find information.

2. Programs always break. Always. Nothing ever works ever. Learn how to debug.

3. Don't think in products and results, think in versions and iterations.

4. Steal other people's code! No need to make things that have already been made - that is inefficient!

5. Don't stop with Google. Utilize all resources to find a solution to a problem - Ask colleagues, hire an intern, post to mailing lists, email an expert. Learn only as much as you need to know to solve your problem. Then move on.

top

¤

Course Requirements

  1. FINAL PROJECT: 30% Due in class Dec. 6th. Requirements:
    1. Project Form: a small webpage/website
    2. Uploaded to: THE DM SERVER, see above FTP info
    3. Your page/site should include:
      1. Description of project with sketches and images
      2. Prototype/demo of the project in action
      3. Source Code for the project downloadable for the user
  2. In-class assignments, participation & skill-sharing: 30%
    Each student is responsible for attending class, completing in-class assignments and participating with feedback, salient questions, new directions and so on. You will also be called on to share your skills and help each other - technically, conceptually and so on.
  3. Presentation OR Technical Workshop: 20%
  4. CHOOSE ONE:

    A 30 minute presentation to the class about 3-5 projects that use software to make art, architecture or design works. Make this about the work, not about the artists/designers.

    OR

    A 30-minute demo/workshop of a particular software technology and creating a participatory activity where we can learn it.

  5. Everyday Programs Sketchbook: 20%
    Each day of class, students will turn in a hand-written program created in class. This program does not have to work (See how easy this class is?). With your permission, I would like to publish these at the end of the course as an electronic book with a share-alike Creative Commons license on my site www.infinitelysmallthings.net.

top

Policies

LAPTOPS & COMPUTERS: No laptops or computers should be on during class discussions & critiques . No exceptions.

LATE PEOPLE: Each time you arrive late to class your class participation grade will drop by 1 percentage point.

LATE ASSIGNMENTS: Each day that your assignment is late, it will lose one grade percentage point.

ABSENCES: If you have more than one unexcused absence you risk failing the class.

top

¦

Calendar

Wed, Sept 12, 2007: Yoko Ono and Programming

Wed, Sept 19, 2007: Saying Hello World

Wed, Sept 26, 2007: Variables, Data Types and Operators

Wed, Oct 3, 2007: More Variables, Data Types and Operators

Wed, Oct 10, 2007: Loops, Conditionals and Functions

Wed, Oct 17, 2007: Optional Class - Open Workshop

Wed, Oct 24, 2007: Arrays, Complex Data Types, and HTML Forms

Wed, Oct 31, 2007: Arrays, Forms, Request/Response

Wed, Nov 7, 2007: More on Arrays & Forms

Wed, Nov 14, 2007: The Database is your friend

Wed, Nov 21, 2007: HOLIDAY, NO CLASS

Wed, Nov 28, 2007 - Work on Final Projects

Wed, Dec 5, 2007

Wed, Dec 12, 2007: STUDIO REVIEW WEEK, NO CLASS

top

"