Programming for Game Designers (2016): Interaction for the People

We program to create interactive systems for people to use productively, express themselves and play with them. This is the only reason to do it (there might be one or two other reasons, but for this course, I suggest to focus on interaction).
Not limit ourselves to use what somebody else has done, but to take control and create what nobody has done before! I believe the most interesting things to create are interactive systems. That is, not to use the computer as a tool to do what we have been doing already, e.g. painting pictures or cutting movies, but to interact with it in novel, provocant, and playful ways.
Being able to program is the only way to seriously create such systems, to have full control, to even know what to ask and look for in tools and engines. In short, to be able to use a computer to its full extend means to know something about programming. This is what the amazingly successful computer phenomenon is about; the digital revolution is an algorithmic revolution, and not about storing data, speed, 3D graphics or communication, but about interaction.
For participants who have not done any programming before, it will take a few weeks to get into this mode of thinking, understand how computers work, recognize and use the handfull of constructs, move to object-based programming, finally implement a basic multiplayer game. This course offers an interesting change of perspective, and participants will see 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 graphics and user interaction.
As an introductory course, there are no prerequisites. Except a wild curiosity and the willingness to learn a challenging and rewarding skill!

Topics include: Basic graphics, colors and transparency, variables and data types, loops, functions, arrays, animation, time, input, conditionals and logical operators, relational expressions, classes and objects, recursion, magic numbers, randomness, custom-made functions, debugging, common errors and compiler messages, motion and collision, and how to read API documentation.

Daniel Cermak-Sassenrath. Programming for Game Designers: Interaction for the People, Course, ITU, Copenhagen, Spring 2016.