“Innovation has nothing to do with how many R&D dollars you have. When Apple came up with the Mac, IBM was spending at least 100 times more on R&D. It's not about money. It's about the people you have, how you're led, and how much you get it.” - Steve Jobs

Thoughts on CIID Summer School

For the last 2+ weeks I have traded in my teacher’s podium for a student’s seat in the studio. I was a student at the Copenhagen Institute of Interaction Design (CIID) Summer School.

Computational Design

Click to see my collection of screens

My first week was spent in a course titled Computational Design. I’ve only in the last year been introduced to this term, and from the context of my introducer I thought I understood what it meant, or more accurately limited my understanding to what it could mean.

The course was taught by Patrick Kochlick of The-Product.org. The classes were mostly focused on teaching students about how to manipulate screen graphics by using a relatively new programming language called Processing. While the students had a range of programming experiences in reality, almost all of the students thought that this class would be in some way an introduction to programming, which in many ways it was. But more than a programming class the teacher introduced many of us to generative creativity. Applied to sculpture & interactive art & service design almost equally, the primary concept is to allow the tools of programming & computation (in this case) to generate or produce emergent properties that the artist/designer can learn to be in dialog with. Thus, forgoing the typical constructivist ideal of controlling & mastering a medium or material towards producing a refined and defined vision.

Processing, being just a framework on top of Java, feels more like a scripting language akin to JavaScript, and so wasn’t so hard to pick up as much as to let figure out a new dialect & learn a new object model.

While I definitely learned a lot that I can take with me, I didn’t learn what it is that I wanted and came for. While the concept of generative computational art (definitely didn’t reach to design, yet) was interesting & I feel a new awakening now when I think about upcoming classes I’ll be teaching in Service Design, it was not what I needed at THIS moment, nor is it what I believe should be a part of an introductory course in Interaction Design.

On the flip side though, the exercises were very thought out. Simple example walk through, followed by request to expand & extrapolate & combine learnings throughout. But all the exercises assumed that you learn code like marble. Hit it with a type of chisel and see what happens. There was never a reverse moment where the student was given a complex completed outcome & asked to replicate it–construction. Actually, it is deconstruction.

This is when, I just had to put my teacher hat back on & offer this observation. Patrick thought that everyone doing the same thing would be boring–my thought was, “for whom?” But I really appreciated what Patrick came up with. He decided that each student would pick an outcome from the previous exercise of another student and replicate that. This way we all had something different to do, and then we were allowed to expand on it. Many of the students have commented how this worked for them.

What was missing the most for me, why I do interaction design, was interactivity. A programming class that didn’t explore more complex interactivity of data entry, beyond mouse movements, and information feedback, felt hollow. At the very end we got a small tease of this, but just a tease.

I loved thinking if code as clay with both additive and reductive properties. I loved being forced to think about what I see visually as a new data source, and I really enjoyed seeing what could emerge from the computation as a cybernetic extension to our own existing creativity.

Physical Computing

Click to se my photo album from this class.

The next week’s workshop was taught by Massimo Banzi one of the creators and leading forces of the Arduino open source hardware project. The workshop was called Physical Computing and unlike the ambiguity of the previous week with mixed expectations, this week was as advertised.

I will characterize my experience in this workshop as a true battle between myself, myself, my environment and a teaching style I use, but never faced. My students will recognize with a spirit of sweet revenge what I describe below.

The first thing you need to know about using Arduino for physical computing is that “It’s Simple”. That is if you think understanding the complexities of both electronics and code, and bumbling around search engines to find predecessor examples of which there are man, and executing all these 100s of steps together using tools and combining systems you have no familiarity with “simple”. Of course, Massimo himself did declare, “I didn’t say it was easy, just simple.”

The point of the class is to learn how to use Arduino to sketch tangible interactions. The system is combination of standard electronics that connect to the Arduino board [insert picture from LED exercise]. Then using Arduino’s computer language, which like Processing is really a framework on top of Java. It’s Integrated Development Environment (IDE) is practically the same as Processing (with a few quirks).

For people unfamiliar with physical computing, the beginning of the class was really an introduction to standard electronics. You have sensors and you have actuators and you have the code that connects them. Circuits, which are always loops of some sort or another. Those loops start with power and end with a ground and have a positive and a negative. Power cycles through the loop. Sensors fluctuate the power through the loop and actuators accept power from the loop. All the power is managed from Arduino board itself which gets its power either from a USB cable or an outside power source.  “Simple!”

Once we had that introduction into the basics, we jumped right in to see it come alive. Making a light blink for example as simple as creating code that infinitely loops and for each loop the code says add power to where the light is connected, wait, remove power, wait. “Simple!”

The day continued with other “simple” exercises: make the light dim. Make it dim on & off in a loop, use a button to make the turn on, then off, use the button to make the light dim. Hold the button to make the light dim. Create a state that allows you to know if the person is holding the button down and for how long and if they hold it for X seconds then do 1 behavior if for Y seconds do another. Now use a potentiometer (knob).

The day ended with us going into pairs finding a game built in Processing and use your arduino to control it. (I got out of this because I had to meet a friend and couldn’t stay for the late night.)

The next day we learned about different sensors like light sensors, accelerometers, tilt switches, temperature sensors, etc. We played with them a little here and there and then thrown into having to create an object that communicates emotion, just like that. First day, create emotion from a combination of sensors and motors. Seeing some of these experiments were fantastic and demonstrated the way the system is so good at allowing the designer to explore possibilities, quickly execute and then experience it. Simple things like just adjusting a delay, or change another variable (power variance) could radically change a sound or motion from happy to sad or to outright scary.

But this epitomized Massimo’s style of learning by basically saying, here is A, B, C. Now you know there is an alphabet, not figure out the other 23 letters, and go figure out how to write “Ulysses”. Ok, not a Joycian epic, put even creating “Where the Wild Things Are” is a challenge when you only know 3 or 5 letters when you start.

The last project was even “simpler”. Just make something related to time. This group project was so much fun for all, but also frustrating as with 2 days the level of expected complexity in the system was exponentially greater in scope not just of the electronics, but also the physical design itself. We learned that the holistic system is reflexive and that a change in what seems the most disconnected pieces can have a dramatic impact.  Something that worked “out of the box” once put into the box would cease. In our case, wires kept dislodging every time the system moved, or motors got clogged with cotton balls as we went from an open-back gorilla to trying to sew it close.

During the course of this week, I started out comfortably bewildered, to outright drowning in lack of direction, to finding my way out of the jungle and becoming the lead coder on my final project. It was both infuriating and invigorating and convinced me to keep up my own methods of teaching students to teach themselves instead of just giving them knowledge.

In the end, the 2 weeks was a great and useful time. I learned a lot not just about computers and interaction design, but about myself, teaching and learning.

Thank you CIID, Patrick and Massimo for making all of this worthwhile, educational, and most of all fun.

I hope they continue teaching these workshops and more students take the opportunity to go.

As a final note, the international classroom, filled with multiple languages and points of view was my other favorite part.

Be Sociable, Share!
  • http://twitter.com/nonlocal Adam Little

    Thanks for sharing, Dave. I enjoyed reading this. Also glad to see that in true CIID fashion you managed to incorporate a Tuborg into your work.


The archives run deep. Feel free to search older content using topic keywords.