Home‎ > ‎EduTech Conspiracy Project‎ > ‎Unit Plans‎ > ‎

Programming Interactivity

The Project

This final unit will help us to further develop our computational thinking skills as we carry on from where we left off at the end of our previous unit.  (Click here for a great article by Dr. Jeanette Wing, that clearly defines what we mean by Computational Thinking.)  In Game Design, we explored a variety of tools and techniques to create our own video games designed to run on a chosen platform and aimed at a selected audience.  While we took a brief look at a number of tools together during class, each of us had to learn the ones we ultimately decided to work with in much greater depth.  It is often the case when working with computer software that you need to uncover more advanced features and learn to use them on your own.  Once again, a major focus of this unit will be about how to locate appropriate resources to help teach yourself the ins and outs of unfamiliar software.

We started the semester working with a very simple game design platform--Gamestar Mechanic.  This only allowed a limited amount of customization.  In our Game Design unit, we looked at a number of tools that allow for much more customization.  But again, we are quite limited in what we can create using these products.  To give us a much higher level of control over how our projects look, how they operate and how users interact with them, we need a basic understanding of using code.  Now before you run screaming from the room... don't worry.  This is not a course in computer programming.  But it is important for you to develop a basic understanding of how computer programming works so that you can modify what others have done and insert snippets here and there to allow greater customization of your projects.

Using the same approach as we did with our previous unit, we will explore a handful of design tools that allow us to create interactive content.  It will then be up to you to come up with a project that you want to work on, select the tools that you want to work with and then learn the tools sufficiently to allow you to complete your project.  Most of the tools that we look at will have features that require you to enter snippets of code (usually Java or Javascript).  In most cases, you will be able to download code samples written by other users. What we will be learning is how to make sense of this code and how to modify it for our own purposes.

For your own project, you will design and create an interactive digital program for a selected audience using a tool of your own choosing. You will use the Design Cycle to inform your work and you will document the entire process in detail in your on-line process journal.

Phase 1: Researching and Analysing

Over the course of the Researching and Analysing phase, we will develop a deeper understanding of different kinds of interactive content creation tools that are available and the possibilities and challenges of working with each.  We will take a look at the communities that have grown around each tool, how users share their knowledge and how we can participate.

By the end of this phase, you will determine what sort of project you want to make and the target audience that you have in mind for it. You will conduct primary research into the issues surrounding your project.  You will write a Design Brief that will outline what sort of project you are putting together, who you are making it for and your reasons behind making it.  Based on your research, you will write a list of Design Specifications that will give a clear picture of what your project will be like and how it will function.

What's out there?
In this section, you will conduct research into the wide range of interactive content on the web and give examples of each.  This activity will encourage you to broaden your scope of what sorts of projects you might consider working on.  You are welcome to present this information in any form that you wish.  I would recommend a concept map as a good way to do it.  Here are some good online tools for creating concept maps:
  • Text2Mindmap is a very simple tool to make professional-looking concept maps by simply typing the text into a column.  It does the rest of the work for you!
  • Bubbl.usbubbl.us allows you to easily make colourful concept maps that be shared with others for collaborative brainstorming.
  • Wallwisher takes a slightly different approach that the others on this list.  It allows you to put 'sticky notes' on a wall and move them around to organize them into groups.  It allows multiple users to collaborate simultaneously on one 'wall'.
  • FreeMind is a popular, offline tools for creating concept maps.  

There are lots of excellent interactive contenct creation tools available on the Internet.  Many of the best ones are free.  In class, we will look at a few but you are encouraged to do your own research and find more.  In this section, you will explore these tools to determine their capabilities and ease of use.  Write a review of each one that you test out in your process journal.

  • Processing is an open-source programming language and environment targeted at artists and designers who want to create images, animations and interactions.  Projects can be exported as double-clickable applications, embedded into webpages or run on your handheld device.  We will begin the unit with an Introduction to Processing and will learn the basics as a whole class.  This should help you get started in understanding what programming is all about and what we mean by 'interactivity'.
  • Scratch is a visual programming language developed by the Lifelong Kindergarten Group at MIT. It is a visual, block-based, computer programming language editor. The code used in Scratch does not use text. It uses puzzle-like pieces. Because of the lack of text errors (syntax errors), the learning process is much less frustrating and therefore, easier to learn. It boasts millions of users worldwide and lowers the bar to allows for the easy creation of interactive multimedia projects and games.  
  • eToys is a media-rich authoring environment and visual programming system that teaches basic programming skills and allows users to create a remarkable variety of interactive content.
  • Greenfoot is a project out of the University of Kent.  It is an interactive Java development environment designed primarily for educational purposes at the high school and undergraduate level. It allows easy development of two-dimensional graphical applications, such as simulations and interactive games.
  • Unity3D is a powerful game development tool that allows users to create 2D and 3D interactive content and games for a number of platforms.  Scripting can be done using C++ or Javascript.
  • Flash is a multimedia platform by Adobe Inc. for creating 'Rich Internet Applications'.  It is commonly used for adding animation, video and interactivity to web pages and for making games.  It implements Adobe's own object-oriented language called 'ActionScript' which is based on Javascript.
  • BlueJ is an integrated Java environment designed for introductory teaching.  It can be extended with with add-ons such as Env3D to allow for additional functionality, such as programming 3D objects.
  • Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software. It's intended for artists, designers, hobbyists, and anyone interested in creating interactive objects or environments.
  • ContextFree is a program that generates beautiful, organic images from written instructions.  Users can program factors of randomness to allow for infinite variations of your artwork each time it is executed.
  • Alice is a 3D programming environment developed at Carnegie Mellon University for introducing students to object-oriented programming concepts.  It allows for the creation of digital stories, animations or interactive games.  It is similar to Scratch in the way that users drag-and-drop blocks into place to create programs.
  • Inform is a design system for creating interactive fiction.  It's source reads like English sentences, making it uniquely accessible to non-programmers. It's very easy to get started.
Coding Communities
For each of the tools listed above, there is a thriving community where users share their knowledge and in many cases, their products and code with one another.  Not only will participation in these communities be invaluable to you as you encounter difficulties along the way

Design Brief
You will write a short, concise Design Brief that explains the following:
What sort of game do you intend to make? (platform, story, visual style etc...)
Who is the target audience for your game?
Why have you decided to make this sort of game?

Design Specifications
You will write a list to give some more specific details about your game.  Think of 'Design Specifications' as the decisions that have to be made before you can start designing.  This may include your choice of game-building platform, more detail about the visual style etc...

Researching and Analysing: Assessment Rubric

Students identify the need for a product/solution.  At the end of the course, they should be able to:
  • explain the need for a product/solution for a specified client/end user.
  • analyse a range of existing products that may solve the problem.
  • summarize the findings from a range of sources, cited appropriately, relevant to the development of the requirements for a possible           solution.

  • The student does not reach any of the standards described by any of the descriptors

The student:
  • states the need for a product/solution for a specified client/end user.        
  • states the findings from a few sources relevant to the development of the  requirements for a possible solution.


The student:   
  • outlines the need for a product/solution for a specified client/end user.       
  • analyses one existing product/solution that may solve the problem.   
  • outlines the findings from a range of sources, cited incompletely, relevant to the development of the requirements for a possible              solution.


The student:   
  • explains the need for a product/solution for a specified client/end user.  
  • analyses a range of existing products that may solve the problem.
  • outlines the findings from a range of sources, cited appropriately, relevant to the development of the requirements for a possible               solution.


The student:   
  • justifies the need for a product/solution for a specified client/end user.   
  • analyses a range of existing products that may solve the problem in detail.   
  • summarizes the findings from abroad range of sources, cited appropriately,  relevant to the development of the requirements for a              possible solution.    

  • The summary will enable the student to concisely present all of the useful and relevant information they have found through their research. 
  • They will present this information in their own words. 
  • No credit will be given if students simply “copy and paste” text from sources.
Phase 2: Designing

By the end of the Designing phase, you should have a clear idea of what your project is going to look like and be ready to put all of the pieces in place.  If you have done a good job on Designing your project, the next phase--creating your game---should be a fairly straightforward process of going through the steps.  

---------------This page is still under construction...------------------------