7 ms·
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
by msravi 10y ago
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/ http://biboxlabs.in/
- scoot 10y agoThe 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# https://www.microbit.co.uk/create-code# You can also program the hardware directly.
- linker3000 10y agoYes, the PlatformIO IDE (C/C++) also supports the micro:bit.
- pyb 10y agoI 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.
- linker3000 10y agoYeah, 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/ 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)
- ntoll 10y agoYour 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/examples https://github.com/bbcmicrobit/micropython/tree/master/examp... Hope this helps!
- deleted 10y ago[deleted]
- linker3000 10y agoDon't worry, you're preaching to the converted!
- willvarfar 10y agoThere 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/where-are-all-the-raspberry-pi-robots http://williamedwardscoder.tumblr.com/post/136598180858/wher...
- msravi 10y agoAgreed. 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-bare-metal-programming-in-cpt1/ http://www.valvers.com/open-software/raspberry-pi/step01-bar...
- willvarfar 10y agoA 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_are_all_the_raspberry_pi_robots/ 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?
- 10y ago
- mcv 10y agoI 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/ https://blockly-games.appspot.com/
- msravi 10y agoI 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.
- mcv 10y agoBlockly 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.
- foobarian 10y agoYou 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.
- 10y ago
- digi_owl 10y agoI wonder how well kids take to tech depending on what their parents or siblings are involved with.
- rmc 10y agoWhat about 5 year olds? Lots of them have trouble typing in properly.
- timthorn 10y agoThey 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.
- monk_e_boy 10y agoThis is not my experience of five year olds. I am a teacher.
- timthorn 10y agoAnd I was the 5 year old referenced. :)
- markdeloura 10y agoTypically for a 5 year old I'd point them to something more like Scratch Jr, or the themed PBS KIDS Scratch Jr. http://pbskids.org/apps/pbs-kids-scratchjr.html http://pbskids.org/apps/pbs-kids-scratchjr.html
- monk_e_boy 10y agoWhen 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.
- laumars 10y agoThe 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.
- digi_owl 10y agoYou may also avoid the frustration that is "syntax error" when missing some ; or similar somewhere.
- linker3000 10y ago> 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/ https://www.stem.org.uk/
- laumars 10y agoThe 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.
- dmoo 10y agoWhat 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.
- digi_owl 10y agoEspecially 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".
- ahartman00 10y agoAll 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.
- digi_owl 10y agoAnd 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).
- marianov 10y agoBlock style programming works great with kids that are just starting to read (4-6), and paremeter location and nested control structures seem intuitive.