Assignment 1: Programming in Processing


Week 1: Getting Started, due Monday Sept 27th

You're highly encouraged to meet outside of class and work on the assignment together, but everyone must get significant (> 50% time) hands-on experience. We'd like the "programming newbies" to learn something about programming and get comfortable in the Processing programming environment. We'd like more experienced coders to spend time with a newbie coder and help them implement something. The newbie should be sitting at the keyboard most of the time, and the helper should resist the urge to "grab the keyboard" and do it themselves. In addition, the instructors are available outside of class, send us email!

Set up your Programming Environment:
Get Processing version 68 (http://processing.org/download/index.html). If things don't work, you may need to get Quicktime (http://apple.com) -- the version without iTunes -- and do a custom install, selecting "Quicktime for Java". You may also need to get the latest Java (http://java.sun.com) -- j2se1.4.2, standard edition, software development kit (SDK).

Play with example programs:
There are lots of simple & more complex programs available online. Play with a couple of them from the webpage, and then "look under the hood" of some simple examples. Copy & paste the source code into your Processing Programming environment (run processing.exe). Make small edits to the program. Predict how the program behavior will change and then run the program and see if you were right.

NOTE: some of the examples from Simon's class won't work unless you've installed his Particle Systems plugin (more on this next week) or the MultiProcessing plugin. Also some links may be broken.

Learning about Processing:
The Processing website (http://processing.org) is an excellent resource. Look at the Learning => Examples section (http://processing.org/learning/index.html) and familiarize yourself with the Reference sections (http://processing.org/reference/index.html).

Learning about Programming:
Java/Processing is a particular programming language/environment and the reference pages will help you figure out the syntax/system calls/basic operations (like drawing to the screen, opening an image file, etc.) Like other programming languages, Java/Processing has reserved keywords and certain built-in functions/procedures. This is all documented in the reference pages.

After getting past the syntax and idiosyncracies of a particular programming environment, all programming languages have a number of common programming concepts. These include variables, loops, and the ability to write your own functions/procedures and classes. Learning how to manipulate these high-level concepts is learning how to program.

Timeline:
Spend about 6 hours on this part, outside of class. Plan on at least 2 sessions in front of the computer. Send us a short email (due Monday Sept 27th, before class) with a description of how you spent your time, what was fun, and what was frustrating.


Week 2: Implementation, due Monday Oct 4th

In this part of the assignment we'd like you to demonstrate what you learned last week. Come up with a plan, and execute it. Try to incorporate each of these components in your applet:

Programmers with more experience should prototype a solution to a small problem related to this seminar. You may want to use Simon's Processing extension plug-in for Particle Systems (we'll provide a link to this soon).

This is an individual assignment, but again you're encouraged to meet up outside of class so you can help each other when you get stuck. The instructors are available outside of class, send us email!

Timeline:
Spend about 6 hours on this part, outside of class. When you're done, send us email with a link to a webpage with your applet, and a short writeup (just a couple paragraphs).