7 ms·
The Commodore 64 Spike: A Freakonomics-ish Theory of CS Education
- rogerbinns 13y agoTurn 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.)
- kranzky 13y agoSo how about this: embed an RPi into a kids keyboard, and have it boot straight into a Python interpreter with libraries loaded so you can immediately start writing programs that draw stuff on screen and play sounds. Encourage tech-minded parents to run labs at their local schools that use these devices, and encourage local IT companies / universities / government to subsidise the cost of providing every student with one.
- rogerbinns 13y agoThe OLPC was sort of an earlier version of that. I'm all for solutions that have that kind of ease of use - no hoops or hurdles from pressing the power button, through being able to do something immediate that you can show off to others.
- throwaway344 13y agoI 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.
- rogerbinns 13y agoI'm a pythonista myself. The instructions to someone wanting to do Python are: - find out what platform they are using (Unix, Windows, Mac, iDevice, Android etc) - Ensure Python gets installed or is accessible (add in version 2 versus 3, 32 bit versus 64 bit) - Work out what the text editor or "IDE" will be - Enter the code (no gotos in Python) - Run the code and view the output While these hoops are nothing for you or me, they are significant for others. Note how people report A/B testing showing that extra steps towards various goals results in big dropoffs. Incidentally this is what repl.it does with QBasic: > 10 print "hello" Parse failed: Syntax error at 1:10: Token("hello") > help => 0
- kranzky 13y agoI understand your point, but I think it comes down to self-discovery. Using the C=64 (and other home computers of the era) enabled you to discover that programming existed as a thing, and then to learn more by digging deeper. Modern computers are much, much better at the digging deeper side of the equation, but completely fail on creating the initial spark of interest. In my experience, if you can create that initial spark with your kids (as I did with my daughter, just by showing her the C=64 programming book I had as a kid), then they _will_ want to know more.
- sien 13y agoYou are surely correct. The proportion of people with access to a computer in 1984 was much lower than it is today as well. Far more kids can get to a browser and to some kind of editor. That gives you a javascript development environment. In addition you have access to the internet that provides you will endless tutorials and places to ask questions.
- usearegex 13y agoOne device with such a low barrier to getting started programming that kids still have access to is TI graphing calculators - I got into programming through my TI-84 back in middle school, writing quadratic equation solvers and the like , and eventually playing with graphics and simple games. I certainly wouldn't recommend that anyone specifically choose the calculator as a starting platform, but it's a great way to accidentally discover programming. And it was a great way to kill time at school for several years...
- Luc 13y agoI got a tiny little bit of that old C64 feeling showing my daughter how to cheat at Cookie Clicker (a browser game) yesterday. It's got nice and clean Javascript source code with comments, and all you need is a console prompt.
- seclorum 13y agoThis is a subject that is very dear to me, so I will try not to rant about it. There are a couple of things "wrong" with the way we teach kids computers today. Our educators are in the hands of the masters of consumers. When a new technology comes out, we all abandon the current stuff, and engage in the upgrade cycle. Repeat until generations have no clue any more about what the old ways were. This is an absolute falsehood pushed upon society by those who wish to control the consumer base. It is consumption destroying education, plain and simple. The point is this: Every C64 that was ever produced - heck, every 8-bit computer, ever - STILL WORKS, or can be MADE TO WORK in the area of computer education. It is absolutely arbitrary that computers get old. Every machine that was ever made, is still just as useful as it ever was - the difference is, the user walked away (because they are consumers not users). I have a large collection of 'antique' computers in my midst: C64, Atari, Oric, Atmos, Telestrat, MSX, heck .. even a BeBox and an SGI O2. All are still working, all are still quite capable of engaging a young mind in the exercise of exploration and discovery that makes a good developer. And, my 3 year old and 6 year old kids LOVE THEM. They absolutely LOVE the old sprites, the old simple ways. The 6-year old takes immense joy out of typing: 10 PING 20 WAIT 15 30 EXPLODE 40 WAIT 50 50 GOTO 10 .. into an old Oric Atmos thats been set up exclusively for him to be able to do that .. in fact the very first writing he was able to do was in typing in a BASIC PROGRAM!! The 3 year old absolutely loves that he can turn the machine off and on, and off and on, and off and on .. and it will still work. Can't do that with Daddy's workstation! So the point is, parents: disconnect your kids from the consumer trap. Give them old computers to learn computing on. Everything they will ever learn, WILL STILL BE VALUABLE TODAY when they 'grow up and get a bigger computer' - the reason is, because computers still work, fundamentally, the same way. I predict my 6 year old will be hacking in assembly by the time he is 10 - just like his Dad did. And thats what made me the developer I am today. (BTW: yes, I also have rPi's, Beagleboards, and so on.. when they're ready, they'll be available to the kids to hack on. But if the kids can't do their own low-level programming by the time they get the rPi dusted off, I will be very surprised..) EDIT: Another thing that is 'wrong' with computers today, imho, is the decoupling of development from use. Again, our computers have been turned into consumption platforms - the moment that Microsoft removed the developer tools from being part of the base OS image, computers started to lose a lot of value. Any OS that doesn't ship with a way of building apps for it, inherently included by design, isn't an Operating System - its a Consumer Capture System. Do everything you can to get development tools back into the OS, people. It is more important than the desire to reduce the effect of having 'too many smart developers out there'..
- kranzky 13y agoWould 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 13y agoWow, thanks for all the feedback; lots for me to discover and digest :)
- rocky1138 13y agoI 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.
- mindcrime 13y agoMaybe 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-1389.asp http://exitevent.com/teen-tech-camp-hosts-future-developers-... http://www.slj.com/2013/08/technology/powerful-partnerships-pi-and-python-behind-the-success-of-teen-tech-camp/ http://www.slj.com/2013/08/technology/powerful-partnerships-... 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 13y agoIt sounds like you're advocating One RasPi Per Child.
- mindcrime 13y agoNo 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...
- stephengillie 13y agoThe 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.
- kranzky 13y agoIt's true that modern games and apps set the bar high. But the stuff I produced on the C=64 when I was 14 was equally as basic when compared with the games of the time. It's not about making something as polished as what you can buy, it's about becoming fascinated with how something works, and learning about things at a deeper level through self-discovery. The stories kids write and the pictures kids draw are primitive when compared to what they could buy, but they still like to spend time making them!
- grannyg00se 13y agoSince 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.
- stephengillie 13y agoWhen I was 9, my parents got a 286 that had a Qbasic interpreter among other things, and it came with a game where a gorilla throws a barrel at buildings. When I read the code, I was startled to learn how easy it was to understand - multiply this by that, draw these here if this happens, etc. Then I tried to write my own programs and kept getting errors. And nobody anywhere -- not my parents, nor schoolmates or teachers, faculty, clergy, or TV characters had any kind of problem like that. The lack of support was ultimately what discouraged me, I suppose.
- FrankenPC 13y agoBack 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 13y agoBut 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
- Pitarou 13y agoI'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 13y agoOh that's great, I didn't know Khan was doing that!
- pellias 13y agoI 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 13y agoOne 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. >_<
- justanother 13y agoIt'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 13y agoMy money would be on Minecraft.
- deleted 13y ago[deleted]
- wakjob 13y agoNo the dropoff in the late 90s was not due to a lack of self-teaching machines - we all know what it was due to: the invasion of H-1B visa workers job robbing Americans. No one wants to enter a field in which they know they will be kept out by invaders.
- flashmob 13y agoThe 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!
- mhenr18 13y agoThe 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 13y agoI think the actual statistic is 1 out of every 12, so closer to 8%.
- dirkk0 13y agoAwesome 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.
- plg 13y agoIt'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.
- benzoate 13y agoI 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
- eksith 13y agoArduino 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 13y agoArduino - 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.
- andyidsinga 13y agoreally 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.
- sunpazed 13y ago"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
- orangebox 13y agoMost 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 13y agoThat'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.