creative computing : spring 2012

home | syllabus | class blog | students | resources

PUDT 1203, section A (CRN 2098)

section A, Tuesday, 6-8:40pm, 55 W 13th St, room 306

instructor: Rory Solomon

course description

This course will introduce students to the building blocks of creative computing within a visual and media environment. Students will learn to create dynamic images, type and interfaces, that can translate into print, web and spatial forms. Through weekly problems, students will learn programming fundamentals that translate to virtually all programming platforms and that will later be paired with various other methods for creative output.

what does that mean?

This course will: introduce you to Processing and Arduino; teach you how to program, or improve your fundamentals if you've previously done programming; introduce you to physical computing; provide an opportunity to make some really cool stuff.

background and context

Design and technology are inextricably linked. In your career you will almost certainly be designing for new technologies, and also using new technology to produce and stimulate your designs.

At its core, the objective of this class is to teach you how to program — or if you are already familiar, to strengthen your fundamentals. At a broader level, our goal is to familiarize you with new technologies to the point where you are comfortable approaching new ones; to allow technology to stimulate creativity, to make you a better designer and artist.

You will encounter these technologies again in future coursework, though maybe not directly. Even if you can't apply all details that you learn here (like programming language syntax), you will be able to apply the concepts (like if statements and loops) to many if not all of your future classes.

learning outcomes

At the completion of this course, students should be able to:

structure

Class format will roughly follow:

  1. homework review and questions (30 minutes)
  2. lecture on new material (45 mins)
  3. hands-on work related to lecture (25 mins)
  4. break
  5. lecture on new material (45 mins)
  6. hands-on work related to lecture (25 mins)

We will usually start by reviewing last week's homework and answering questions. Then introduce new concepts, and provide time in class to work with the new ideas and start your homework.

grading

50% - homework
25% - midterm project (covers first 10 weeks of material)
15% - final project (covers last 5 weeks of material)
10% - participation

I will provide grade feedback on all assignments throughout the semester. Your grades will be posted by your student ID number instead of by name for your privacy. This way, everyone will be able to see all grades, so you can anonymously see how other people are doing. If you would rather not have your grades shared in this way, please speak to me privately.

Midterm and final projects will be worked on individually..

Your participation grade is based on class discussions, questions in office hours and email, and discussions on the class blog.

class blog

I have created an online space for this class here: Creative Computing. It is a Wordpress blog site. I will create an account for each of you there, and you will use that to post assignments.

I will also use this occassionally to provide feedback about your work through comments. You will also be able to comment on each other's posted work -- I highly encourage you to do this from time to time, and doing so will help your participation grade.

homework

Homework is probably the most important part of this class. If you do the homework regularly and keep up, you will do well. And it will be hard to do well otherwise. This course is about a new way of thinking, and a new language or tool — to learn any language or tool, you must use it. a lot. And homework is where you will use what we discuss.

Weekly homeworks will be due at midnight on the night before class (ie, Monday at 11:59pm, just to be clear). This will give me time to review your work and prepare to talk about it the next day. Late postings will be marked down.

To post your assignment, create a new Post. Any code should be in a file attachment as a .pde file. Please: The title of the post should indicate the assignment, eg, "week 3 homework". You don't need to put your name in the title. Any non-code writing can be in the body of the post. Any other attachments can be .txt, .ppt or PDF files.

Homework will be graded from 0 to 4, corresponding roughly to a letter grade.

office hours

By appointment. Email to arrange. I will always promptly respond to email, so feel free to ask questions there.

textbook and materials

other related, but highly-optional texts:

policies

Attendance. We only meet once per week, and we have a lot of material to cover so attendance is important. I will be strictly abiding by the New School attendance policy which says that for a once-a-week class, you are allowed 2 absences. Any more for any reason and you will be dropped from the class. Two late arrivals or early departures will count as one absence. Coming back late from class breaks counts as arriving late. Using youtube, myspace, facebook, IM, etc during class will count as an absence for that day.

Laptop Policy. We will spend a good amount of class time working together on coding projects. During work time, computers will be used (lab machines or laptops). However, during a lecture, discussion or critique, laptops must be closed. No exceptions. Note-taking can be done on paper, and if you want to follow along by typing code, you can use the lab machines. Nothing kills a conversation like a room full of people staring at screens.

Academic Honesty, Plagiarism, and Open-Source. You are encouraged to work in groups, but unless otherwise specified you must turn in your own work. Copying/pasting and re-using code is a key part of the programming process — especially while learning. You often learn best by modifying working examples rather than starting from scratch. We stand on the shoulders of giants — that's the essence of the open-source philosophy. However, there is a very important caveat: any code you borrow and/or modify must be labeled as such. That is, you must include, in your work, the name of the author, the source URL, and you must make clear which lines of code are not yours. If you fail to do this, you will fail the class. It is very, very easy to get this right, though, so if you take a moment's time to label your work correctly, you will not have a problem. Just be diligent and honest.