But after that, I think it's time for some Ruby or Python. I did Basic at that age.
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.
- 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.
> 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.
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":
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!
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...
[1] http://www.valvers.com/open-software/raspberry-pi/step01-bar...
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?
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.
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 :(
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".
> 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...)
https://www.microbit.co.uk/create-code#
You can also program the hardware directly.
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)
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!
We are all likely familiar with the non-informative "syntax error".
"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.
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.
If it's to do with the curriculum, that's what the STEM Ambassadors are for too - we're often only an email away.
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.