
The Commodore 64 Spike: A Freakonomics-ish Theory of CS Education - kranzky
https://medium.com/code-adventures/97300be548d1
======
mindcrime
Maybe in 17 years or so, there will be an Arduino / rPi / Beaglebone explosion
of entry into CS programs? Look at things like this cool program put on by the
Durham County (NC) Public Libary this summer:

[http://durhamcountylibrary.org/2013/06/teen-tech-
camp-2013/](http://durhamcountylibrary.org/2013/06/teen-tech-camp-2013/)

[http://exitevent.com/teen-tech-camp-hosts-future-
developers-...](http://exitevent.com/teen-tech-camp-hosts-future-
developers-1389.asp)

[http://www.slj.com/2013/08/technology/powerful-
partnerships-...](http://www.slj.com/2013/08/technology/powerful-partnerships-
pi-and-python-behind-the-success-of-teen-tech-camp/)

Kids learned to program in Python, on a Raspberry Pi, and each of them left at
the end of the day with their Pi, and accompanying monitor, mouse, keyboard,
etc. Some of these kids were underprivileged kids who had no computer access
before, so the event was a pretty big deal for some of these kids. From what I
heard, a few parents teared up at the end when they found out their kids got
to take all their stuff home with them.

More programs of this nature, and more access to Arduino, rPi and the like, is
one of the things I hang my hope for the future generations on.

Aside: I'm proud to say that our other co-founder here at Fogbeam Labs,
snkahn, was one of the co-conspirators who helped pull that together.

~~~
stephengillie
It sounds like you're advocating One RasPi Per Child.

~~~
mindcrime
No more than TFA was advocating "One C64 Per Child" :-)

All joking aside, I think the advent of very accessible, low-cost SBCs,
coupled with languages like Python, is a Good Thing. Our local hackerspace,
Splatspace, also helped sponsor the Teen Tech Camp event, and we do a lot of
stuff that's geared towards working with kids (teaching Scratch, doing
"Squishy Circuits" demos, helping with "math and science night" at a local
school, etc), and I'd like to see us do even more of that sort of thing.

One of my biggest regrets right now is that I'm so damn _busy_ with Fogbeam
Labs, that I don't have as much time as I'd like, to personally teach some
classes and what-not. But I keep telling myself that things will stabilize
eventually, and I'll be able to do more of that stuff...

~~~
kranzky
Well, it sounds like you've been doing a great job. I guess the challenge is
figuring out how to scale what you've been doing to allow other volunteers to
replicate your success!

------
rogerbinns
Turn on any modern PC/device. Then look at the hoops you have to jump through
to run the equivalent of:

    
    
         10 print "my sibling smells"
         20 goto 10
    

Computers of that era booted up straight into BASIC and you could easily enter
the above. It was obvious to anyone watching exactly what was going on and
they could have a try.

You can conceptually do the same thing now, but have to jump through hoops
first. Download the right dev environment, work out how to start an editor,
work out what code to write, work out how to run it and finally see the
results. Devices are very personal now, so no one is likely to watch you do
this, and trying to mimic it is far harder than turning your own device on.

Hopefully we'll end up with single function devices that can do this. The RPi
is a good step in that direction, but still requires a lot to get going (look
at all the cables and other bits and pieces you have to connect first.)

~~~
throwaway344
I think the hoops for doing this sort of thing are greatly exaggerated.
Windows has had a scripting language built into it for years in the form of
Powershell. OS X has a variety of other tools: Python, Ruby, Perl, etc. And
then you have the web, which has a huge number of repls for various languages.
Like repl.it which has Forth, Python, Lua, Scheme, Javascript and others.

Basically, I think that the reason people don't program as much as some would
like has nothing to do with access to programming environments.

~~~
sinkasapa
I think the author's point about how computers used to come with programming
manuals is a good one. The spirit is different. The computer environments now
are, in my opinion, better for learning programming. More languages are
installed by default or easily available and the Internet is much better for
learning than the books I remember using. But this kind of assumption that
people would be buying a computer in order to mess around with Basic or
Hypercard no longer seems to be the rule.

I was actually kind of impressed with the Sugar environment when I tried it
out with my nephews. They spent a lot more time experimenting with the thing
than I even expected. Something was different about that system. It encouraged
exploration in a way that their normal YouTube and video game habits didn't.
Maybe it was just the nature of the applications.

------
stephengillie
The problem isn't a lack of devices with the bare bones showing, where
tinkering will produce results to be learned. The problem is that some things,
like iPhone apps, are so much more polished than anything the average 12-year-
old can produce that anything they make is discouraging by comparison.

How many teenagers would it take to produce Candy Crush, a highly-polished
game made by a team of teams -- art team, multiple app coding teams, database
team, facebook integration teams, financial team, and management team. _Man-
years_ of effort went into making that game.

Now be 12. Be a gamer. Be a kid who's choosing between struggling to make
HTML5 Canvas work on a webpage, and playing games with friends.

~~~
grannyg00se
Since when do 12 year olds compare themselves against highly polished products
put out by companies with hundreds of employees?

When I was 12 I wasn't trying to build Seven Cities Of Gold, I was happy just
to have a little blinking sprite move across the screen.

Nowadays you can fire up a browser and scratchpad and have a hello world alert
box pop up in five seconds. And there are arduinos, and raspberry pi's, and
crazy cool robotics kits. There's still plenty out there to motivate kids who
are interested in tinkering.

~~~
kranzky
The main difference between then and now is that back then you stumbled upon
it, and now you need to make a concerted effort to find out where to start.

~~~
grannyg00se
Yeah I guess our popular end user products are much more polished now and
don't force you to get your hands dirty. I remember you couldn't even start a
game without typing some cryptic code into the computer. So that extra push
isn't there anymore and you can easily use all of this technology without ever
learning anything. On the other hand, I think we now have much more
information available and easily accessible for those who do choose to get
involved.

~~~
kranzky
Completely agree, and I think the problem I'm trying to solve is making sure
every kid has the chance to find out whether they want to know more by showing
them at a young age that it's actually an option that's open to them.

------
justanother
It's about That Feeling. I got That Feeling from the Atari 800 and Apple IIgs,
you got it from your C64, I sometimes manage to find it still, with the help
of liquor and a Lisp interpreter (but not at all from the line-of-business
apps that make my living now). Without That Feeling, you're not going to go
past a certain level in software development, no matter how many dry facts you
learn. How do kids get That Feeling today? It sure isn't from iOS devices.

~~~
kranzky
My money would be on Minecraft.

------
Pitarou
I'm kinda' researching this question for my MSc e-Learning technology, so I've
got a lot to say on the matter, but I'll try and keep this brief.

We need the CompSci equivalent of Meccano sets for kids to tinker with.
Something that's easy to just pick up and start playing with, gives instant
feedback, and equips them with the skills to go and play with bigger and
better toys.

The guys at Khan Academy understand this well, and they've built something
pretty slick. <[https://www.khanacademy.org/cs/browse-
programs>](https://www.khanacademy.org/cs/browse-programs>) I guess you could
describe it as a cross between processing.js and JSFiddle, with a showcase for
interesting new projects.

From my limited interactions with the system, I'd say it's already pretty
good, but to be great they need to figure out how to make peer-teaching work
better. Also, I think they would benefit from an even more accessible "just
pick it up and play with it mode", rather than insisting that the kids sit
through tutorial videos before they can do anything.

~~~
kranzky
Oh that's great, I didn't know Khan was doing that!

------
pellias
I remembered my first 'programming' experience. Went to the library and pour
through the BASIC books, found an 'I spy' game that only had like 12-15 lines
of code.

Went to my friend's C64, typed everything out and then sat looking at the
screen after typing 'Enter' for the last statement.

Nothing happened obviously. That damn book didn't teach u about compiling,
running and I am not even sure that book was about programming for C64 or what
not.

~~~
dsuth
One of my earliest programming gaffs was on a C64, typing in some code from a
magazine, which didn't work.

When my dad got back from work, I showed him what I'd painstakingly typed in
over the course of what seemed like hours to an 8 year old, and that's when I
learned what pseudocode was. >_<

------
plg
It's totally true. In the 1980s we as kids had to learn a more complete mental
model of what was happening inside the computer, just in order to operate it,
even without necessarily programming it (although we did that too). Starting
in the late 1990s computers became more like appliances. Nowadays university
students haven't a clue what's happening behind the fancy interface.

I'm not saying appliance-like functionality isn't a good thing ... for the
masses it undoubtedly is.

But as the OP's article points out quite nicely, it's not conducive to
lighting a fire inside a young mind.

I remember going to the back of computer magazines and transcribing pages upon
pages of BASIC code corresponding to various games ... (on an Apple II) ...
those were definitely the days.

------
FrankenPC
Back in the C64 days everything was absolutely fresh. Everything was exciting.
No one was an "expert". Everyone was just really enjoying experimenting.
THAT'S why it was exciting. It was undiscovered country. To kids, it's boring
now. There's nothing to discover. Deep down, kids want adventure. It seems
computer science is being relegated to the same box mathematics is stored in.

~~~
kranzky
But isn't maths boring at school because we're teaching it wrong? See Conrad
Wolfram's TED Talk:
[http://www.youtube.com/watch?v=60OVlfAUPJg](http://www.youtube.com/watch?v=60OVlfAUPJg)

------
flashmob
The commodore 64 rocks as an educational tool about computers! Here are some
interesting things that we did besides games:

\- Sprites. You had to use pencil and paper to calculate the bit values on a
bit map and convert these in to DATA statement in BASIC

\- Modifying bytes directly on the disk to change some ASCII text to whatever
you like.

\- Going to K-Mart and program the demo machine with some prank program and
let it run.

\- SAM Text-to-speech. We hooked it up to the phone mic and used it to do
prank call our friends.

\- Peek and Poke any part of memory, sometimes get funny results

\- Typing out programs from magazines and watch them do funny things, flip
text or other effects

\- Connecting to a BBS

Fun times!

~~~
dwd
Go to K-Mart and program the demo machine; POKE 1, PEEK(1) AND 4.

~~~
flashmob
GOTO 10

~~~
dwd
10 FOR I = 0 TO 15

20 POKE 53280, I

30 POKE 53281, I

40 NEXT I

50 GOTO 10

What is funny that 27 years later I still remember those memory addresses.

------
kranzky
Would be interested in discussing feedback on this post; I'm about to enter a
Startup Weekend, and would love to do something that could address this
problem.

~~~
kranzky
Wow, thanks for all the feedback; lots for me to discover and digest :)

------
rocky1138
I completely agree, have felt the same, and lamented this to a friend just
days ago. It's great to know that there are others out there. For me, my
exposure was via an IBM PS/2, LOGO, and GW/QBASIC, but the effect was the
same.

------
eksith
Arduino and other development boards are getting cheap enough that they should
be part of school computer science curriculums. In lieu teaching Basic et al.
(which is still the standard for BASIC microcontrollers from Parallax) they
could instead be persuaded to learn C/C++.

Like Legos or Erector sets, kids are more fascinated with toys they can build
with rather than play passively (which they get bored of quickly). Replace
"toy" with "exploration venue" and you have a whole new world of
possibilities.

------
tony_allan
Arduino - [http://arduino.cc/](http://arduino.cc/) and its many derivatives,
and more recently Raspberry Pi -
[http://www.raspberrypi.org/](http://www.raspberrypi.org/) are going to create
the same effect as the Commodore 6.

Cheap enough for curious kids to buy themselves, very easy to use, both with a
strong connection to the real world.

In addition, as well as a stand-alone internet connected device, the Raspberry
Pi makes a cheap Linux desktop computer.

------
orangebox
Most people who own cars have little interest in how they work under the hood.
Same is true for computers today. It's not just true for machines but all
parts of life. I know several adults who hardly ever cook, despite that fact
that they've been eating meals cooked by other all their lives. Using
something doesn't necessarily mean you'll want to learn how to create it
yourself.

~~~
kranzky
That's true, with the exception that learning how to write a program is also a
lesson in how to think logically. Rather than teaching everyone to be
programmers, the goal could be to use programming as a tool to teach everyone
how to think.

------
dirkk0
Awesome article. Parents 'in the know' seem to have to educate the children
themselves instead of relying on the school system (the australian insights of
the author apply in Germany, too).

Out of the same notion I am doing a series of video tutorials on how to create
browser games for my 14 year old girl and her classmates.

It's also in english so as a side effect they get into that as well.

------
mhenr18
The comment about 10% of CS graduates in Australia being female rings true and
I think it's a highball. I'm typing this as I sit in a systems programming
lecture at UQ and the attendance is hardly 5% female.

Of course that's a sample size of 1 but it's still worrying.

~~~
kranzky
I think the actual statistic is 1 out of every 12, so closer to 8%.

------
sunpazed
"In the beginning there was the command line" covers most of these points:
[http://www.cryptonomicon.com/beginning.html](http://www.cryptonomicon.com/beginning.html)

------
andyidsinga
really interesting. im a couple years younger than op ..had an atari 400 -
with the basic book:) .most of my friends had c64s. i didnt't even seek a
career in sw dev. ..but ended up here anyway. i think much of the reason is
those days punching in basic, moving on the BBSs, fidonet ...getting into C,
sockets and win32 and yada yada yada holy crap i fly a desk for living!
originally wanted to be a pilot ...now i can afford to learn to fly but dont
have time ..back to messing with that irc bot web wrangler thing im hacking
for the fun of it.

------
benzoate
I went to university in 2007 (born in 88), but I grew up with a Commadore 64.
I guess being brought up by a relatively poor single mum has its advantages

