78 comments

[ 4.9 ms ] story [ 124 ms ] thread
It's somewhat surprising to me that the "block editor" thing is so popular in these beginner kits. My son (almost 11) was introduced to it at school[1] and did not find it intuitive at all. We then got an Arduino and started to write some simple programs, and he took to it right off the bat. The Arduino programming platform is simple enough to get a 10-year old started off and scales so well to "professional" projects. IMHO, schools should probably just use the Arduino platform. But I guess different kids think differently, learn differently, and what's intuitive for one might not be so for another.

[1] http://biboxlabs.in/

The Scratch-like drag -and-drop programming environment is only one of several. Code Kingdoms Javascript supports both block and text, and transitioning from one to the other, MS Touch Develop is text based, and then there's Python:

https://www.microbit.co.uk/create-code#

You can also program the hardware directly.

Yes, the PlatformIO IDE (C/C++) also supports the micro:bit.
I find block editors, and more generally visual languages great, or awful, depending on the application domain. Scratch is an example of a great fit. The Lego Mindstorms environment is an example of a bad fit IMO. I'm not too sure what they should have proposed instead though.
Yeah, the block editor is a quick win for younger children, but it's not good for teaching more realistic approaches to 'proper' coding; heading the Java or MicroPython route seems to be more suitable and engaging for older pupils.

The guys who ported MicroPython to the micro:bit have done a great job but, regrettably, by the time the MicroPython framework has been loaded on the micro:bit, the amount of room left for more complex programs is a bit tight.

Arduino is used in UK schools, but the one I hear a lot about is Crumble as it's designed to build motorised things very easily: http://redfernelectronics.co.uk/crumble/

(Disclaimer: I am a volunteer STEM Ambassador working with UK schools and educators in the fields of electronics and computing. I have no business relationship with Crumble)

Your script can be up to 8k in length. You have 16k RAM to play with.

Obviously, this is a very constrained device and just getting a full re-implementation of Python 3 (sans standard library) is testament to Damien George's engineering brilliance.

There's still lots of work to be done and efficiencies to be made. This is only but the start of the project.

There are some quite interesting / complicated examples in the source code:

https://github.com/bbcmicrobit/micropython/tree/master/examp...

Hope this helps!

(comment deleted)
Don't worry, you're preaching to the converted!
There are two things to untangle here:

1) Yes, agree that "blocks" editors are not terribly useful. I brought an Arduino redbot for my daughters (10 and 8) and after a couple of failed attempts at scratch-like programming, they actually found the C code immediately easier. This is so unintuitive! Ideas?

2) that the micro:bit is worse than the arduino; I don't think block programming or sourcecode has any bearing on the choice of board. The micro:bit seems a bit more powerful than an arduino, but not actually powerful enough to impress me.

I really think that a much more powerful Raspberry-PI-style board but with decent robot handling would be infinitely better to getting kids hooked.

It was a year ago now but my own disappointment with the redbot: http://williamedwardscoder.tumblr.com/post/136598180858/wher...

Agreed. The good thing with the Arduino is that there is no OS to navigate - there are just 2 simple functions (setup and loop) where you put whatever you want to in, with some very simple intuitive functions (digitalWrite, analogWrite, ...). Compare that with what you need to do with the Pi for bare metal[1].

[1] http://www.valvers.com/open-software/raspberry-pi/step01-bar...

A nice arduino-like "very simple intuitive functions" API ought be perfectly possible on a raspberry PI, and there ought be no need for bare metal programming of the PI to make that happen.

When I blogged about how hard it was for me to find Raspberry PI robots in my country there was a discussion about it on proggit https://www.reddit.com/r/programming/comments/3zf04e/where_a...

The crux seemed to be that nobody is doing real time kernels on the raspberry PI, and this is just a lack of software not an unsuitability of the hardware.

I guess this just underlines that people have a £5 Zero and aren't scratching a "kids could learn to program by controlling robots with this!" itch?

> This is so unintuitive! Ideas?

Are they strong readers? Code as a narrative of what happens might be easier to grok for them than blocks which can have a spatial component to how they proved.

No, they are not even native English speakers :)

They started pointing and clicking on computers before they learned to read anyway: http://williamedwardscoder.tumblr.com/post/19500788060/my-te...

That was several years ago, and the intervening years they unlearned everything by focusing on the ipad youtube :(

I don't think it's all that unintuitive - I would prefer C to some graphical programming system. Think about it: if the gui programming system was any good it would be used in industry!

Beyond the spreadsheet - I don't think we have any successful "graphical" programming systems. And spreadsheets are more of a "4gl" than graphical. Maybe add Hypercard. And Smalltalk (with the object browser etc).

But the only real use of "graphical/iconographic" programming is for those that can't read and write. So, 6 years and down? That is, until someone makes a graphical system people will want to use at all ages and level of proficiency.

Ok, I guess I can think of a few others: 3d studio max could be seen as a form of graphical programming. As could premier/final cut and flash. And rich manipulation of rich media to "render" new rich media (interactive or not). But notice that with the partial exception of flash we don't call this "graphical programming".

Could be because they had watched you at work, and thus recognized things even if they didn't fully understand it.
My idea: just another instance to use this quote.

> Linux supports the notion of a command line or a shell for the same reason that only children read books with only pictures in them. Language, be it English or something else, is the only tool flexible enough to accomplish a sufficiently broad range of tasks. -- Bill Garrett

Or maybe it's just that kids are smarter than we like to think and are especially good at noticing what's going on when we try and set up no-failure situations for them, they notice that we expect so little of them we even created this giant special drag-drop-the-blocks interface that we never actually use ourselves just for them and their simple minds. (I'm not a fan of spoon-fed educational substitutes...)

I think 11 is already too late for those blocks. I did some lessons with Blockly [0] in my son's class last years (kids of 6 and 7), and that worked fine for the oldest/smartest kids, though it was still a bit too hard for some. I plan to do it again this year (ages 7-9) to see how that goes.

But after that, I think it's time for some Ruby or Python. I did Basic at that age.

[0] https://blockly-games.appspot.com/

I don't have a source, but my guess is that it's much more intuitive for kids to program in an imperative style rather than anything else. So provided that the base API that you provide them is not too complicated, my guess is that even kids in the 7-9 age bracket will "get" a programming style that goes turn_right(), forward(10), turn_left(), stop(), rather than the block editing.
Blockly actually gives the code resulting from your block program.

I think block editors work fine in a very simple situation where you have a very limited set of primitives you can use, like in the blockly exercises. I think Scratch already has way too many options to get lost in. At some point, typing becomes easier than searching through several lists of blocks.

You know, what way is there today to get the simple experience of a C64 or a ZX spectrum? Several things there:

- Instant on with a high level language interpreter

- Simple architecture/ISA one can grow into

- Maybe a monitor/assembler available from the interpreter

- Powerful graphics, with simple things possible from the language, and full power available from machine code

This would be perfect for around 8-10 year old. I can't tell if I'm underestimating kids but it feels like starting with a Linux or comparable modern OS/machine just has too many layers of abstraction to get that "cozy" feeling of a micro.

Most of that can be achieved with the right programming environment on a Linux or other modern system. I guess Scratch tried to be a new kind of programming environment, but it's too limited to scale to more serious use.
Web browser + view source + notepad is definitely the modern introduction to coding.
Maximite? http://geoffg.net/maximite.html

> The Colour Maximite is a small and versatile single chip computer running a full featured BASIC interpreter with 128K of working memory and eight colours on a VGA monitor.

> It will work with a standard PC keyboard and because the Maximite has its own built in SD memory card and BASIC language you need nothing more to start writing and running BASIC programs.

> The Colour Maximite also has 40 input/output lines including an Arduino compatible connector. These I/Os can be independently configured as analog inputs, digital inputs or digital outputs. You can measure voltage, frequencies, detect switch closure, etc and respond by turning on lights, closing relays, etc - all under control of your BASIC program.

It's showing its age a bit, but still sounds useful.

I get the nostalgia for something like the c64 - but I think Alan Kay has a point, paraphrasing Montessori - that if we want to prepare someone for (a better) future we need to place them in that environment. So we need an intuitive, powerful environment suited for parallel processing (starting small, say a thousand cores or so). That's if we want to prepare them for the future.

If we're content with giving them some "best of 80s"-ideas, I think racket and/or Pharo Smalltalk is about as good as we can make it.

I'm guilty of stooping down to less powerful and futuristic systems myself - I find python to a very good mix of intuitive / simple and "real world" useful.

Other than that, I guess playing with forth in a boot loader is pretty good if what one really wants is "close to hardware":

http://wiki.laptop.org/go/Forth_Lessons

About 15 years ago I started with my graphing calculator. Dont know if those have changed any over the years.

It was texas instruments flavor of basic. Simple enough to get started, automating my math homework :) Just move right to get to the edit 'tab', and select the program you want to edit. Right once more to create a new one.

By the way, if any of you reading this happened to be the manager who decided to spend a few extra cents including explanations for if/then, for loops, variables, etc in the back of the manual, THANKS! You are probably the reason I have the career that i do today. Once I realized that an evening spent programming meant no math homework for a few weeks, I was hooked!

According to the Calliope FAQ and Mission Statement, it's targeted at "3rd grade and up" (meaning approx. 8-10 year old) and in addition to the block editor supports mbed, with Micro-Python support planned for fall 2016.
The unfortunate thing is that there seem to be a lot of adults who think they can't learn to program without those blocks.
I wonder how well kids take to tech depending on what their parents or siblings are involved with.
What about 5 year olds? Lots of them have trouble typing in properly.
They did fine with the ZX Spectrum, where keywords autocompleted on a single keypress (eg, at a point where it was valid, pressing p got "PRINT" or j got "LOAD"). Every key had legends showing what it would produce. Great for a 5 year old who could read but not spell.
This is not my experience of five year olds. I am a teacher.
And I was the 5 year old referenced. :)
When we go from lessons on flow diagrams to a block editor it goes OK.

When we introduce Python they struggle to get matching " and ( and indentation.

Sometimes it's about the pace of the lesson, what do you have to teach 30 kids in one hour? If you spend that hour explaining why the shell is different to a file 30 times, your lesson is over.

The thing with block editors is that they're easier to teach. Bare in mind that most school teachers aren't going to be proficient in an imperative language. Some barely cope with MS Word and Excel.

It's very easy for us to harp on about how language 𝒙 is easier than Scratch et al, but we are able to debug programs that fail to compile or execute as expected. We are able to assist with writing the syntax from memory and we can set up the development environment (code editor, language framework and run time, etc). This is all stuff that block editors make easy.

It's also worth noting that most primary schools - which is the sort of level that Scratch is introduced - don't even have their own on-site IT assistant so if the teacher gets troubled by software then they often have to wait a few days for their contracted support to next visit the school.

You may also avoid the frustration that is "syntax error" when missing some ; or similar somewhere.
> if the teacher gets troubled by software then they often have to wait a few days for their contracted support to next visit the school.

If it's to do with the curriculum, that's what the STEM Ambassadors are for too - we're often only an email away.

https://www.stem.org.uk/

The thing with block editors is that they're easier to teach. Bare in mind that most school teachers aren't going to be proficient in an imperative language.

It's very easy for us to harp on about how language 𝒙 is easier than Scratch et al, but we are able to debug programs that fail to compile or execute as expected. We are able to assist with writing the syntax from memory and we can set up the development environment (code editor, language framework and run time, etc). This is all stuff that block editors make easy.

It's also worth noting that most primary schools - which is the sort of level that Scratch is introduced - don't even have their own on-site IT assistant so if the teacher gets troubled by software then they often have to wait a few days for their contracted support to next visit the school.

What is also important is the number of kids you are trying to teach at a time. Kids > 8 then blocks mean that everybody is somewhat productive through trial and error, even if some are held back by the interface. Try 30 young kids with a standard text based language and you end up achieving very little in a single class.
Especially if you have someone who is more hands on getting stuck on a cryptic interpreter error.

We are all likely familiar with the non-informative "syntax error".

All too familiar :) Semicolons are kind of an un-intuitive thing for the novice. And languages have more complex rules than "put semicolon at the end of every statement" :/

"non-informative "syntax error"" We as an industry really need to improve error messages. I got a new chip and pin card the other day, and forgot you had to go to an atm to activate it first. Error 2392729???? How about, "please activate at an atm"?

Maybe we need an "Informative Error Messages Day" every year, where we are all forbidden from working on anything except improving our products error message.

And i think that was what drew many over to Linux from Windows. At least now you got some error messages that made sense (most of the time, i have seen the kernel barf up non-informative oops related to DRI because of something Mesa was doing).
Block style programming works great with kids that are just starting to read (4-6), and paremeter location and nested control structures seem intuitive.
(comment deleted)
deleted
Blue is also the complementary colour of yellow.
That thing looks nothing like the Star of David.
You can probably thank the US election for a lot of general confusion about what the Star of David looks like, and let's not even get into sheriff's badges. At least it's over soon.
I was thinking it looks more like a sheriff's badge....
People really upvote anything that contains "react" these days...
Your comment reminds me of quantum theory (you know, the part about observing...)

I didn't vote on your comment, but it looks like it contains "react" and got downvoted, so stating that "anything" would get upvoted obviously wasn't true.

However, if you hadn't had written it, the claim could have still been true.

So, your writing about some fact... might have changed it.

Is there a name for that kind of occurence?

I would name it a "self fulfilling contradiction" but nothing really comes up when I search that.
"self-defeating"

(though I thought OP's comment was actually quite funny.

I saw a micro:bit keynote at a big conference somewhat recently. Overall I have to say I'm not all that impressed with the strategic decisions. There were some reasons for rolling their own but they could have partnered with existing alternatives (the keynote struck me as a tad bit too "nationalistic" for lack of a better word...basically "we must do it ourselves because...REMEMBER ACORN GLORY DAYS").

Now it seems Germany is also rolling their own...meh. At least the machines will get into the hands of kids eventually and the software is open source which I like a lot. But I mean why not just ship the micro:bit (or other existing alternatives)?

And I agree with the blog post...if you must roll your own you might as well go the complete open hardware route.

tl;dr: Too much not invented here going on with these projects.

Edit: There's a reasoning for not choosing the micro:bit provided on the calliope website: no speaker, rgb light or microphone + the arrangement is strange and students would short circuit it too often; for not chosing arduino/pi etc.: too complex/needs too much extra stuff and is thus impractical in school use

Hi,

It was probably me you saw keynoting - perhaps at this year's EuroPython? I'm one of the volunteers behind the MicroPython related work for the micro:bit.

Sorry you thought I was nationalistic. That's completely the opposite to my intention. :-(

To set the record straight, my point about the Acorn BBC micro was only:

1) The BBC already have done something like this before and have "form", resources and reach in this respect. 2) The BBC micro gave the 8yo me the sense of wonder and excitement in computing that inspired me to become a programmer.

These points have absolutely nothing to do with the decision of the BBC to create the micro:bit project.

They wanted a device that wasn't as complicated as a Pi but that also contained enough hardware to be a compelling "device for thinking" as Seymour Papert would put it. A huge amount of research, development and testing that went into working out how the device should function. It certainly wasn't a case of NIH - we were painfully aware of the danger of wheel reinvention. That the BBC is a UK based organisation is completely beside the point. In fact, all the Python related work was done by an international group of volunteers - reflecting the Python community's diversity and something I want to celebrate. Furthermore, the team who did the Microsoft related work are Seattle based.

Personally, I think it wonderful there is a German team working on an alternative. I'm also hopeful they'll be a lot more open about the hardware - the BBC have been dragging their feet in this respect although I know they intend to eventually open source hardware schematics.

Let many flowers bloom!

The important thing is kids get exposure to platforms that help them realise that programming is something that'll help them do valuable stuff. This isn't just about creating a new generation of engineers; Rather, I'll know we've succeeded if in fifteen years I meet doctors, teachers, artists, musicians, lawyers, civil servants and other professionals who are computer literate enough to know how to effectively explore and make use of such technology.

David Allen, the producer involved with the original BBC micro from the 1980s, said it best: "The aim was to democratise computing. We didn't want people to be controlled by it, but to control it."

This isn't nostalgia for the Acorn "good old days" - it's a sentiment that's just as valid today as it was back in the 1980s.

I look forward to seeing how kids get on with all such devices. :-)

FWIW, it wasn't EuroPython. It was Muc2016 in Aachen, Germany (human computer interaction conference)

Thanks for the explanation :) We're pretty much in agreement overall, some project choices just seemed odd though. These projects tend to be bureaucratic beasts on top of the technical challenges. One of the interesting takeaways was that the micro:bit team learned a lot of non-technical lessons that are valuable (how to best deploy the devices, what kids will do with them, what's especially interesting etc.)

"""A huge amount of research, development and testing that went into working out how the device should function. """

I guess that's where I disagree. I feel all this afford could have been invested into creating better software for existing solutions and focusing more resources on pedagogical aspects. At the end of the day the micro:bit costs 13-15 pounds a pi-zero costs maybe 6? I don't feel the hardware side of things provided the most value for the invested tax money I guess. HUGE DISCLAIMER: if the hardware is open sourced fully eventually (I also heard/read it's planned eventually) then I'm actually cool with building yet another smallish computing device.

"""This isn't just about creating a new generation of engineers; Rather, I'll know we've succeeded if in fifteen years I meet doctors, teachers, artists, musicians, lawyers, civil servants and other professionals who are computer literate enough to know how to effectively explore and make use of such technology. """

Completely agree.

Great stuff and many thanks for responding!

Hah... it wasn't me talking at Muc2016. I wonder who it was? I'd love to know who... :-)

FWIW, here's my EuroPython keynote, including singing micro:bits:

https://www.youtube.com/watch?v=JVaF6uZuSIU

Would love feedback!

It was David Crellin.
One of the great things about the Microbit is how simple it is - sometimes it is so much more difficult to produce something that is simple and intuitive, and that's the case here. The Pi Zero is a great device, of course, but as a full single-board computer it requires an SD card with OS, keyboard, display, etc. Now with all those add-ons it no longer costs 6 pounds, and neither is it as simple to use. With the Microbit, I've sat down with both young students and teachers and taught them how to use the block-style language to write a simple program and upload it in just a few minutes. They can then plug in a battery pack and walk away with it to show to their friends. It's a great board. Having Bluetooth on it is a ++, since you can then program it from a mobile phone. How great is that?

In the US it's been wonderful to watch the development of Adafruit's Circuit Playground, another really great board for learning. It has a slightly different intent, and it's programmed using the traditional Arduino framework, but having the Neopixels, speaker, microphone, and so many positions to attach clips for expansion etc is just brilliant. It's also super portable with a battery pack once you've flashed a program onto it.

Having all these options for learning computing gives educators, parents, and kids the ability to select what's right for them: the challenge now might just be getting the information out there so that it's easy for them to pick!

So this post is not about React? because captial R ...
Words in titles are conventionally capitalized (with the exception of "the", "a" and similar).
I've often wondered: Is it an English thing or an American thing? Is it recent or has it always been the rule? Does it depend on the 'class' of the publication?

To me it is unreadable, a real PITA to process such capitalised titles. Especially with English language, for it has very short words, hence capitals can harm the reading rhythm every 4 or 5 characters; and the same word can be a noun, an adjective or a verb depending on the context (and there is close to no context in a title).

The author messed up. Titles and "Proper Nouns" should be capitalized. The title of a book, the title of a movie, the name of a town, the name of a building, someones name, etc. Although this isn't the case when the title contains words like the or of or some other minor word.
So I checked a bit for the newspapers.

None of the English newspapers I checked does it.

In the USA, Wall Street Journal, NY Times, do it; but USA Today, LA Times, Chicago Sun-Times, Denver Post, Chicago Tribune don't. Washington Post apparently does or did both.

None of the Australian newspapers I checked does it (and at first sight, most of them seem to fall in the following category...).

Tabloids either use one foot high full capital titles, or don't capitalise.

Not any French, Spanish, German use this capitalisation style either. Of course Germans do capitalise nouns, as they do in regular text.

So, it seems to be an American-only thing, and not even widespread there (for newspaper titles).

https://en.wikipedia.org/wiki/Letter_case#Headings_and_publi... doesn't have much info, but does claim:

"As regards publication titles it is, however, a common typographic practice among both British and U.S. publishers to capitalise significant words (and in the United States, this is often applied to headings, too)"

As to readability: I think you should see title case as a way to make text more noticable without going for the nuclear option "ALL UPPERCASE". If you look at it that way, you will be happy whenever you see title case.

I can't speak to other countries, but it seems to be the norm in the US. APA (American Psychological Association) style calls for capitalization of major words in titles, and that seems to be the most commonly assigned style for college students. The other two common styles I've seen referenced in the US, MLA (Modern Language Association) and Chicago Manual of Style (usually just referred to as Chicago style) both also call for similar capitalization.

I don't know of any standards that call for normal sentence capitalization for titles, so I assume they must be in-house standards or some standard that is not common in my domain.

Interesting. As the article says, Germany really has to play catchup here, as there's no culture comparable to the UK education system here (we had no equivalent to the BBC Micro, for example).
Eh, this was posted about the same minute I was ordering one Micro:bit from Amazon UK (this one: https://www.amazon.co.uk/gp/product/B01G8X7VM2/ - perhaps the AAA battery holder is not really needed, if one has an USB power bank, but ...).

Intended for a couple of youngsters with many hours of Minecraft under their belts, and curious about making games, etc. Did not go too crazy about fizzbuzz in Python on a terminal screen (youth these days ;-)

Fizzbuzz? Were you interviewing your kids for a tech Job? :)
The other way around ;-)
Having played around with Raspberry Pi, Arduinos of all stripes, and micro:bit I was disappointed by the micro:bit. But I've also seen children use it in a school environment and seen the sheer delight of writing code that makes something do something.

It's biggest limitation is the display. It's a pity that something with a bit more pixel density wasn't possible because displaying text on it is a pain and 5x5 is really limited for graphics.

They've hinted at a new release next year with higher pixel density - as the Foundation is looking at a worldwide audience they need to display other scripts.
The motor driver , speaker and mic are great additions. One thing I like About microbit is its power consumption. It can last months on a battery. I just wished it was smaller.

As a software guy who plays more with hardware, I really just want a phone with a gpio output, small form factor and low power consumption enough that it could run off solar power.

Why can't we have that?

I hate to rat-hole on the tiniest nit, but the term "Alligator Clip" overtook "Crocodile Clip" in about 1938...

https://books.google.com/ngrams/graph?content=alligator+clip...

(OK, maybe it's a regional thing.)

Yep. Regional. If you choose the British English corpus you will see Crocodile Clip is significantly more popular.

I am British and would say Crocodile Clip, not that I care much either way.