Small, scoped areas within a graphical interface that allow users to read and write simple programmes

Hand me at HyperCard

The remarkable thing about HyperCard is it gave users an enourmous range of control and flexibility. It came with a high-level, built-in programming language called Hypertalk that let users any edit any element on a card.

And made me click:

Fermat is a new spatial interface for brainstorming with generative AI systems. Similar to some of the apps I pointed out Spatial Web Browsing, it gives people an infinite canvas to lay out their ideas and then riff on them

Great read with lots to think about. I wonder do we consider this space:

HyperCard was a hit in its day. Users talked about how empowering it was to create beautiful things quickly and easily, without needing to know how to programme. 

In education enough?

micro:bit code printout

The Village of Banton, where I teach, celebrates Halloween on the Friday before the 31. Which is nice ’cause you can have a Friday party. We had one yesterday afternoon, in the morning we did some halloween related work.

When I sat down at my desk yesterday morning I had a quick look at twitter. I’d been in a conversation over breakfast. I ended up having a quick scroll through Mr Morrison‘s timeline. I saw a couple of interesting micro:bits things:

and

The first was to blow away a ghost. I couldn’t see instructions, but presumed it would be simple enough to figure out. The second was really simple, but linked to a blog post which had a nice wee pumpkin cardboard template that fitted a micro:bit.

Pumkin Ghost

My class have done a varying amount of coding, so I though we could do this as a stepped challenge. The more experienced could help the other out.

I printed off the templates and cut out the holes for the micro:bit buttons. I’ve found that making a neat job of these is difficult, but helps keep the cardboard on the micro:bit. Quite glad I’ve got a small class.

I then worked out and made the code to, add a face to the pumpkin with button A and a ghost with button B. Blowing on the micro:bit would blow (animate) the ghost off the screen.

I made a quick slide with the challenge and pictures of a few useful blocks.

Microbit Halloween Challenge: 1. Show a ghost for pumpkin on button a 2. Show a face on button b 3. Animate face 4. make ghost go away when you blow 5. make ghost only go when it is already on screen 6. play a sound when ghost flies off

We started the lesson by being really quiet and watching me demo. The class is 1-2-1 iPads and we use the micro:bit editor, we have enough micro:bits for one each too.

My though was that the least experienced could manage 1, 2 & 3. I hoped the images of the blocks would remind the others of enough to get them started on the harder ones.

Most of the class managed the first couple of tasks straightaway. To my surprise quite a few asked to skip the third. The vanishing ghost was too tempting.

The next step, to animate the ghost away on a sound was managed by quite a few of the class. The tricky part was only showing the animation if the ghost was on the screen. A few, having seen the clues on the slide, created variables to test for at the start of sound block. We did need to stop a few times to figure out when and where to toggle the variable and how to test for it in the right place. Lots of useful mistakes were made.

By this point a few children had managed to solve the complete problem, adding some sounds to their animation. They could then help, (without using their fingers), their peers. A couple of the class didn’t manage to get the whole thing done, not getting a full understanding, but they all managed at least some of the challenge.

Given the class have done at least a couple of recent micro:bit lessons covering inputs and decisions the challenge approach worked well. Some had used code that was not particularly efficient. Some strange and unnecessary repeats. I am not really sure my own approach to the code was the best.

As everyone put the finishing touches, cutting out pumpkins and tweaking code I though we could finish with a quick demo of the radio feature. For this bit I did just put the code up on the board.

One child, remembering radio code from previous years volunteered to make the controller. We finished by testing and recording the radio controller, setting all the micro:bits to show a ghost via the controller and getting all the ghosts to fly off by shouting boo!

A few interesting points emerged

  • This idea came to me though some tweets at around 8:00am I had to through some resources together before 9, scrap (recycle) some of the morning plans. The final section, using the radios, just came to me while teaching and extended the process by half an hour. I am sure this says something about my professionalism & planning.
  • Working through the logic is hard. The children with more experience are beginning to be able to debug sometimes. Noticing typos (or bad values for variables, blocks avoid a lot of these problems) you have made or miss-ordering or putting blocks in slightly the wrong place is easy. I was listening to a WordPress lesson driving into work on Friday and noticed that the tutor, presumably prepped and a confident coder, still made mistakes like these.
  • Somethings just didn’t work. Adding sound work if we used the play sound block with pre add sounds. Using the melody block or the block that plays sounds you write yourself tended to cause problems. All the code would stop working after a while. I am not sure if it is a bug or problem with the micro:bits or we just don’t know something.
  • A couple of pupils had exactly the correct radio code but it just did not work exactly as expected. The code used an if else block to switch depending on if it received a 1 or something else. The micro:bits just executed the first choice every time. The pupils and their pals couldn’t see any problem with the code and neither could I.
  • Most of the class wanted to get to the more dramatic bit of code quickly and asked to skip the simple animation of the face. Quite a few wanted to work in the code editor without testing their code until they got to the end. I was quite happy with the skipping bits but I did ask them to do quick tests as they went along.
  • One pupil who had got into a bit a mixup with the code had made a nice change to the animation, the ghost going off the screen at an angle rather than straight up.

The micro:bit editor has a nice print feature, I used it to make the featured image for this post.

I saw a tweet from  James Abela:

Just found this amazing tool to convert any @scratch project into a #Mac #App. You can now literally use this kid’s tool to put apps together! Incredible and I managed this in less than a minute! #everyonecancode #scratch #appinamin #coding How to make a Scratch Project into a Mac OS app in under 1 minute – YouTube

The TurboWarp Packager Converts Scratch projects into HTML files, zip archives, or executable programs for Windows, macOS, and Linux. but it is linked to several tools that are part of TurboWarp:

TurboWarp is a Scratch mod that compiles projects to JavaScript to make them run really fast.

Now the sort of thing I do with scratch is certainly not in need of speeding up or turned into an application! But I have seen many really complicated scratch programs, but my needs are simple.

I did recall a maths project we made in class a couple of years ago, when working on probability & chance. The project throws dices a number of times. Of course the class wanted to run it many many times, but it got a bit slow once we got to 10 million throws.

Here is the Project on Scratch:

And in Turbowarp:

For me 100 million throws took 1056.443 seconds in Scratch and 21.784 seconds in Turbowarp. I guess device, browser, operating system and the direction of the wind might change these results a bit. I also expect the code could be a lot better;-)

Replied to Shopping Sheet – Improving the Shopping Process During the Pandemic by Aaron DavisAaron Davis (readwriterespond.com)
The current pandemic has led to many changes in habits. One of which is that I like to be prepared when I go to the supermarket, especially when doing a big shop. Fine I may not last out the two to three weeks that Zeynep Tufekci flagged early on: For food, you can just buy two or three weeks’ wor...

Hi Aaron,
Since the start of covid I get a delivery from the supermarket once a week and make a quick trip to a smaller one in the evening. Newspaper from the wee coop early morning.

What I love about his post is the quote/  featured image. I liked it on flickr earlier.

Ten Lessons I Learned While Teaching Myself to Code

I’ve been messing around with code and scripting on and off since I started using computers. Never enough to get the basic stuff in my head long term. I suspect my aged brain as well as the lack of daily practise. I can still have “fun“.

Coding develops cognitive skills, problem solving and analytical thinking (“computational thinking”). By introducing and developing these abilities from primary school onwards, we create the building blocks and thought processes necessary for robotics and AI. This is not about displacing traditional subjects but, rather, changing the emphasis. Coding can comfortably sit alongside other subjects, especially those with a creative slant, reinforcing the development of key skills through multiple channels.

Digital skills: Why coding should at the centre of the school curriculum | Tes

Coding certainly can develop cognitive skills, problem solving and analytical thinking. A lot of other things can too. I think it is difficult.

Any class will present a wide range of learners. Designing or adapting lessons to try and get as many of them in the right zone to develop these skills is tricky. If you don’t get this right coding is neither productive or fun.

The article notes:

. Coding can comfortably sit alongside other subjects, especially those with a creative slant, reinforcing the development of key skills through multiple channels.

I’ve certainly found that putting coding into a context can lead to more fun and success. By adding elements art or making to a coding project more pupils are involved in problem solving, collaboration and creativity.

A difficulty in managing this might be the perceive need to be an expert in several different areas. I’ve certainly found myself in situations where I’ve not be completely confident around some of these areas.

The article acknowledges that covid has had an effect:

It is a reasonable assumption that this immersion in IT and technology is preparing young people for a digital future and teaching them the skills they will need.

But we need pupils to be creators as well as users:

there is a largely unrecognised digital difference between the users of technology and the creators

I think there is also a gap around literacy and the problems that the mixing of commercial and educational interests in technology. A lot of the uptake in digital solutions lacks any questioning of the provides of these solutions.

This is something I am not very sure I’d know where to start with? Perhaps Coding is not ‘fun’, it’s technically and ethically complex:

In just a few years, understanding programming will be an indispensable part of active citizenship. The idea that coding offers an unproblematic path to social progress and personal enhancement works to the advantage of the growing techno-plutocracy that’s insulating itself behind its own technology.

 Coding is not ‘fun’, it’s technically and ethically complex by Walter Vannini (Aeon)

Coding is seen as fun and glamorous, but that’s a sales pitch. In reality, it’s complicated, both technically and ethically

It’s better to admit that coding is complicated, technically and ethically. Computers, at the moment, can only execute orders, to varying degrees of sophistication. So it’s up to the developer to be clear: the machine does what you say, not what you mean. More and more ‘decisions’ are being entrusted to software, including life-or-death ones: think self-driving cars; think semi-autonomous weapons; think Facebook and Google making inferences about your marital, psychological or physical status, before selling it to the highest bidder. Yet it’s rarely in the interests of companies and governments to encourage us to probe what’s going on beneath these processes.

Clear well explained short and powerful article. via both Scripting News and Memex 1.1.

Perhaps we need another term for the coding like activity than can be a lot of fun for folk that have the skills that Walter Vannini explains coders need. I have a lot of fun dabbling in AppleScript, bash and JavaScript without the discipline and study necessary to be a coder.

Kids in school can have this sort of fun too, perhaps helping in maths and in skills like problem solving, working together and practical skills. Scratch and micro:bits can be a a lot of fun in a primary classroom.

Replied to https://twitter.com/stevebunce/status/1314847694440017920 by Steve Bunce (Twitter)
Free, fun and from Monday, come and follow-a-long with your class or at home! Next week at https://thecodehub.ie/eu-code-week-2020/index.html… You can be there live or watch the recordings later #eucodeweek #swiftplaygrounds #coding

EU Code Week 2020 – Quick Start to Coding with Swift Looks great Steve.

Liked https://twitter.com/cemocreates/status/1305699520567635968 by Celeste (twitter.com)

A lot of micro:bits from the BBC arrived in the centre where I work, ready to be distributed to North Lanarkshire schools. I’ve taken the opportunity to break one out and have a wee play.

The devices are aimed at secondary so outside my wheelhouse, but I could not resist a wee play.

The microbic works by creating code for it on a computer and flashing it to the device via USB (you can also use bluetooth from a mobile app). There are several different ways to create code. You can do in in the browser with severe different editors, Code Kingdom’s JavaScript, The Microsoft Block Editor, Microsoft Touch Develop or Python. I’ve had a quick try of most of these. You can also use the MU python editor that runs on Windows, OSX, Linux and Raspberry Pi.

Although I don’t really know any python I’ve found that the MU editor the most reliable. The browser based ones have been occasionally flaky, causing me to switch browsers a few times. I also like to have anything stored locally (the browser editor stores in local storage, but that means you need to either get an account sorted out or use the same browser on the same box all the time.)

There are already a nice set of resource building up, I found the Raspberry Pi and micro:bit Playground both useful.

When I was looking at the Tilty Game from the micro:bit Playground I though I might be able to make a ‘paint’ editor. This is the result. (click to start the movie, I’ve just found you can use a gif as a poster frame)

The code allows you to draw on the microbes LEDs, the left and right buttons move the cursor in a horizontal and vertical  directions and a double press toggle the lights.

And here is the code, I used hilite.me to make it look nicer. Not exactly rocket science. I expect there are better ways of doing this.

from microbit import *

Matrix = [[0 for x in range(5)] for x in range(5)]

#set initial position
x = 2
y = 2

def printmatrix():
    for x in range(5):
        for y in range(5):
            if (Matrix[x][y]):
                display.set_pixel(x, y, 6)
            else:
                display.set_pixel(x, y, 0)
    return;
            
#show cursor
display.set_pixel(x, y, 9)
 
while True:
    if button_a.is_pressed() and button_b.is_pressed():
        if (Matrix[x][y]==0):
            Matrix[x][y]=1
        else:
            Matrix[x][y]=0
        printmatrix()
        sleep(1000)
        continue
                 
    elif button_a.is_pressed():
        x = x + 1
        if (x>4):
            x=0
        printmatrix()
        display.set_pixel(x, y, 9)
    elif button_b.is_pressed():
        y = y + 1
        if (y>4):
            y=0
        printmatrix()
        display.set_pixel(x, y, 9)
    sleep(200)

The idea is we store a matrix of which lights are on. The ones turned on are shown by the printmatrix function. They are displayed at a brightness of 6 to distinguish them from the cursor, which is full beam.

The cursor is moved with the left and right buttons. it loops (I wonder if it would be better to bounce it?) Clicking the left and right buttons toggles the light on or of in the matrix. The reset button clears the screen.

I had quite a lot of fun getting this to work, the formatting of the script caught me out a few times. I wonder, if I was smarter, could I take the same approach and make a noughts and crosses app?

Featured image on this post a gif made from BBC micro:bit by Gareth Halfacree used under a Creative Commons — Attribution-ShareAlike 2.0 Generic — CC BY-SA 2.0 License.