Let's start the workshops
Published: 2020-03-09 12:26:47

In the previous part I wrote about how I came to hold programming 
workshops for schoolkids and explained about preparations before a workshop.

In this and the following part I will explain what we did during the workshop.

## Starting into the workshop

After you have everything (room, hardware and pupils) set up and ready: Where to start with the workshop itself?

We started with samples of _programming without electricity_. What do I mean with this? An instruction like 

    If it rains outside, use a rainjacket
    
is a parent programming a child. And so is

     Brush your teeths before you go to bed (or they will go bad)
     
This simple things introduce conditions and actions already and everybody knows them. And it is programming without electricity for sure.

## The first programming assignment: Eat a banana

Our first programming without electricity in the workshop was ``eating a banana``. This is taken from the education material that is available [in the Workbook for Students, page 3](https://calliope.cc/en/school/didactic-material). The steps to eat a banana are prepared and the children were asked to put the steps in the correct order.This was a good way to show that instructions given to a computer needs to be detailed, precise and in the correct order. If you take a bite from the banana before peeling it, you know what you get. Also the idea of loops is introduced with this exercise.

## The second programming assignment: Maneuver a "robot" through the room to a specific spot

Stephanie fashioned a robot mask for the workshop: 

![The robot mask](https://dev-to-uploads.s3.amazonaws.com/i/0zlm8ir05bz9pkbpn2tu.jpeg)

We wanted to have the kids maneuver a robot (myself with the mask) from one place in the room to another. I always started turned towards a window or wall. The robot was supposed to only understand very basic instructions. The instructions were unknown to the children beforehand and this was intended.

When the task was to direct the robot to the door, the first command usually was ``go to the door`` and my response was *I do not understand this*. With some try and error, the pupils found out what the robot can and can not do. Taking turns they gave the robot commands until the task was complete. There always is a great deal of laughing involved when I 
bump into obstacles or did something unexpected. 

Here is one example of what happened: The robot was repeatedly asked to ``half turn right`` and of course I did a 180° turn as this is half a circle. The kids of course expected me to actually only turn 90° in the given direction. It took some time to figure out that the command needs to be ``turn one quarter to the right`` - but eventually they got it.

It is important to have a second person (Stephanie in our case) helping with the robot programming. She ensured that the children took turns in programming the robot. Having everybody participate in the process, the solution and the learning in that was an important factor for us.

## The third programming assignment: Display your name on the Calliope mini

Now we (finally) got to the computers and the Calliope mini itself. We took a very easy task to program so the kids get introduced to the graphical editor and the process of downloading the code to the computer and then transfer it to the Calliope mini (through a USB connection and a file browser).

For starters we presented the Calliope mini and gave everybody one still sitting inside the box. They unpacked it and got the cords (power and USB) hooked up to begin with. We showed what and how to do it and ensured that the children got it right.

It is so easy to forget how used we adults are to computers, mice and keyboard. What takes us only a couple of seconds to understand and execute is a totally new world to eight year olds. They are not used to handle a mouse and click on a button in the browser. They do not know what a file or folder or drive is, what download means. At least some of them do not, while others might be used to this sort of thing.

Given experiences from previous workshops (with adults) we ensured that our own setup that we hooked to a presenter is similar to that on the children devices. And then we did all the needed steps, one by one, in a slow pace. There was always some running around the room to check, if they were following and help with a vast variety of problems.

As the children worked in pairs we took turns in writing the code and deploying it to the Calliope mini. We payed extra attention to the fact, that everybody could work with mouse, keyboard and the Calliope mini.
This is especially hard for two kids with very different experiences with computers. I literally took one boy's hand from the mouse a number of times so his partner could take his time to practice pointing and clicking. This is hard, but I find it very important to support an environment of learning by doing. As a professional programmer I have seen and felt too many times the situation where pair programming was dysfunctional due to the fact that only one person held on to the controls all the time.

I have no education in teaching children at all. Maybe I am mistaken by my approach or there might be better ways to achieve learning by doing. However, I wanted to point this out for you to consider.

You can find details on the mini assignment we did next in the third and final part of this series of articles.