mBlock vs Arduino IDE

I have learnt C++ through the arduino IDE and built my own little autonomous cars, played around with almost all the cheap sensors available and managed to learn a lot of new stuff. Now I have been asked to show some younger learners a thing or two about robotics and they asked me to use mBlock. I tried and find it really difficult. I just don't seem to have the patience anymore.

so my question here is: Is it just me or do others also find learning those manipulatable blocks more confusing than the C++ code?

I suspect you're asking the wrong audience!

so my question here is: Is it just me or do others also find learning those manipulatable blocks more confusing than the C++ code?

Me too.

Good question :slight_smile:

I think it is hard for me to say, since I know programming on a decent level now, I did teach both Arduino and LEGO mind storms, for different audiences.

There are different aspects to it:

What is really good about the drag and drop blocks (blockly, scratch, duinoblocks, whatever) is that it is really easy to explore, as a novice in a certain language, When you don't know the words to express yourself, this makes it easier to find words from this limited list of 'blocks'.

Something like a proper autocomplete might also help a lot with this 'problem', still a user might not know what to start typing, but a exploratory user might get faster results this way.

Another thing is the visual aesthetics of the program. This is subjective, but I could imagine that Arduino code, looks way more scary than a sequence of blocks 'blockly'. I'm not saying that we should always design non-scary looking programming environments, but they should not make it look more complex than it is, but also not less.

Microsoft tried to do this (still inline programming, while having suggestions and making it visually different). But for me it feels painful https://www.microbit.co.uk/app/#edit:095b88c0-b8f0-45c0-c2f6-24d4a842c5cc:wQo27nqYS32Onv2q GitHub - microsoft/TouchDevelop: TouchDevelop is a touch-friendly app creation environment for iPa and the development will be stoped by the end of this year

Besides all these practicalities ask yourself the question why, why do they learn 'programming/STEAM' is it really to learn c++ (than definitely use Arduino/VScode/Atom). Is it (mechanical) problem solving, make the (mechanical) problems challenging. Is it learning about how the real world works, let them take apart devices, and hack into them... Is it learning that the world is make-able, let them work on changing the current world. Is it data and privacy, let them collect data in the school (in a visible way) and start conversations around it.

PS: Live debugging (seeing where the program is in the code is also super-nice for education, because this makes the whole debugging more visual and it is easier to explain concepts).

PS: Recently I heard that Buddy++ is popular in China to use as Arduino IDE, which indeed has auto-correct and the list of functions on the left.