11 April 2012

Algorithmic thinking with Processing

workshop with Phillip Kent & Brock Craft

Syllabus overview
This workshop is about algorithmic thinking – how to think in ways that draw on mathematical concepts to create computational procedures that can be expressed as computer programs. And then run to get results. We use the Processing language as the vehicle for this, because it is well-suited to the kinds of projects and tasks which are of interest to design and communication. There is a wealth of existing projects available online to use and inspire, covering visual arts and graphic design, sound, music, video, installation and live performance. Processing is “low threshold, high ceiling” – intended to be simple to start to use, but powerful enough to create complex programs.

We invite you to learn the basics of working with Processing (or any other programming language), and will introduce a selection of types of algorithms. The main part of the workshop will involve a programming project to design and develop a program that applies algorithmic ideas to an aspect of design of your own choosing and interest. To encourage new ideas, we ask you to work with a partner whose background and interests will differ from your own.

This form of this workshop is a work-in-progress and you are asked to participate in how the workshop can be shaped to be more effective in future presentations, and to develop the work of DesignScience.

“Options are what everyone has on computers, but I don’t think they are the same as possibilities” – Thomas Schütte

“Mathematics is, to a large degree, a body of techniques for transforming one kind of information into another. Working a maths problem is akin to decoding a message. The decoding techniques of mathematics are collectively known as algorithms, a word derived from the name of the 9th Century Arab mathematician al-Khuwarizmi. Al-Khuwarizmi wrote a book on the art of calculating with the then unfamiliar “Arabic” number notation that we all use today. In modern times, the science of programming computers is sometimes known as algorithmics.”
(Rucker, page 30)

Learning Aims
The goal of the workshop is for participants to explore algorithms and algorithmic thinking, and to learn how to express ideas and create with the Processing computer language.

Part 1: Algorithms and Processing
1.1 Text

EXERCISE: DownUpText
Key Ideas: structure of Processing program, variables
1.2 Image/Drawing

EXERCISE: RandomPlot, Waveforms
Key Ideas: Coordinate space, graphical objects, Randomness, putting objects at mouse coordinates, using text in Processing
1.3 Sequence (Animation, Time-based processes)

EXERCISE: Circular motion, Clock
Key Ideas: Coordinate systems, System data (eg. time and date)
1.4 Interaction

EXERCISE: Keyboard and Mouse interactions
Key Ideas: keyboard events, mouse events
1.5 Transformation
Mathematical rules for changing information.

EXERCISE: Image processing
Key Ideas: images as data, changing and manipulating pixels
Part 2: Design and program project
Inspirations
Robert DIXON (1987). Mathographics. Oxford: Blackwell (reprint Dover Publications, 1991).
Casey REES & Ben FRY (2007). Processing: A Programming Handbook for Visual Designers and Artists. MIT Press.
Rudy RUCKER (1987). Mind Tools: The Five Levels of Mathematical Reality. Boston: Houghton Mifflin.
TERZIDIS, Kostas (2009). Algorithms for Visual Design Using the Processing Language. Indianapolis: Wiley.

Leaders: Phillip Kent and Brock Craft
p.kent@ioe.ac.uk, thatbrock@gmail.com

Processing

Output from a simple program using trigonometric functions to create Op Art (Bridget Riley) type pictures. © Phillip Kent.