In my post on programming BASIC on the TRS-80, I lamented how much harder it is for kids to start coding today than it was in the 80s. Wanted to capture some of the great suggestions from the comments on Hacker News.
I’ve had surprising luck with doing simple Logo with my daughter (4-1/2). Actually I feel a bit guilty as she’d like to do more. So far we’re just doing drawing (no loops or anything), but with all the tedium of finding the keys and getting the commands just right. I helped her make one routine that randomly changes the color, which she likes. (She named the routine after herself – kids don’t need to stress over proper naming ;)
But I really wish there was material to get her started. I haven’t found any introductory Logo books – finding an old book and updating it to a new dialect would be fine, but I’d appreciate some structure and thoughtfulness about the order of introduction. I probably should print out some primers too, so I don’t have to remind her of RT and LT and FD every time.
I’ve been using this Logo interpreter. It does all the traditional stuff pretty well, but it could also use this same sense of structure and content. A kid should be able to sit down and think: here’s a thing I could try to do. And here’s all the tools I need to do it. Really that’s just content.
On the fancy side Hopscotch has been really impressive (significantly better than Scratch), but being iPad-only has been a problem. That said, my daughter still appreciates Logo even compared to something fancy.
(One important thing about my daughter’s interest: I talk to her in detail about what I do. The importance of this occurred to me during a parent education event I was at, where they noted: when you ask your kid how their day was and they disappointingly say “fine”, have you been telling them how your day was? Parents need to demonstrate that kind of storytelling and engagement, and in my experience kids suck it up more than you’d expect, even stories about seemingly boring work stuff.)
The REPL still lives! You need Racket. There’s a lot of great programs now using Racket/WeScheme in education for younger kids.
Another project though I think really seems to be gunning for that old-school feel with some modern conveniences is PICO-8, which is a retro Lua VM meant mainly for designing games, complete with REPL, built in editors, and even PEEK and POKE. :D
To be honest though, I also kinda wonder how well you’d do just plunking a kid down in front of one of those older machines. Especially the Tandy ones. The Color Computer came with an amazing manual, that’s pretty much what got me into programming all on my own as a kid.
Same here, that growing feeling that we have lost something during the 90’s when home-computers were replaced by ‘business PCs’ drove me to write an emulator to preserve some of the magic in the past few months. Here’s how to write a ‘Hello World!’ program on it in BASIC, FORTH, machine code and assembler.
In my opinion, the RaspberryPi is the closest thing to a home-computer we have today, it encourages to learn, experiment and create things, it would be nice if it had a simpler, more home-computer-like standard operating system though. Linux (or any other current desktop or mobile OS) is simply too complex and scary. In contrast to that, smartphones and tablets are closed ecosystems optimized for consumption. I don’t see how these closed-off platforms encourage kids to explore and learn to create something on their own.
I, too, wrote my first programs on a trash-80, sitting in the store and saving the things to a high-performance cassette drive ;) But I no longer think that’s the thing…the point back then was, to me at least, “here is something big that no one else I know is doing but its so obviously very cool, empowering, and in a way, secret”.
Nowadays, with so many devices intruding on every aspect of our lives, there is just very little of that secret anymore, and while of course its hard for me to know how modern tech is affecting kids nowadays, I just cannot imagine they can feel the same way as I did, sitting alone in a Radio Shack in 1978, writing BASIC programs in wonderment.
From Sean Dav
I have just started teaching my daughter to program. I would certainly agree that starting off is not nearly as easy as it used to be. Kids love interactive and graphical environments and trying to do this in any mainstream language quickly becomes non trivial.
I chose Python and pygame but it gets confusing for the child to see things like:
from pygame.locals import * and for event in pygame.event.get(): if event.type == QUIT: pygame.quit() and size = (120, 640) screen = pygame.display.set_mode(size)
One can tell her to ignore these and just accept they are necessary but it does cause issues and looks very intimidating to a beginner.
I had really good luck with old school Visual Basic 6 teaching my daughter to program. It was already obsolete but still ran at that time. It was far easier and more straight forward to get something done in that than any other language. It’s probably still the case.
processing may be a nice alternative. very small boilerplate to have a graphical/interactive program running, and a cute ide to keep your sketches.
For a beginner I’d say Pascal is more approachable than Python and even BASIC. Free Pascal 3.0 runs on lots of platforms and Lazarus gives you a visual development environment.
Greg here: I’ll +1 this as Pascal was my second language – picked it up after Scott Yost introduced it to me in middle school.
Basic is still alive and well, providing a simple programming environment for beginners. It has returned to being a hobbyist scene, just like in the 80s. Basic compilers are written by hobbyists for hobbyists.
Monkey X is by far the best BASIC compiler available to date. Purebasic is still good for GUI stuff, but it’s not OOP like Monkey X. And Monkey X can support native GUIs if a library or wrapper were created (and may already exist).
For an Applesoft BASIC interpreter, check out DiscoRunner. It comes with close to a thousand BASIC listings.The pixels are rendered in OpenGL 3D and you can play original games in a 3D perspective.
Wow nostalgia taking me back to learning level 1 basic on a TRS-80 Model I at the Radio Shack store.
But the ease of learning BASIC is alive and well today, you can write a PHP program with as much ease (then you can learn to write better code later but the point is the barrier to entry is very very low).
You can even run PHP as an interpreter in a DOS-like command window in Windows, very easy.