Microsoft MakeCode
makecode.com
makecode.com
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.
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. :)
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.
- 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.
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.
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.
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.
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.
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 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.
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
So to answer your question. Yes very similar to scratch. In fact it transpiles to a JavaScript like language as well.
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.
Not MakeCode's fault, this is great software. But clearly this is Microsoft's fault.
I personally have a JE server hosted through a company that I play on. I like the ability to have server-side plugins (through Spigot) and being able to back up my world automatically offsite.
Edit: I may also be misremembering, I primarily use Mac OS, and Education Edition has a Mac OS version. Plus Education Edition has some unique features that I would like to be able to use.
Ideally, I'd be able to get a free transferable license from the Microsoft store for already owning the game. (lol, I know..)
*edit: I shouldn't be so cynical; and am gobsmacked - there is a free version available for existing owners. Nice job Microsoft! (Login to Mojang account to claim the copy.)
I was also pleasantly surpise and with this I actually have a reason to use it. My 6y old has tinkered with the tutorial in Scratch and plays Minecraft like a mad man so this is a match made in heaven.
Almost makes up for having to buy it one more time on the Switch.
At BlockSchool, my online coding school for kids 6-13, we've had a pretty good experience using Blockly. We've managed to hook it up to our own Minecraft-esque world.
If you're interested in what we're doing with kids you can learn more here: https://block.school
Our startup has been doing the visual programming thing successfully for around 6 years now, and our latest tool is at www.construct.net. Maybe they should give us a call since it looks like they're struggling to get this right ;)
And that’s just one bullet point in the feature set.
Haven't had time to play with it yet.
It's obvious that coding is becoming a skill on par with math for its utility in the modern world.
If more people understand the fundamentals of coding, it will completely change the user interfaces and sophistication of applications in the future. People will be able to code up simple features and behaviours they need, for example.
The "well rounded" argument works both ways!
Most people a few centuries ago used to think about the world without any scientific awareness.
There are still people like that, and there always will be, but people in developed nations with an education are far more scientific in their thinking as an average trend.
The same will be true of the analytical mindset for coding
> It's obvious that coding is becoming a skill on par with math for its utility in the modern world.
I am not sure it's obvious, sadly. I feel like having a programming environment on your computer is similar to having a workshop at home. So you could repair and build many physical things yourself.
I can imagine an alternate reality where most people have workshops in their homes, and they repair most (and build some) of the stuff they bought themselves. But it's not the highly-specialized, consumer-oriented society we live in (actually, I think this was more true in the past).
In a similar way, I could envision a world where everybody routinely scripts their applications to automate and customize them. But the trend seems to go the opposite way, away from scriptability, to specialized, task-oriented applications. So I am skeptical this world will happen.
I would love coding to become a new form of literacy, and I am certainly going to treat it like that with my kids. But I currently don't believe many people will use these skills on regular basis.
Addendum: It's interesting that the very same companies that want everybody to code are the ones that don't want the software buyers to have to customize the applications themselves, so they could sell them the customization.
VBA does not get much respect, but there are probably a vast number of accountants, managers etc. today that write code in Office applications.
In my experience the number is far from 'vast'. But whatever the actual number might be, it is definitely much too small.
It's been added to the primary school curriculum in the UK. And annecdotally, a good number of my (20-something, recent univeristy grad) friends are finding that a little coding is neccesary for their jobs, even if it's not the main focus.
But it should be pointed out that the real socialist society was much more do-it-yourself than western capitalist societies are. Mostly out of necessity, but partly because people had quite a bit of free time and couldn't freely associate (and argue about politics on social networks). So hypothetically, if the communist regime continued to this day, programming skills would probably become much more useful to an ordinary person.
It's not even that their minds are different from technically inclined people or that they're just dumb. It's just that they have OTHER occupations in life, and using a computer may be just a means to look up info, entertainment, communication or as a digital assistant.
Computers are deep, involved and time-consuming, once you scratch below the surface. And you generally don't have the time in modern life to be holding a full-time career AND to investigate the innards of computing systems, even just the software.
EDIT: typo
That's what I don't understand. These companies completely forget the law of supply and demand when it comes to hiring. They keep complaining they can't find anyone yet the salary they are offering stays the same. I'll bet that if you double or triple what you're paying that shortage you're complaining about will mysteriously disappear.
The squeaky wheel gets the grease.
(PR honchos are kept from idleness, newspapers pipelines are filled, company didn't want to hire anyway, and maybe the gummint will drip in some cash for training internships. Win, win, win, win.)
doubtful, rarely the self taught can pass the hr screening