Teaching Computer Science to Kids

https://news.ycombinator.com/item?id=1482589
by drblast • 16 years ago
2 1 16 years ago

I face a dilemma that I have a gut feeling about, and I'd like some of your opinions to keep my ego in check.

I have an opportunity to teach computer science to a number of children at our local homeschool co-op. The age range is 9-12, and the class is voluntary, so the students are a self-selected group.

The trend in teaching seems to be focused on making computer science more engaging and fun. Usually there is some sort of point-and-click interface to let students easily create multimedia presentations and movies without having to type a single line of code. See www.alice.org, or MIT's Scratch.

My gut tells me that although this method would be extremely popular and engaging, it's mostly a waste of time for those who really want to learn the science, and that those students who don't care to begin with probably won't progress much further after you take the fun tool away. It really feels to me like a dumbing-down.

At the opposite end of the spectrum is my idea, which is to develop an extremely simple virtual computer environment where you can see all parts of the computer in a GUI. You can drill down into individual bytes in RAM and set them (and immediate see the result in the case of video memory), you can see the CPU registers change as you step through code, etc. The machine has 64k of RAM and a very simple CPU instruction set.

I'd like to teach using a bottom-up approach in parallel with a history of computing, so the students learn things in essentially the same order as they were discovered. They'll see initially how difficult it is to write machine code, but they'll see for themselves how a simple program calls functions and jumps around in memory, and gain an understanding of binary numbers and arithmetic. They would then progress to simple interpreted and compiled languages.

This is pretty much the way I learned at that age, without much help.

The middle road would be to start with some interpreted language like BASIC or LOGO and teach from there. I think this has the same weaknesses as the newer approaches without any of the strengths.

So am I crazy to want to teach machine language (albeit a simple one) to 10 year olds?

Related Stories

Loading related stories...

Source preview

news.ycombinator.com