Updated: Wed 31 January 2018

Category: modules.


This station is a top-down introduction to some important programming concepts. Rather than learning the nitty-gritty of a language, you will start with a working game, read the source code, and discuss design considerations for your own programming. Key concepts include:

  • Model/view architecture: Models should manage a program's state; views should manage rendering and user interacation.
  • Modularity: Small, resuable components with clear interfaces.
  • State: A complete representation of what's happening in the app at any given time.

Also, some more focused concepts:

  • Tick-based time model: Complex systems are much easier to model when you break time into discrete steps and describe how they move from one moment to the next.
  • Frames and multiple coordinate systems: We use some tricks to move between different coordinate systems.
  • Event models: You can manage interactivity by creating objects that represent things that happen.
  • Coding style: Lots of little tips that you can best learn by reading others' code.


Tangible User Interface Tables

For today's purposes, you will use the tangible user interface tables as a learning tool. We will teach you how to use the tangible interface tables in more detail later, but if you don't want to wait: