Blocks programming, in which program syntax trees are represented as visual blocks, is popular in programming environments targeted at beginner programmers and casual programmers (artists, scientists, hobbyists, etc.-for word count, get rid of the parenthetical). The goal of this workshop is to bring together language designers, educators, and researchers to (1) discuss the state of the art of these environments, (2) assess the usability and effectiveness of these environments and their associated pedagogies, and (3) brainstorm about future directions. This workshop will not be a mini-conference. The focus will instead be on engaging participants in discussions. There will be three kinds of sessions:

  • Discussion sessions organized around a keynote and some short talks.
  • Demo/poster sessions in which participants describe recent work related to blocks languages or other introductory programming environments.
  • A “campfire talk” in which developers of blocks environments share stories about their current systems and future plans, with feedback from all workshop participants.

Anyone who wants to join the discussions is welcome to participate in the workshop.

Call for Participation

Blocks programming, in which program syntax trees are represented as visual blocks, has become popular in programming environments targeted at beginner programmers as well as casual programmers (artists, scientists, hobbyists, etc.). Tens of millions of people have used blocks programming environments like Scratch, App Inventor, Blockly, Snap!, StarLogo Nova, Pencil Code, Alice/Looking Glass, AgentSheets/AgentCubes, and Code.org’s curricula.

The goal of this workshop is to bring together language designers, educators, and researchers to (1) discuss the state of the art of these environments, (2) assess the usability and effectiveness of these environments and their associated pedagogies, and (3) brainstorm about future directions for these environments. We seek participants with diverse expertise, including, but not limited to: design of programming environments, instruction with these environments, human factors, the learning sciences, and learning analytics.

This workshop will not be a mini-conference. The focus will be on engaging participants to discuss the current state and future directions of blocks languages and other programming environments targeted at beginners and casual programmers.

Anyone who wants to join the discussions is welcome to participate in the workshop. But we encourage more active participation in the form of (1) giving shorts talks that spark discussion and (2) presenting demos and/or posters. These forms of participation require submissions by the submission deadline (Friday 17th of August, 2018) that will be reviewed by the program committee:

  • Talk proposal abstracts (max 2 pages) should describe a position, open problem, exciting feature/system, promising line of work, or impactful research result. Talks will be chosen based on relevance, clarity, and their likelihood for generating good discussions. Talk proposals not chosen for presentation will automatically be considered for demos/posters.

  • Demo/poster abstracts (max 2 pages) should describe a system, design, pedagogy, analysis, experiment, result, etc. involving recent work related to blocks languages or other introductory programming environments.

All accepted abstracts will be linked from the BLOCKS+ web page on the SPLASH website. There will be no other form of publication. Presenters will also have the option to link slides, posters, etc. relevant to their presentations from the BLOCKS+ web page.

Suggested topics include (but are not limited to):

  • How usable and effective are blocks environments for teaching programming? For democratizing programming and enabling computational makers? How do we know?

  • In what ways have blocks languages succeeded or failed at fulfilling the promise of visual languages to enhance the ability of humans to express computation?

  • What tools are there for creating new blocks languages, especially domain-specific ones? What tools allow users to extend existing blocks languages?

  • How does the two-dimensional nature of blocks programming workspaces affect the way people create, modify, navigate, and search through their code?

  • How can blocks languages better support dynamic semantics and pragmatics, particularly with features for liveness, debugging, and understanding the dynamic execution of programs?

  • What are effective mechanisms for multiple people to collaborate on a single blocks program when they (1) are co-located or (2) are working together remotely?

  • What are effective pedagogical strategies to use with blocks languages, both in traditional classroom settings and in informal and open-ended learning environments?

  • What are the most effective ways to provide help to blocks programmers, especially in settings outside the classroom?

  • How can online communities associated with these environments be leveraged to support users?

  • How can blocks environments and associated curricular materials be made more accessible to everyone, especially those with visual and motor impairments?

  • In what ways do blocks environments help or hinder those who use them as a stepping stone to traditional text-based languages? What are good ways to support the transition between blocks languages and text-based languages? How important is this?

  • What lessons from the blocks programming community are worth sharing with other language designers? Are there features of blocks languages that should be incorporated into IDEs for traditional programming environments? What features of modern IDEs are lacking in blocks languages?

  • For these environments, what data can be collected, and how can that data be analyzed to determine answers to questions like those above? How can we use such data to answer larger scale questions about early experiences with programming?