A block-language for Storytelling, Education and Computational Thinking
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.
No materials for the event yet, sorry!
Storytelling is one of the main topics (stories, games, and animations) that block languages have been developed for. But the biggest part of stories developed by users of block languages are PMVs (Picture Music Video), AMVs (Animation Music Video), or MAPs (Multi-Animator Project). In those projects the animation is not realized by using blocks devoted to Movements or by applying changes to the Look of a sprite costume.
Storytelling is an excellent strategy for education, as it attracts the attention of the learner and makes the learning process light and engaging. Furthermore, storytelling improves the communication skills of the students allowing them to create, test and revise their stories (interactive or not). Finally stories can be completed by adding final interactive tests based on images and animations, that will allow the users to easily verify their knowledge.
Usually the developers of animations prefer to create a large amount of different costumes where the characters of the animation are slightly displaced from costume to costume. This is a fairly simple strategy that requires a fair amount of space and time for creating slightly different copies of a costume, but low programming skills. The same problem arises when we want to update the animation.
Creating an animation just using blocks (for example by using blocks from the Pen category) it is at the opposite extreme as it requires a lot of programming skills and will not catch the interest of those users of a block language that do not feel comfortable with programming. An intermediate strategy is exploding the characters/objects in subparts and then moving or changing the look of those subparts by using programming blocks. But even this strategy requires knowledge about cartesian coordinates, mathematical operators, variables, and, usually, a lot of synchronized show and hide operations.
Even using other kinds of tools is not a simpler strategy. Other tools have their problems for what concerns the non-tecky user:
- presentation managers (e.g. Powerpoint/Impress): no basic tools, complex programming (text based and complex instructions/operators). Referring to an object requires an object-oriented notation
- storytelling tools: no programming tools to enhance the possibility offered by the application
- full programming environments: too many complex and repetitive/tedious operations
A better strategy is to create a Snap mod that would allow block language users to gradually move from a simple "frame-based" strategy (like a slideshow or a regular cartoon) to a full-fledged "pen-based" animation, but only where and when desired. The new mod is not very different from Snap, but makes available powerful strategies to create stories and educational projects based on storytelling. The strategies that are more often used in an educational project are:
- creating several "scenes" with specific backgrounds and characters
- moving the characters around
- highlighting the characters related to each phase of the explanation
- producing the audio associated to speech bubbles and synchronizing the related animations
- presenting the answers of the final quiz in a random order
- accumulating the "score" of the user during the final quiz
- giving a final feedback based on the cumulative score
The Snap mod for simplified interactive stories is based on the following elements:
- the possibility to create different "scenes" with specific backgrounds that can be duplicated and where characters and their scripts can be copied from one scene to another
- new blocks to move the characters in a simplified way on a smaller grid or to specific places (up, down, top, bottom, left, right, far left, far right, center)
- new blocks to highlight the project characters by adding colored borders or a colored frame
- new blocks to play a synthesized audio that replicates the speech bubble text and that start the associated animation scripts / scene
Using this new set of features and blocks:
- reduces the burden of boring/difficult operations and repetive scripts
- simplify the amount of concepts that must be learnt
- allows the users to still learn how computer programming works in simplified and step-wise way by keeping the basic concepts of sequence, loop and message
- allow to gradually move to more advanced concepts such as procedures, lists, etc
To conclude the talk it will be shown how a complex educational project developed with Snap can be reduced and developed more quickly by using the new mod.
Block languages are an incredible tool to teach programming languages. But enhancing a block language will make it an incredible tool to learn computational thinking for a larger audience.
Events Happening Next
Cynthia Solomon, Sarah Magner, firstname.lastname@example.org
WORKSHOP DESCRIPTION In this workshop, we will focus on building blocks that allow you to play with polygons and spirals with TurtleStitch. If you create a design you love and do not have access to a computerized embroidery machine, global TurtleStitch community friends will embroider & mail you your design!
TurtleStitch is an activity and a coding environment. TurtleStitching is a mi...more
Jens Mönig, Jadga Hügle
In this workshop we'll share a curriculum around AI that we're currently working on. We try to show how to use machine learning in the classroom by implementing a gesture recognizer (based on the $1 gesture recognizer) in Snap!
We start by creating a single-stroke gesture drawing program.
By building an "animate" control structure based on the pen trails, we are able to animate our drawn...
Codification means to create Python code directly out of SNAP Code via a mapping SNAP blocks to Python code. The created Python Code via codification in SNAP is downloaded and runs immediately in Python. This has been useful in supporting the steps from SNAP development in a blocks language to a typing language. I would like to show how we enhanced codification with GUI elements: There a...more