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
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.
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.
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.
Class format will roughly follow:
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.
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.
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 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.
By appointment. Email to arrange. I will always promptly respond to email, so feel free to ask questions there.
required reading: I write up and post weekly lecture notes that give you a recap of all that we talk about in class that week, usually including code examples. These are incredibly helpful when working on the homework for that week. If you have questions about a particular topic, it is best to go here first. If you think these are helpful, or if you think they are confusing, or if you have any suggestions for how to improve them, I would love to hear!
required text: Getting Started with Processing, by Casey Reas and Ben Fry.
This book is fairly short. That is a strength and a weakness. It elaborates on the online reference documentation with a bit more explanation and some helpful examples. I will assign short reading assignments from this to supplement my lecture notes and help with your homework. You should purchase it as soon as possible online, it should cost under $20.
the Processing development environment (PDE)
This is where you will be doing most of your work. Available for free download from processing.org. There are also instructions on how to install.
an Arduino Board (USB)
We will use this for the 2nd part of the semester, starting at about week 10. You need to purchase an Arduino kit by then. I recommend this one from adafruit.com:
Budget Pack for Arduino Uno for $49.50I recommend adafruit.com, but they are also available from other places, such as sparkfun.com and amazon. I will also have some equipment to loan if you need it.
If anyone has any trouble purchasing the book or any materials for any reason, please come and see me and I can loan you or work something out.
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.