Programming for Designers (2017): Programming for Interactivity

Programming is a much too exciting, inspiring and powerful way of creative expression for game designers, to not get involved and leave it to tech people.
I 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.) Within interactive applications, initially, the computer has been used and it is still used as a tool to model other media, that is, 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.
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. Software (and money) make the world go 'round, together with hardware, networks and machines; but at the core of it all are algorithms - automatic, dynamic, interactive logic. This is what the amazingly successful computer phenomenon is about; the digital revolution is an algorithmic revolution.
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, encounter object-based and event-driven programming, and implement a basic multiplayer game - and to see how programming can benefit significantly their own design practice. 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.

The course is an introduction to the basic concepts of computing and programming using a general-purpose language such as 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 skil

Topics include: Basic graphics, variables, loops, decisions, arrays, functions, motion, time, fonts, collision, classes and object-based programming, event-driven programming, mouse, keyboard, images, time independence, a short history of computing and programming, scripting Unity, recursion, reading documentation, and debugging.

Daniel Cermak-Sassenrath. Programming for Designers: Programming for Interactivity, Course, ITU, Copenhagen, Autumn 2017.