DIY 6502-based computer

Created by ceej. Last edited by ceej Tue, 17 Feb 2004 17:49:38 PST. Viewed 6676 times. atom feed

We were talking at lunch today about how you'd teach a kid about programming and computers the proper way, from the ground up. Today's computers are frighteningly complicated, though. The general consensus was that you should help the kid to build his or her own computer, probably 6502-based. This can end up being complicated, but seems cool. There are lots of 6502 projects that can be tried.

The Apple ][+ in my garage booted up fine the last time I tried it. Wonder if it still works.

Miyamoto for kids? permalink

Greg Costikyan wrote something last week about how Miyamoto is not just for kids, and it's cultural misperception in the US that bins his games as kid games. (Miyamoto is the Nintendo game designer responsible for the Zelda and Mario games.) This spawned some interesting comments that moved in a totally different direction.

Reading that made me want to try Pikmin.

Damien Warman : Tue, 17 Feb 2004 17:26:10 PST permalink
Heh. I read that as "Miyazaki is not just for kids" and thought "so true, so true, hang on, Miyazaki makes games too?, no, wait, argh". Damn brane.
ceej : Tue, 17 Feb 2004 17:40:31 PST permalink
It's exactly the same cultural issue, though! The westerner sees animation and thinks "is for kids". The Japanese viewer doesn't make that assumption.
dws : Tue, 17 Feb 2004 18:07:28 PST permalink
Motorala used to have evaluation kits for the 6809 that included a breadboarding area. We used them, back in the day, to study Microprocessors in college, back when they were, uh, new. There was enough hardware in the kit to toggle in instructions, which we lovingly hand-assembled while standing in the snow.

The closest thing to this now is a Basic Stamp, though, as far as I know, they don't let you get down to the instruction level. But you can build some cool hardware projects with them.

ceej : Tue, 17 Feb 2004 18:22:58 PST permalink
The Basic Stamp kits definitely look like the kind of thing we were talking about.
Zink : Tue, 17 Feb 2004 22:47:46 PST permalink
Don't talk to me about snow. When I was a frosh, I got a work study translating a fortran matrix math program into Apple][ assembler to feed an arithmetic coprocessor. To get to the computer I had to go to the roof of the engineering building and walk across to a little shack, in Ann Arbor, in the winter, in knee deep snow with a steady forty mph wind.
Zink : Tue, 17 Feb 2004 22:56:28 PST permalink
Pikmin:
It's like playing chess with animated turnips in a Salvador Dali painting.
Zink : Tue, 17 Feb 2004 23:21:51 PST permalink
I must say (you knew I must, didn't you?) Basic Stamp has its place, but it's not how you teach a child to program.
ceej : Tue, 17 Feb 2004 23:30:09 PST permalink
Programming is only part of it. Nuthin' wrong with a nice modern OS with a nice Pascal implementation for that. But there's other stuff to learn, like what a computer is and how it does what it does.
dws : Wed, 18 Feb 2004 00:07:37 PST permalink
One aspect of programming that's been getting lost is that software drives hardware, including lots of icky, nasty I/O where you have to deal with stuff like voltages and signal debouncing. Basic stamps are one way to get at that, though Lego Robotics may be a bit friendlier as an intro. You lose something when you try to abstract the hardware out of a programming education. Besides which, some truly neat hacks involve moving parts.
Zink : Wed, 18 Feb 2004 08:34:01 PST permalink
My point is mostly that you have to be like 6 before any of that stuff really makes sense, let alone is reliably manipulable. I'm thinking, "How do you teach the fundamentals of programming to a 1-year old?"

Not programming itself, but the habits of mind that underlie programming.

I agree about keeping hardware in the equation. In fact what I was thinking was along the lines of simple hardware which in slow and visible motion demonstrates the behavior of AND gates or cpus or whatever. Still thinking.

tjk : Wed, 18 Feb 2004 09:02:56 PST permalink
What about the rolling-marble clocks.

I think that teaching kids how to cook is sort of related. Get them to break tasks down logically.

Building a simple processor from discrete logic is probably doable with someone in the 6-8 y.o. range, and is something that's very instructive. And it is relatively easy to move from that into an FPGA (once the basics are in place you can abstract away the wire-wrapping or soldering or whatever, to just thinking about the logic).

Highly integrated components should be avoided. At the same time it would be nice to transition someone from an 8051-family chip to something like the PICs (cheap and fun and useful for any little control project you'd like).

But then I probably agree with Dijkstra, premature exposure to computers is a serious handicap to later development of programming skills. I often wish that I had a better sense of the connection between formal logic and programming practice (ie I sometimes wish I knew some computer science, but every time I go off on a CS autodidact attempt I remember the reasons that I studied EE in school instead of CS).

I recently bought a copy of _The Flickering Mind_, I've skimmed pieces of it and it looks like it might be interesting (as long as it isn't too repetitive).

I'm actually doing some soldering at work today, kind of strange.

ceej : Wed, 18 Feb 2004 09:52:38 PST permalink
Oh ho ho, The flickering mind is all about one of my favorite topics: the complete and total wastes of money that are computers in American classrooms. They belong in a programming lab where kids are taught to write software. Otherwise, they're flipping useless. Distractions. What's the use of teaching kids to write reports with Powerpoint and pretending you're teaching them how to use computers? What's the good of spending millions on hardware that will be out-of-date in three years when your school district is really starving for teachers?

I think the Maine school program that gave every single kid in 7th and 8th grades an iBook that was theirs for the year was interesting. There's a levelling the playing field between kids with rich parents and kids with poor parents that's interesting there. Also, the sense of having a thing to take care of, a nifty thing that's yours. (Apparently the kids did very well taking care of their iBooks.) I do admit the usefulness of Internet access for some projects. E.g., if one is researching the Columbia space shuttle breakup, the Internet is the right place to do it. If one is writing a report on the American Civil War, though, one should get one's ass to a library and read some books.

What I'm thinking about generally, though, is the proper education of a Nerd Kid. When I was working on my Eagle Nerd status, I got my computer programming badge on a small, accessible computer of the "microcomputer" era. It came with a programming language built in, an assembly language that I wasn't afraid to try out, and an operating system that a single human being could comprehend all of. (PowerPC assembler scares the heck out of me now. Have you seen that stuff? It's weird!) How would you give a kid that experience now? How would you improve on it?

tjk : Wed, 18 Feb 2004 10:15:51 PST permalink
PICs seem ideal for what you're describing. They have a simple instruction set, and a lot of emphasis on real I/O to solve real problems.

Maybe get the nerd kid interested in guitars, so they get interested in making their own effects ? I'm focusing on the hardware here because that's what always interested me when I was a nerd kid.

Getting someone interested in games also doesn't seem like a bad approach, especially with mod-able games.

Unfortunately, the amount of "gear" you need to take a working computer and examine it is a substantial investment (I'm thinking here of putting a logic analyzer on the address bus of your 8051 and seeing "look, that's the fetch-execute cycle.").

Tadster : Wed, 18 Feb 2004 14:28:13 PST permalink
"How would you give a kid that experience now? How would you improve on it?"

Virtualize it, in simulation? I liked the Doom-hack: http://www.cs.unm.edu/~dlchao/flake/doom/

30 years from now we'll be using carbon nanotube massively parallel quantum analog computers anyway, so teaching people about discrete electronics isn't that useful pedagogically.

For me, I don't particularly care *how* machines think -- making them think is the fun bit.

tjk : Wed, 18 Feb 2004 15:17:54 PST permalink
"...so teaching people about discrete electronics isn't that useful pedagogically"

Maybe you weren't serious, but I don't think I could disagree more strongly.

**

Today I'm reminded of a quote (from Steve Ciciora ?), "My favorite programming language is solder." At the same time, it has been a nice reminder that I will never make a living as a rework technician.

Zink : Wed, 18 Feb 2004 21:41:59 PST permalink
Making people think is the challenge we haven't mastered yet. I'm not convinced solder is on the direct route to comprehensive programming mastery, but it is certainly a skill that expands your brain. And I hate seeing someone spend two weeks programming doing what sixty seconds of soldering could.
jersey : Thu, 19 Feb 2004 07:01:23 PST permalink
I'm not sure that teach kids anything "from the ground up" is the most effective method. Trying to teach a kid math by giving him or her the Peano axioms would probably not work out very well, even though it might be the most logical progression.

I think kids respond best to mysteries, so I would suggest that the most effective way to teach programming is to start with a very high level language to get them hooked, and then somehow introduce "mysteries" (probably more like "limitations") that can only be understood and fixed by peeling away layers of the onion.

ceej : Fri, 20 Feb 2004 22:58:42 PST permalink
Oh my goodness, Pikmin is good. Utterly charming and horrifying and bizarre and good. If you have a Gamecube, for godsake get this game. Full review to follow after I've played more of it.

Register or log in to post a comment.