As part of the University of Auckland Engineering programme, students are expected to work on a research project during their final year. For our project, we were fortunate to be assigned an interesting research topic: creating a tile-based programming environment for teaching novices (especially children and young people) programming. We investigated existing programming systems, and tried to marry together the best parts of existing block-based programming systems (like the visual cues that these environments provide) to a text-based programming language. Most pre-existing work in this space has focused only on block-based programming languages, so this was an interesting challenge.
The project was also exciting because I got to design and implement a fully functional programming language from scratch. We attempted to integrate the language design tightly into the actual operation of the visual environment. Variables in the programming environment were directly correlated with object properties for the entities in the 'world', in an effort to introduce object-oriented programming elements.