Parsons The New School for Design
School of Art, Media and Technology
Tuesdays 7:00pm, 55 west 13th Street, Room 402
Instructor: Justin Bakse firstname.lastname@example.org
TA: Francesca Castelli email@example.com
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.
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.
The following outlines the main topics to be presented in each class. This may be adjusted during the semester.
Classes Begin 08/26
Week 1 08/27 Intro / Drawing
Week 2 09/03 Variables
Week 3 09/10 Flow Control
Week 4 09/17 Interactivity
Week 5 09/24 Movement and State
Week 6 10/01 Arrays / Functions
Week 7 10/08 Studio Assignment 1
Week 8 10/15 Classes and Objects
Week 9 10/22 TBA
Week 10 11/05 Studio Assignment 1 Crit / Studio Assignment 2
Week 11 11/12 Arduino 1
Week 12 11/19 Arduino 2
Week 13 11/26 TBA
Week 14 12/03 TBA
Week 15 12/10 Studio Assignment 2 Crit
At the completion of this course, students should be able to:
- Demonstrate knowledge of fundamental programming concepts
- Develop visual & interactive projects using Processing
- Experience delivering work to spec
- Present design process and work flow
- Integrate a variety of media elements into their projects
- Problem solve with other students
- Build on these skills for future work in their own design practice
Class format will roughly follow:
- Assignment review and questions
- Lecture on new material
- New material class activity, demo, or hands on time
- Introduction to assignment
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.
Students will complete weekly assignments to demonstrate understanding of course material. These assignments will be evaluated based on technical mastery and conceptual and aesthetic exploration. In addition two longer term projects will be assigned. These assignments will require deeper exploration, development, and application of course material.
- 45% Weekly Homework
- 20% Midterm Project
- 25% Final Project
- 10% Engagement
I will provide grade feedback on all assignments throughout the semester. Weekly assignments and longer assignments will be graded using the following rough guide. The weekly assignments are more technical in nature, and will be graded with less emphasis on concept development. Please note that work that merely meets all stated requirements is considered “C” work. This is because all asignments are designed to allow (and require) further, self directed exploration. Higher grades are reserved for work that demonstrates substantial effort and achievement in both technical skills and conceptual development. You are encouraged to think of assignments as starting points, and to build on top of them.
- F 0 – Did Not Turn In
- D 1 – Incomplete
- C 2 – Complete, Average Work
- B 3 – Good Creative/Technical Exploration
- A 4 – Very Good Creative/Technical Exploration
Your participation grade is based on class discussion, and postings on the class blog.
This blog will serve as an online space for this class. Each of you will have an accounthere, and you will post assignments here each week. You will also be able to review and comment on each other’s posted work — I highly encourage you to do this each week, 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. It will be hard to do well otherwise. This course involves a new way of thinking, and a new language, and a new set of tools. To learn any language or tool, you must use it. A lot. And homework is where you will use what we discuss.
Weekly homework will be due at before the start of class. Be sure to post your work to the blog before this time. This will give me time to review your work and prepare to talk about it the next day. Late postings will be marked down.
We will explain how to properly post work in class.
Homework will be graded from 0 to 4, corresponding roughly to a letter grade.
By appointment. Email to arrange.
Textbook and Materials
USB Flash Drive
You need to have a reliable way to store and transport the work you create in this class. A USB Flash drive is excellent for this. You should also make sure you store an up-to-date version of your work in multiple places at all times (e.g. on your flash drive, on your own computer, on dropbox, on a back up drive). You are responsible for storing your work safely so that it will not be lost for any reason, including corrupt or lost media. You are also responsible for making sure your work is availabe at class every week, regardless of network issues.
Required Text: Getting Started with Processing
This book is by Casey Reas and Ben Fry, the original developers of Processing.
This book is fairly short. It elaborates on the online reference documentation with a bit more explanation and some helpful examples. I will assign short reading assignments from this book each week to prepare you for the concepts that will be introduced in class and to supplement my lecture notes and help with your homework.
You must purchase this book this week as you have an assigned reading for the next class, it should cost under $20.
The Processing Development Environment (PDE)
This is application you will use to do most of your work. Available for free download from processing.org. There are also instructions on how to install.
A USB Arduino Board
We will use this for the 2nd part of the semester, starting at about week 10. You will need to purchase a board and some additional materials at that time. I will provide information about what to buy later in the semester.
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. 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.
We will spend a good amount of class time working together on coding projects. During work time, computers will be used. However, during a lecture, discussion or critique, computers must be closed or set to sleep. Note-taking can be done on paper. Nothing kills a conversation like a room full of people staring at screens.
Academic Honesty, Plagiarism, and Open-Source
All projects are to be completed by you individually; there are no group assignments. You are encouraged to help each other, but unless otherwise specified you must turn in your own work.
Code reuse is a complex issue in computer programming. Looking at existing 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.
Copy/Paste makes it easy to use other’s code without fully understanding it. It is important when using example code that you take the time to read, study, and understand it. In many cases this process can be improved by retyping code.
In a professional environment, the best practice is often to reuse existing code as much as possible. When learning however, it is best to do as much as possible from scratch.
With that in mind, you may use limited amounts of existing code in your homework. However, there is a very important caveat: any code you use, borrow, and/or modify must be labeled as such. If you study code closely but do not directly use any of it, you should still cite the code you studied in your own source. You must include the name of the author (even if it is me or a student in this class), 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.
Curriculum Continuity and Credit
I will be basing some of the structure and content of this class on Rory Solomon’s section from last fall. Much of this syllabus, as well as portions of weekly lecture notes and assignments will be adapted from his class. I suggest you visit his site for that class to see examples of past student work. There are several sessions of this class running this semester. If you have friends in another class I encourage you to compare notes.
Student Disability Services
In keeping with the University’s policy of providing equal access for students with disabilities, any student with a disability who needs academic accommodations is welcome to meet with me privately. All conversations will be kept confidential. Students requesting any accommodations will also need to meet with Jason Luchs in the office of Student Disability Services, who will conduct an intake, and if appropriate, provide an academic accommodation notification letter to you to bring to me. At that point I will review the letter with you and discuss these accommodations in relation to this course. Mr. Luchs’ office is located in 79 Fifth Avenue, 5th floor. His direct line is (212) 229-5626 x3135. You may also access more information through the University’s web site at http://www.newschool.edu/studentservices/disability/.