Processing

"[|Processing] is an open source programming language and environment for people who want to program images, animation, and interactions. It is used by students, artists, designers, researchers, and hobbyists for learning, prototyping, and production. It is created to teach fundamentals of computer programming within a visual context and to serve as a software sketchbook and professional production tool. Processing is an alternative to proprietary software tools in the same domain. Processing is free to [|download] and available for GNU/Linux, Mac OS X, and Windows."

Get used to the environment
Skim through the [|getting started tutorial]. Go learn [|how to draw pictures with Processing]. Now, draw a creature of some kind (you know, a snowman, an alien, or whatever...). First draw the creature on paper, then do it using Processing. Make it as fancy as you want. Hand both the paper copy and electronic copy in when you are done.

Object Oriented Programming
Go [|read about object oriented programming]. This is a HUGE topic, and an entirely new conceptual model for you to wrap your head around. Most (all?) large scale programming endeavours use OO. Overview of how we will investigate OO programming:
 * work through the code listed above together (create an OO car)
 * play around with cars (add different attributes/methods)
 * turn the creature you created into an OO creature, giving it extra attributes and behaviours (eg. monster code (non OO) (OO) )
 * do the Processing Object Oriented Assignment

Two dimensional arrays
Go [|learn about two dimensional arrays]. Now, adapt the code from Example: 2D Array of Objects (by which they mean objects as defined in the previous reading). You are to double the size of the grid, but keep the size of each individual cell the same as the original. Then, add some color to the sketch. You might need to go check out a [|tutorial on using color] in Processing. The final result of your adaptations could look something [|like this].

Resources

 * [|Learning Processing Examples]
 * [|Programming in Processing Textbook]
 * [|Comparing Processing to Python]

Delving Deeper
Processing is seriously powerful, yet eminently readable. For some really interesting examples of what you can do with Processing, you might want to check out [|The Nature of Code] (college level stuff, but I'm sure you can figure it out if you're interested enough).