Programming for Designers (2019): Graphics Interaction Magic

We believe programming to be an exciting, inspiring and powerful way of creative expression, and an essential skill for game designers. To know something about programming is arguably the only way to use a computer to full extend and to substantially participate in and contribute to the brave new digital world. This course offers a potentially disruptive change of perspective, and participants will experience the world of digital media in a different way, and be able to participate and contribute in ways they could not before.
This course is all about the application of programming in practical, genuine design challenges; not about gathering abstract knowledge, to be used in the future in some other context, or in other courses; but hands-on skills, to be used here and now. The course aims to facilitate the making of projects people want to have. And this does not imply little learning or learning on a low level. But learning that centres on motivation.
We believe the most interesting things to program are interactive systems for people to use productively, express themselves and play with each other. (There might be one or two other approaches, but for this course, I suggest to focus on interaction.) The computer has been used and it is still often used as a tool to model other media, for example, to paint pictures and cut movies. But increasingly, the computer is coming into its own, and people start to question its uses and experiment with it, and interact with it in novel, provocant, and playful ways that were unimaginable before, and which have no precedent.
For participants who have not done any programming before, it may take a few weeks to get into computational thinking, and to understand how programming works, recognize and use the handfull of structures, employ object-based and event-driven programming, and implement a basic multiplayer game - and to see how programming can significantly benefit their own design practice.

The course is an introduction to the basic concepts of computing and programming using a general-purpose language (Processing). It is intended for a general audience with no prior programming experience, and taught with an emphasis on user interaction and graphics.
As an introductory course, there are no prerequisites. Except a wild curiosity and the willingness to learn a challenging but rewarding skill!

Topics include: Basic graphics, variables, loops, decisions, arrays, functions, motion, time, images, collision detection, classes and object-based programming, event-driven programming, real-time input controls, hardware speed independence, frame-based animation, tiling, audio, simple game AI, and an introduction to physical computing with Arduino.

Daniel Cermak-Sassenrath, Max Wrighton. Programming for Designers: Graphics Interaction Magic, Course, ITU, Copenhagen, Autumn 2019.