Tangible Programming Blocks

Project Name:Tangible Programming Blocks
Company/Affiliation: Northwestern University
Role(s): Programmer (hardware interface) / Designer (hardware)
Programming Language(s): Python, Google Dart Language
Technology Stack: Google Dart Web Application, with Raspberry Pi acting as a serial bridge with RFID Readers.

Github: https://github.com/dhpollock/chm_program_interface

Description:
This project was an experiment in developing a tangible programming interface for an already existing touch-table game aimed at teaching players how to program.  Research for this project focused on comparing the educational/attitude impact of  physical programming blocks in comparison to users only using the original touch-screen interface. Initial user studies were done at the Computer History Museum in Mountain View, CA.

Programming Challenges: The major hurdle in this project was interfacing with the RFID readers.  There were three RFID readers installed in the base, and each of these readers had eight antennas reading a specific slot for the programming blocks.  Each reader had to be multiplex through each antenna.  In order to make the user experience viable, multi-threading was required to speed up the process, as addressing the three readers in series was too slow.

Additional:

An overview of the interface as well as an initial study on the impact of the touch screen interactive can be found here.