Show HN: Robotopia – Introducing kids to coding with tiny virtual robots
github.com
github.com
https://www.youtube.com/watch?v=CQqcvhR568E
It was something else, at least back then. (I do remember thinking it would be really hard to play without having someone understanding at least basic japanese around.)
The programming screen is shown briefly here:
https://www.youtube.com/watch?v=CQqcvhR568E&t=188
I found this video from this web page, where there's more text and images: (Chrome with Google Translate works okayish.)
As I've told anyone who'll listen, I was shocked—shocked!—to find that, once they'd gotten past the preliminaries (first a virtual robot game like the OP, then standalone bots with onboard UI's resembling repurposed TI-80's), the "real" programming takes place on a PC using a barebones IDE and a hot new language called C. In case you haven't heard of it (it's so hard to keep up these days), C is a language invented by Dennis Ritchie to help six-year-olds learn computers through interactive play.
And how do the kids spend their forty-minutes-a-week? They type some lines of C, then compile it to target the bot, which appears (thanks to a virtual COM port driver) as COM3 or COM4 or COM something, as long as the bot is plugged in over USB. Then they go to the bot, unplug it, and, after a sequence of menu selections on its wonky touch UI, which usually requires the assistance of a pencil eraser, they may "run" the program, at which point, all going well, the motors actuate.
At this point my listener is gone, so I'm just walking down the street ranting, "There's so much wrong with this!" I go on to complain about how it's "insane" that children should be subjected to a development experience that we know is abysmally inadequate for the grown-ups who practice it for a living! (cf Bret Victor)
This is the GT program: they had to score 97th percentile on a standardized math or verbal test just to qualify, and only six of them were invited to the botball team. They can focus as well as anyone their age. But consider what we're asking of them! A typical interchange devolves as follows:
0. Great, ready to see something happen? Yeah, me too!
1. Wait, so one more thing: because of reasons, you need to type a semicolon at the end of every statement...
2. Oh, a semicolon is a... it's like a colon except it has...
3. A colon is like... anyway it doesn't matter, you need a semicolon...
4. It's right there on the keyboard next to L... just type it
5. No, don't hold shift, that was only for the parentheses...
6. The parentheses were for the... arguments...
7. Okay, you're not in the right place, you need to move the cursor...
8. The cursor... do you see the blinking line on the screen?... look, right there, where I'm pointing...
9. Yeah, you need to click exactly right there... you know what just use the arrow keys...
10. The arrow keys are over on the right at the bottom... use the up arrow, the up arrow... that one...
11. Keep pressing it, keep pressing it... you have to go through the whitespace...
12. Whitespace is what we call the part of the program that's invisible, but it's there...
13. Oh no, out of time! See you next week, try not to forget about semicolons in the meantime! There are servos on this thing just awaiting your command!
Look, Dennis, I have nothing against your footgun—I learned it after BASIC when I was twelve like all the other kids and I turned out just fine. But, as Alan Kay said in a Q&A, "I hate to break it to you, but C is not a high-level language." [citation needed. I think it was at a Quaalcom event.]
And don't even get me started on the feedback loop, officer.
Anyway, thanks for posting this! One of the other parents asked me what her child could do at home to practice, and I'm looking for resources just like this!
:D
We're using the OpenRoberta Lab, which supports actual robots as well as simulation.
"I had some quirk in my history that motivated me to slog through years of seemingly meaningless crap to get to where I am today. It worked out great for me! Now I can't imagine any other path actually working for anybody else."
I think I know what you are getting at, there certainly seems to be the bias of Software Development being the best profession in the world.
But with STEM in general, what I personally care about is teach my kids rational and logical thinking, and of course the ability to build things. Occasionally I ponder dong a sewing course together with my kids, and I might one day. It's nice to have skills that you can build things with. But it is hard to beat the possibilities you have with programming.
Besides, it is a skill that could come in handy in many other professions, as well as a fallback line. Also, it is unfortunately the only thing I am good at, so what else am I supposed to teach my kids?
This sounds like the arguments middle school administrators make for cutting band programs. Not everything has to be for every kid. For the kids it's meaningful for, it's irreplaceable.
How much time in the class did you spend working on the competitions vs just doing rote exercises?
We did a questionnaire at the end and got pretty good feedback! About every student enjoyed having been there. A couple of students said that they would have liked to get to know more about the internals of the game and also about how to program in general. We also raised interest in our course of studies.
You have programmable tanks that had could move, scan with a radar and shoot. You had to create the behavior for them in Java.
Should it be "move the robot to the chest" or something instead of "the metal block?"
Cool app though.
Hey, nothing against the author's creation, but I do often wonder why we keep re-inventing something that Seymour Papert figured out a long, long time ago - and gave us the tools to do it with!
Furthermore - if you read his book (Mindstorms) - the goal isn't to "learn programming" - it's to learn to think computationally, something which can be applied to all areas of learning and life. Furthermore, it's done by manipulating a virtual artifact (the turtle) to create further artifacts - artifacts which can be interactive.
Part of me tends to wonder if this "shoehorning" of education into nice little "holes" (much like rote memorization) isn't more an effort to stifle kids natural urge to creativity, questioning, and ultimately skepticism?
How dare we foster an education that could lead to progressive liberalism and an unfettered mind...unthinkable!
Each tool serves it's purpose. Currently i'm teaching programming to year 8,9,10 students. We use Logo, Scratch, JS (Khan Academy) and some game dev using unity3D
Each tool has it's place and sometimes it's not about the age, but the predisposition of the cohort. E.g. Logo isn;t usually a year 9 starter language (it's usually used for younger kids), but with one particular group of 9s it was the right starting point, so as an educator I say, the more tools we have the better :)