Learning to code in a “retro” programming environment
Could the Commodore make a comeback in education?
Gerald Friedland is Principal Scientist at Lawrence Livermore National Lab and Adjunct Professor at the University of California, Berkeley. Like many, he taught himself to program as a child in the 1980s with the ancient — but refreshingly straightforward — Commodore 16.
Here’s where things take an interesting turn. When his daughter, Mona, turned 7, he chose to go back to the source. Instead of today’s code playgrounds and glitzy graphical environments, he decided to introduce her to BASIC and the 8-bit Commodore programming environment — with the help of a free emulator. As he says, “The sensation of causing an action simply by typing a word is priceless.”
Here are some of his thoughts about STEM education today, and his idea of “retro” programming.
Netflix recently released a multiple-choice movie in their Black Mirror series, called Bandersnatch. The protagonist is a teenage programmer working on a contract to deliver a video-game adaptation of a fantasy novel for an 8-bit computer in 1984. The multiple storylines revolve around emotions, mental health issues, and the conflict between a new generation of computer-savvy teenagers and their caregivers. For me, the movie also raised another very interesting question:
“How is it that teenagers were able to become professional computer game developers through self-education?”
In today’s world, this would be considered an amazing accomplishment. So is there something we can learn from the history behind Bandersnatch as we work to empower the next generation in science, technology, engineering, and math (STEM)?
Commodore and the 8-bit generation
Looking back at my own personal history, I started programming at age 7. My mother had bought one of the remaining Commodore 16 machines from a supermarket chain in Germany, hoping to use it to do accounting for her business. As it turned out, the Commodore 16 wasn’t much good for that. But I, a curious boy, started to develop an interest for the idle magic box in the basement. The rest is history.
The more interesting questions is: “What was this machine actually made for?”
Commodore’s mission in the 1980s was to bring “Computers for the masses, not the classes.” Indeed, PCs weren’t popular yet and they were very expensive, so the only access to computers was using terminals connected to a mainframe in either a university or a large company. This created a niche for a computer that was better than a pocket calculator but not as powerful as a mainframe. Adding an entertainment component (such as interesting sound, color graphics, and the ability to connect to a standard TV) made these 1980s home computers appealing to the masses.
Commodore shipped their computers with textbooks on how to learn BASIC, a programming language that was specifically made for beginners. Commodore also marketed different BASIC dialects, like Simons’ BASIC, which was written by 16-year-old British programmer David Simons (very Bandersnatch). To make a long story short: a large part of Commodore’s mission was what we would call STEM education today. Now, how successful were they?
Commodore’s C64 was the most-sold single-piece computer until Apple’s iPhone came out.
However, the C64 had the worst version of BASIC. The home computers with better BASIC, the Plus/4, the C16, the C128, or the ZX Spectrum (featured in Bandersnatch) were also popular but didn’t have the same impact. Nevertheless, this generation of computers — the 8-bit home computers — shaped a generation of programmers. In fact, we often refer to ourselves as the 8-bit generation.
This generation is the one that is featured in Netflix’s multiple choice movie — code-wielding teenage programmers who created entire commercial games on their own.
How the 8-bit generation learned to code
Before they became game programmers, the 8-bit generation had to learn programming. And they had to learn by teaching themselves autonomously, because there was nobody else to teach them. This provides strong evidence that these early home computer systems were very successful at being educational.
But what is it that makes them so great?
- The computer turns on and within milliseconds you are in a programming environment. There are no distractions, and there is no need for connectivity to a network, the Internet, or another service.
- The same environment allows beginners to work with the system in three straightforward ways. You can ‘doodle’ using the keyboard (which had extra non-ASCII symbols for drawing). You can interact calculator-style, using direct commands like
PRINT SIN(3.1415/2). Or, you can write a complete program in BASIC and run it.
- The BASIC language is a simple-to-learn programming language that has access to the entire system without having to load libraries for sound, graphics, math, and so on.
- The focus of the programming language is on efficiency. One command does one thing immediately (for example,
COLOR 0,6turns the screen green). I challenge the reader to implement this function in Python!
In my mind, this makes the 1980s systems especially great for an elementary school programming experience.
For an elementary school kid who is just learning to read and write, the sensation of causing an action simply by typing a word is priceless.
At the same time, their motor skills aren’t ready for extensive mouse drag and drop yet. Finally, I don’t know about you, but I am too much of a helicopter parent to give my 8-year old unattended access to the Internet so that she can use one of the web-based programming education portals.
Granted, the 1980s weren’t all paradise — loading and saving programs, especially on cassette tapes, was a pain we do not want to expose our kids to. However, in 2019, all of these legacy computers can be emulated. That means we can pair the classic environment of the Commodore with modern, reliable hardware.
So, why not configure a Raspberry PI to boot into an 8-bit emulator and put it in the kids’ room? Help your children make the first programming steps in an 8-bit emulator while enjoying some nostalgic parent-kid bonding time! Speaking from my own experience, it’s definitely worth a shot.
Many of us who grew up with 8-bit computers can relate to the coding world shown in Bandersnatch. Why not show our children hands-on what this home computer experience was about? At the same time, we may spark that flame of interest that creates the next scientist, engineer, or mathematician. After all, retro home computers are a STEM education concept so that works so well it’s even immortalized in a Netflix movie!
This article was contributed by Gerald Friedland, author of Beginning Programming Using Retro Computing.