Removing the Walls Around Visual Educational Programming Environments
Description
Many block-based programming environments have proven to be effective at engaging novices in learning programming. However, most restrict access to the outside world, limiting learners to commands and computing resources built in to the environment. Some allow learners to drag and drop files, connect to sensors and robots locally or issue HTTP requests. But in a world where most of the applications in our daily lives are distributed (i.e., their functionality depends on communicating with other programs or accessing resources and data on the internet), the lack of support for beginners to envision and create such distributed programs is a lost opportunity. This paper argues that it is not only feasible, but crucial, to create environments with simple yet powerful abstractions that open up distributed computing and other widely used but advanced computing concepts including networking, the Internet of Things, and cybersecurity to novices. By thus removing the walls around our environments, we can expand opportunities for learning considerably: programs can access a wealth of online data and web services, and communicate with other projects. Moreover, these changes can enable young learners to collaborate with each other during program construction whether they share their physical location or study remotely. Importantly, providing access to the wider world will also help counter widespread student perceptions that block-based environments are mere toys, and show that they are capable of creating compelling applications. The paper presents NetsBlox, a programming environment that supports these ideas and shows that tools can be designed to democratize access to powerful ideas in computing.
Author and publisher information is provided below. Note that many publishers charge a fee or membership for full access. Permission/access must be requested through the publisher or author directly.