Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: Robotopia – Introducing kids to coding with tiny virtual robots (github.com/robotopia-x)
133 points by pguth on April 5, 2017 | hide | past | favorite | 29 comments



This thing made me think of the japanese-language-only, Sega Dreamcast-only 1999 "Marionette Handler" mech programming game.

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.)

http://sesesega.blog90.fc2.com/blog-entry-940.html


See also the very slick Minecraft-based Blockly game from Microsoft. It's similar and pretty good.

https://code.org/minecraft


Very cool. The code editor looks a lot like scratch[0] but I can't find any references to it. Does it use scratch or was scratch an inspiration?

[0] https://scratch.mit.edu/


It's called Blockly. Google developed it, it's open source and free to use for everybody!


How are Blockly and Scratch related?


hmmm, programmable virtual robot - I think I've seen that one before :)

https://en.wikipedia.org/wiki/Karel_(programming_language)

http://karel.cloudmakers.eu/


I've been volunteering with the "botball" program at my daughter's school. As near as I can tell, Botball originated right here in Norman, Oklahoma, and it's offered in the "gifted and talented" program starting in the first grade (which my daughter's in). So I've been working with first and second-graders to prepare for a friendly "challenge" in OKC next weekend.

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!


I teach robotics courses and we also prefer blockly based languages for our projects aimed at kids. I don't understand people that think "real programming" needs one fighting with syntax when the semantics are hard enough for the untrained. And a visual programming language the syntax is usually either obvious or impossible to get wrong.

We're using the OpenRoberta Lab, which supports actual robots as well as simulation.


"C is a language invented by Dennis Ritchie to help six-year-olds learn computers through interactive play".

:D


Holy crap. Back in the day at Stanford we programmed our real world bots with ... wait for it ... Lisp.


I honestly don't understand what is the motive behind teaching young kids to code? The passion for computer science develops on it's own. Some kids like computers while other can't be bother with it and are more interested in other fields.


How can interest in computers develop if you are never exposed to it? I don't think the "interest develops on it's own" theory is true, not for any subject.


In my observation, there is a ton of survivorship bias in attitudes about STEM education.

"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."


The kids don't have to become professional Software Developers just because they learn a bit of programming. I let my kids draw, too, and don't expect them to become professional artists.

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?


>The passion for computer science develops on it's own. Some kids like computers while other can't be bother with it

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.


To my knowledge it has never actually worked either.


Certainly my interest in computers came from my experience in middle school in the early 1980s when my middle school decided to teach everyone Basic. Yes, not everyone became a programmer, but that wasn't the point.


How well did the competitions go? Did the kids like them? Were the programs complex enough to make things "interesting"?

How much time in the class did you spend working on the competitions vs just doing rote exercises?


We did two classes with about 20 students each. In both our offered courses we had balanced proportions of gender. Age ranged between 16 and 20 years.

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.


Do you think this could be used with kids at the age of 7-12 as well or will it be to complex?


That was the age group we originally had in mind. We guessed that it would work out fine :)


Most of the time was spent doing the exercises. We had a couple of rounds where students competed. I'd guess the last 15 minutes went into doing the competition.


Robocode back in the day was fun.

You have programmable tanks that had could move, scan with a radar and shoot. You had to create the behavior for them in Java.


> Blockly - Drag and Drop

Should it be "move the robot to the chest" or something instead of "the metal block?"


Also, it's really difficult to pull just one code block out if it has others below it. I can't figure out how to separate the ones below, which means if I mess up and need to get a code block at the top out, I've got a lot of rearranging to do.

Cool app though.


Usually in blockly you grab the one below the one you want, it's sticky with all the blocks below it. Then grab the block you want and drag off, then stick the whole thing back together.


LOGO, the next generation?


IMHO - more like LOGO, re-done poorly.

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!


>more like LOGO, re-done poorly.

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 :)




Consider applying for YC's W25 batch! Applications are open till Nov 12.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: