Presented by:

Stefano Federici

from University of Cagliari

I teach Computer Science at the university of Cagliari. My main research interests are making Computer Science as easy as possible to learn and making all school subjects more engaging for students through coding. I'm the creator of the _BloP _Snap extension.

Volunteer Hosts
Thanks for helping with Snap!Con 2020!

Eduardo Huerta

from UC Berkeley

Alternative block languages are created every day to introduce learners to computer programming by leveraging on their non-programming interests such as robotics, 3D printing, embroidery, arts. Those new programming environments are often extensions of general-purpose block languages such as Snap! or Scratch. Even if all the creators of new block languages want is often creating something very similar to Snap!, with just some additions, creating a new Snap! extensions require a strong knowledge of core programming concepts and advanced programming languages such as SmallTalk, Flash or Javascript. However, thanks to Snap!, this can be done even without creating a new extension. The Snap!’s powerful mechanism for the creation of new custom blocks allows to easily create new programming languages, the only problem being that the final user of these new environments cannot use them as easily and safely as Snap!, as the final user can freely remove or modify important elements of the environment as they do in a normal Snap! Project.

In this workshop, participants will learn how to build incrementally a new block language for their specific needs -from a classic C/C++/Python-style programming language to an unusual compositional language to learn foreign languages, to a minimal programming language for storytelling- by using Snap! and the Snap!’s BloP extension. They will learn: • how to use the powerful Snap features to o easily create common elements of standard programming languages such as  libraries  namespaces  management of type systems  creation and use of variables  execution stack of function calls o create elements of unusual programming languages o evaluate constructs in the order they need it • how to use BloP features to o create startup scripts that set up the whole environment at load time o create startup scripts that reset the environment every time a program is run o hide auxiliary elements that the user should not modify o create a safe programming environment that cannot be modified by the final user

BloP blocks are the same block set as Snap!’s, with just a couple of new control blocks that take care of passing the control to startup scripts and then pass it back to the programming language scripts. But BloP adds several new options to contextual menus so to allow to easily hide/lock/unhide Snap!’s GUI elements.

You can download all the materials from this link

Discuss on the Snap! Forum

1 h
Zoom 2
Snap!Con 2020