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.
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 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.
Blocks editor is based on the fork of google blockly(https://developers.google.com/blockly/).
Though I'm not a part of the team and so can't provide much more information beyond an interested outsider, unfortunately. :)
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.
> 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.
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
Visual programming is the way most people work in electronics and game industry.
I really enjoyed designing my own circuits, making parts into usable components for my toolbox and visually simulate its behavior.
Just like doing shaders is way more productive to visualize the intended effect doing it graphically than typing GLSL/HLSL code.
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.)
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 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.
In 2018, it looks a bit different because VanillaJS is so 90's.
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).
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.
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.
Code: Python, JS, C++, etc.
I don't think this is confusing for our readers at all.
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.
- http://forums.ni.com/legacyfs/online/202594_Hololens_LabVIEW...
- http://sine.ni.com/cms/images/casestudies/a14_02.jpg?size
- https://m.eet.com/content/images/edn/LabVIEW-NXG_editor_1920...
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:
- http://www.ni.com/cms/images/devzone/pub/nrjsxmfm91216399872...
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:
- http://www.egr.msu.edu/classes/me451/me451_labs/robot/LabVIE...
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.