Wow, cool - the 'block editor' looks a lot like Scratch. Is it Scratch? I'm having trouble finding many details about the technical side of it.
I think 'visual programming' has a lot of promise for education, but...jeez, after looking into it for awhile I'm sort of losing hope that it isn't a gimmick or fad.
Has anyone actually made a complex project with these initiatives, and had it spark an interest in computing/electronics that didn't already exist? Have they managed to make the jump from visual interfaces to lines-of-code? Is there any evidence that these programs REALLY help when it comes to engaging a wider group of people?
I'm starting to worry that it's just more cynical grant-grabbing as the projects pile up and the results don't seem to. I hope it isn't, I just worry that this is all starting to sound a little 'magic solution'-y.
The Arduino came out about 15 years ago, for perspective.
Only a single data point, but Scratch has definitely sparked an interest in programming in my 12 year-old daughter.
Though still early days, she has taken her first steps into learning Python. The concepts of loops, variables, counters,
and even objects has definitely carried over from Scratch.
She still spends most of her time in Scratch though, sometimes creating her own games or drawing programs, sometimes playing others' creations, sometimes looking behind the curtain to see how her favorite games work and doing light remixing.
Will this turn her into a career programmer? Probably not, but she has told me that she now really appreciates what makes programs work, and every time she sees a new app she can't help but think about how it might be structured.
Overall, I think that's a pretty good argument for early exposure to visual editors.
Well, that is great to hear - with any luck I'm just being too cynical.
But what I'm saying is, it sounds like your daughter has a nurturing environment, easy access to these tools, and a healthy amount of encouragement.
Are these new tools any better at reaching the marginalized people who the projects profess a desire to educate? That's where the real impact would be, in people who wouldn't otherwise have the opportunity/environment to learn about these concepts.
But...most of this stuff is fairly expensive, and doesn't seem to be gaining any traction in any sort of national-scale programs. Maybe I'm just not paying enough attention.
I have a 7yo daughter and she has just tried some block based programming challenges and she loved tinkering and predicting what the program would do, and then fixing the bugs. Gave her a real sense of accomplishment.
I also don't think it will automatically send her on to a career as a programmer. But I think it is important for everyone nowadays to have at least an notion of how software works, given that there is software is almost everything we use these days...
> I think it is important for everyone nowadays to have at least an notion of how software works, given that there is software is almost everything we use these days...
I couldn't agree more. Education isn't just learning facts, it's providing tools so kids can contextualize the world around them.
When the world is powered by software, even a passing familiarity with the basics of programming will be as important as learning history, literature, or basic science.
There is a toggle between blocks and javascript in MakeCode. You can write code in blocks and switch to javascript or vice versa. This dual modality hopefully helps students to make the jump from blocks to javascript on a long term.
Scratch 3.0 uses Google's Blockly in their new software, for those curious about the similarities. The tech is widely used in many different applications, as evidenced by Microsoft's use of it in MakeCode.
Though I'm not a part of the team and so can't provide much more information beyond an interested outsider, unfortunately. :)
Blocky team member, here. Microsoft and MIT/Scratch have been amazing partners and contributors. We're really excited about Scratch 3.0 and the efforts on Scratch Blocks.
> I think 'visual programming' has a lot of promise for education, but...jeez, after looking into it for awhile I'm sort of losing hope that it isn't a gimmick or fad
This comment strikes me as slightly oxymoronic. If it does fulfil its promise for education, how can it just be a fad? Is education of no value?
Even in narrow instrumental terms, it has value in providing a pleasurable and accessible approach for kids to try out programming. But beyond that, I wonder if the platforms that provide both block and text representations of a program might help programmers at an early stage to gain a more abstract view of what programs are? A mental model in which (eg.) javascript syntax is just one representation of an algorithm, isomorphic with one using 'mere' visual blocks, is pretty easy to come by with these platforms. That might have real educational value (at least for some learners), completely regardless of whether or not visual programming extends to professional uses.
Much of the educational material using these platforms that I've seen does seem pretty poor though, persisting far too long in providing students complete screenshots of the final program. Learning activities then become little more than a rote pattern-matching exercise.
[citation needed], as the very next paragraph of GP's asks:
> Has anyone actually made a complex project with these initiatives, and had it spark an interest in computing/electronics that didn't already exist? Have they managed to make the jump from visual interfaces to lines-of-code? Is there any evidence that these programs REALLY help when it comes to engaging a wider group of people?
--
Personally, I'm not sure if "visual programming" itself is introducing anything useful to make education easier. The difficult thing in getting started in writing code isn't writing, it's all the bullshit you have to do to set things up (installing a compiler, editor / IDE, creating projects, generating boilerplate code, deploying, etc.). Make that simple, and learning to code becomes simpler too.
About the only case where I can imagine "visual programming" being better than writing code is if you're trying to teach 3-5 y.o.
> Personally, I'm not sure if "visual programming" itself is introducing anything useful to make education easier. The difficult thing in getting started in writing code isn't writing,
I worked with a 6 year old child yesterday, who was exposed to Scratch for the first time. Within the class hour she had several animations running, all controlled from the keyboard. It was all her own work -- I just showed her the ropes and checked in with her from time to time whilst rotating amongst a bunch of kids.
What the 'visual' syntax offers in this instance is a discoverable palette of things to play with, and visual cues for what fits with what. That's far harder with a linguistic syntax, particularly for young kids, as you suggest.
I'm quite new to teaching programming, so don't have much to go on. I'd say the main problem with Scratch is making a transition from dragging blocks to writing code. I'll be interested to see if the MakeCode/code.org approach is helpful
> Except there are html, css, javascript. Everyone already uses a browser so nothing to set up.
You haven't seen the current JS ecosystem, have you?
Now if you opt to ignore the entire modern JS scene - all that Babel, Webpack, NPM stuff - and just write plain old JS in a text editor to execute directly, then yes. And with browser dev tools having a half-decent REPL, I'd say this is a pretty good way to introduce someone to programming. Browsers have powerful features for UI and graphics built in, so even the "hello world" programs won't be boring.
(Also: technically, there is something to set up; you won't be able to run everything through file:// because $security, so you need a minimal local HTTP server to serve your files for you.)
Is writing "plain old JS in a text editor" really that rare nowadays?
Honest question - I've only done a few websites, some with basic JS functionality and a few more advanced (for a website, that is) Go apps now - but never really felt the urge or need to reach for the "modern JS scene", so I'm unsure just how prevalent that kind of setup is.
And while there's some fragmentation and hacks that justify derision, it's not that bad. Any complex software component needs a package manager and a build system.
I don't think anything could scare a child away from programming faster than the three headed hydra that is html, css and javascript.
I mean, I know how we got to where we are and it makes sense - "thing works, use thing more". But with html+js+css the amount of bullshit about angle brackets and ids and names and escape characters and css quirks and floating divs and lambdas and selector syntax that you need to get through before you can make a rudimentary game or interactive page is very unfriendly.
> I'm sort of losing hope that it isn't a gimmick or fad
Visual coding is huge among people who aren't technical. I first got into "programming" when I was 9, through lego robots, they had a visual control flow thingy, basically visual coding. I think that must have helped me understand programming and its implications much faster when I got into college.
Visual programming is not ergonomic enough to justify never writing code again. It will remain a paramount educational tool, and a great tool for designers and game developers. I believe people do use visual programming for Unreal projects (Unity, maybe?), textures, effects, etc.
I don't think it is aesthetic enough right now to get the masses into it. Visual programming will eventually be important in getting people to do more complex things on the web (think IFTTT).
Just a correction: you are writing code with visual programming, its just visual code instead of textual code. You haven't gotten rid of code.
VPLs are great for people who aren't programmers and don't wan to be programmers; e.g. Facebook designers using Quartz Composer or Orgami, game designers using Unreal blueprints, Blender, and so on.
To be very pedantic, the context makes it clear I'm using "code" as shorthand to refer only to written programs.
True, visual code may well be a first class citizen in programming. As of today, there are still programs people would not write visually. It's a tool for simple procedural work, which could change as the ergonomics get even better.
Our goal is to reduce barriers surrounding syntax and discoverability, so that they reach computational skills (sequences, conditions, functions, lists and other data structures) faster and with higher confidence and motivation. With the motivation (e.g., "I already built this") and a solid foundation, text programming can feel more achievable to the student.
Max/MSP and TouchDesigner are used heavily in creative industry, especially related to large-scale "experiences" that marketing agencies throw in urban spaces.
Max/MSP is interesting because it was originally created under the auspices of a publicly funded French organization (IRCAM) before being commercialized.
Max/MSP has been around for a long time too. I've got a magazine article from 1997 about how U2 used Max to drive everything on their PopMart & Zoo TV tours. Not just the lighting & video screens, but also controlling the synthesizers & the effects pedals routing on The Edge's guitar for different songs. The whole show was run from a single Macintosh Quadra 650 running Max (though they kept a second Quadra 650 booted in case the first one crashed during the show). [The article was "U2 Live! The computers behind PopMart" by John Krogh, in the Nov/Dec 1997 issue of Music & Computers.]
I wonder at this point whether the causality isn't reversed. I.e. it's not LabVIEW that's popular because visual programming works for engineering; it's engineers doing visual programming because LabVIEW is the industry-standard fad, stuck in the self-reinforcing loop of universities teaching it because companies use it, and companies using it because potential candidates all know it.
As a software architect (current title, but I had a technical education, "electrical/mechanical", incl. technical drawing, lab work, metal work, decades ago, before studying CS), who prefers text most of the time I still can see the appeal of something like this (All links lead to pictures):
Even this is not any worse than a complex text-based software project, you can zoom to the part that you want to look at in detail, just like you navigate between modules/classes/code files:
Also beneficial for a visual approach is that that is how electrical circuits are visualized. It's been a long time, maybe they describe more electrical circuits in text (I know VHDL but that is not for all kinds of circuits, nor does it concentrate on the electrical aspects), AFAIK it's still mostly diagrams.
Another point is that unlike software, where you deal with abstract things in any case (even registers, if you program in assembler, are pretty abstract). What you design in LabView is made of actual physical components, and you really physically run wires from one to the next.
What is shown as an enclosing box with "gates" between inside and outside as in this diagram really looks like this, LabView is a simulation of a physical system:
I have done quite a few courses (edX, Coursera) over the last few years, and when there were LabView portions I had no difficulty and actually found it quite appealing. I would not say the same for software, where I still prefer text.
I think 'visual programming' has a lot of promise for education, but...jeez, after looking into it for awhile I'm sort of losing hope that it isn't a gimmick or fad.
Has anyone actually made a complex project with these initiatives, and had it spark an interest in computing/electronics that didn't already exist? Have they managed to make the jump from visual interfaces to lines-of-code? Is there any evidence that these programs REALLY help when it comes to engaging a wider group of people?
I'm starting to worry that it's just more cynical grant-grabbing as the projects pile up and the results don't seem to. I hope it isn't, I just worry that this is all starting to sound a little 'magic solution'-y.
The Arduino came out about 15 years ago, for perspective.