The Infona portal uses cookies, i.e. strings of text saved by a browser on the user's device. The portal can access those files and use them to remember the user's data, such as their chosen settings (screen view, interface language, etc.), or their login data. By using the Infona portal the user accepts automatic saving and using this information for portal operation purposes. More information on the subject can be found in the Privacy Policy and Terms of Service. By closing this window the user confirms that they have read the information on cookie usage, and they accept the privacy policy and the way cookies are used by the portal. You can change the cookie settings in your browser.
Trigger-Action Programming (TAP) has been shown to support end-users' rule-based mental models of context-aware applications. However, when desired behaviours increase in complexity, this can lead to ambiguity that confuses events, states, and how they can be combined in meaningful ways. Blocks programming could provide a solution, through constrained editing of visual triggers, conditions and actions...
NetsBlox is a visual blocks-based programming language extending Snap! with a few carefully selected abstractions to support distributed programming. In this paper, we argue that with the help of NetsBlox, some of the fundamental concepts of computer networking can be included in the high school computer science curriculum. Specifically, we describe a set of curricular units that would fit nicely...
Reasoning about programs is an important component of computational thinking. Laws of computation give meaning to the formalisms in which programs are expressed, and can be used to predict or explain program behavior, or to uncover bugs. This paper presents Calypso, a language inspired by Microsoft's Kodu Game Lab but designed for programming actual mobile robots rather than characters in a virtual...
One aspect that increases the accessibility of many blocks-based languages is their use of labels to tell users the meaning of the input-slots in the blocks. In this regard, every block is a little form. FreeCoffee is a blocks-based language whose editor goes well beyond terse slot labels and communicates the meaning of a block using complete grammatical sentences. These sentence-blocks still contain...
This paper presents the Unruly Splats platform designed to promote active STEM play. We summarize design considerations that shaped its current prototype. Unruly Splats are a set of foot-sized floor buttons that light up, sense pressure, and make sounds, according to programs that learners age 6 and up create using a blocks-based programming environment on their tablets or computers. We discuss how...
The Mobile Computer Science Principles curriculum collects data on embedded Quizly programming exercises, which are based on the App Inventor version of Blockly. We have recently started mining this data to determine whether student performance on the programming exercises matches our assumptions about the difficulty of the individual exercises. Various analytic techniques, such as linear regression,...
We examine the challenges and advantages of 3D programming in the AgentCubes Online programming environment. 3D imagery and its associated programming provide a means for personalizing projects and may increase a learner's motivation to learn about technology. After reviewing the challenges for learners, we suggest some ideas for helping both teachers and student learners make the transition to 3D...
Five blocks programming environment developers were invited to share their thoughts about the future of blocks programming and seed a discussion among all attendees about this topic for the final session of the workshop.
NetsBlox is a visual blocks-based programming language that supports distributed programming. NetsBlox includes Remote Procedure Calls (RPC) that provide access to a set of online scientific data sources such as maps, weather, earthquakes, astronomy imagery, air pollution, etc. This demonstration shows how to use these RPCs to create engaging science projects.
One of the most important computational concepts in any programming language is procedural abstraction. We investigate the use of procedures in MIT App Inventor, a web-based blocks programming environment for creating Android mobile apps. We explore how procedures are used “in the wild” by examining two datasets of App Inventor projects: all projects of ten thousand randomly chosen users and all projects...
Block-based programming environments make learning to program easier by allowing learners to focus on concepts rather than syntax. However, these environments offer little support when learners encounter difficulty with programming concepts themselves, especially in the absence of instructors. Textual programming environments increasingly use AI and data mining to provide intelligent, adaptive support...
The block-based approach to programming is an effective way to engage young learners in programming and the powerful ideas of computing. In this paper, we explore the potential of using this same approach in a very different programming context: industrial robotics. Using a customized language built with the Blockly library, we created a block-based interface for programming a one-armed industrial...
Block-based programming environments are a good way to teach beginners how to code, in part because they eliminate syntax errors and provide visual feedback. However, many of the existing environments do not explicitly support synchronous collaboration. Collaboration is a critical component of computer science practice and CS education. We therefore argue that features to support collaboration could...
Programmers often attempt to use example code in order to fix bugs, learn, and remind themselves of code concepts. Many existing programming environments make text code examples available for the common programmer. Blocks code examples are typically less available within programming environments and harder to re-appropriate, especially for novices learning independently. This position statement suggests...
Block-based programming environments are typically designed for desktop machines or mobile devices. Desktops and mobiles are generally designed for single users to interact with, which makes it hard for multiple users to collaborate effectively. In this paper we explore the possibilities of digital multi-touch tabletops to foster collaborative programming in a block-based paradigm. We note both the...
Grasshopper is an Android application which teaches users JavaScript through a series of coding puzzles. Grasshopper is able to make two types of real-time decisions based on the user's current performance: selecting an appropriate piece of feedback when the student is in the middle of solving a puzzle; and selecting the most appropriate next puzzle when the student is done with the current puzzle...
In trying to understand the big picture of how users learn to program in App Inventor, we want to be able to represent projects in a way suitable for large scale learning analytics. Here I present different representations of projects that could potentially be used to identify App Inventor projects that have structural similarities to each other, e.g., projects created by users following tutorials...
Set the date range to filter the displayed results. You can set a starting date, ending date or both. You can enter the dates manually or choose them from the calendar.