IAAC Editor


MAA 01

Introduction to Programming and Physical Computing 
Tutors : Ángel Muñoz, Angelos Chronis
Physical computing expert: Cristian Rizzuti

The Introduction to Programming course will give students an essential introduction to the world of open source programming languages and physical computing. In 7 weeks students will simultaneously learn basic programming and physical computing concepts. This will equip students with the necessary hardware / software to integrate interfaces, visualizing methods, data sensing, and actuations to conduct more advanced research and architectural proposals with embedded technology. We will start with the basics of the Processing language, to generate interactive media and visualized data in the digital domain. Next, students will be introduced to the Arduino IDE and microcontroller as a platform to create devices that interact with their environment using sensors and actuators. The course will conclude with an exercise in combining Processing with Arduino, as students will be pushed to create a synchronous and meaningful interaction between the digital and physical realms. Students are similarly encouraged to use the code based tools to explore data visualization and physical computing as applied to their studios, in processes that they can integrate in their projects in following semesters.

The course will be divided into Processing and Arduino interchanging sessions. The goal is to progressively build a communication channel between the two languages and between the physical and digital layers of programming.

Session 01: Introduction to Programming – Data, Variables, Conditionals and Loops
Session 03: Drawing in 3D – Transformations, Functions, Serial Communication (Arduino)
Session 05: Object Oriented Programming – Objects and Classes

Session 02: What’s electricity and electronics?, Arduino Software and Board, Hello World
Session 04:  Potentiometer(AnalogRead), Light sensor, PWM
Session 06:  Transistors, DC motor, Servo motor, Serial communication
Session 07:  Final presentation


There will be a total of three assignments with different weight on the final grade:
One small assignment in Arduino(2 points)
One small assignment in Processing (2 points)
One Final assignment (6 points)
Attendance and participation in class will also affect the grade


Massimo Banzi, Make: Getting Started with Arduino: The Open Source Electronics Prototyping Platform, 2014
Simon Monk, Make: Action – Movement, Light, and Sound with Arduino and Raspberry Pi, 2016
Adam Greenfield, Everyware: New Riders, 2006
Tom Igoe, Making Things Talk: O’Reilly, 2007.
Joshua Noble, Programming Interactivity: O’Reilly, 2009.
Greg Borenstein, Making Things See: 3D vision with Kinect, Processing, Arduino, and MakerBot: O’Reilly, 2012.
Daniel Shiffman, The Nature of Code: Simulating Natural Systems with Processing, The Nature of Code, 2012
Daniel Shiffman, Learning Processing, Second Edition: A Beginner’s Guide to Programming Images, Animation, and Interaction, Morgan Kaufmann, 2015