Programming for Game Designers (2015): Making the Game

We program to create interactive systems. 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 yourself to use what somebody else has done, but to take control and create yourself what nobody has done before! I believe the most interesting things to create are interactive systems. That is, not 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.
If you 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 you will see the world of digital media in a different way.

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: Making the Game, Course, ITU, Copenhagen, Spring 2015.