Not Just for Kids: the Design and Implementation of Blocks Programming in MIT App Inventor
In blocks programming languages, programs are built by connecting code fragments shaped like jigsaw puzzle pieces, Because they lower barriers for novices learning how to program, blocks languages like Scratch, Blockly, StarLogo Nova, and MIT App Inventor, are becoming increasingly popular for introductory programming experiences.
In this talk, I will describe the design and implementation of the blocks language in MIT App Inventor, an environment for creating mobile apps for Android devices. After giving a live demo of the environment, I will focus on features currently in the language as well as some under development, including live development, event handling, naming, types, debugging, and conversion between blocks and text languages. Although MIT App Inventor is targeted at novices, I will argue that some of these features would be worth incorporating into environments for more traditional programming langauges.
I am an Associate Professor of Computer Science at Wellesley College, where I started teaching in 1995. I spent the previous 15 years earning my bachelor’s, master’s, and doctoral degrees in Computer Science from MIT.
My passion is the study of programs and programming languages, which is at the heart of both my teaching and research. My interests include the design, analysis, and implementation of expressive programming languages, graphical representations of programs, and the visualization of computational processes. I am co-author of the textbook Design Concepts in Programming Languages.
As a member of the MIT App Inventor development team and a leader of the Wellesley TinkerBlocks research project, my goal is to improve the expressiveness and pedagogy of blocks-based programming languages. I am the lead Principal Investigator of “Computational Thinking Through Mobile Computing”, an NSFÂfunded Transforming Undergraduate Education in STEM (TUES) project in collaboration with MIT, Trinity College, University of Massachusetts Lowell, and University of San Francisco. In this project, we are developing online curricular modules that use App Inventor to teach computational thinking in a mobile context.