My brother and I would fight about using the Commodore 64 computer at home. It had a cartridge that would let me program in Beginners All-purpose Symbolic Instruction Code (BASIC).
I wrote programs that would make the screen flash like a strobe light. Or draw pixelated lines to create the look and feel of a wormhole. I remember imagining myself falling into the computer through that wormhole; I wanted so badly to understand it.
Is this your child? Are you seeing these tendencies at home - where you have a tinkerer at heart? A girl or boy that likes to take things apart or figure out how something ticks? Read on....
I also remember when our teacher Ron V. asked us to do some mental math in the lab. I happened to de-rail his lesson, but assume he was going to show us how the desktop could act as one big calculator. That is, after all, what the ENIAC was created for in the beginnings of the PC revolution (though a computer at the time filled an entire room). The quiet rebel in me decided to write the program that would solve the problem. I remember the answer was 81. He asked me over and over again how I came to the right answer. I froze, and the reasons for that could be a whole other article about the art of teaching, because I remember - like it was yesterday - how angry he was. But I also remember the feeling of figuring the program out on the fly, under the radar, without anyone noticing.
I also recall "hacking" a game called Wormy, and another called Oregon Trail. I had it do my bidding. Yes, I learned to win the game by deciphering it. But the reverse-engineering taught me even more about programming. I still, to this day - and thanks to my Mom for holding on to memories - have a small booklet on programming in BASIC, authored by yours truly. Almost like a scribbled-out "BASIC for Dummies" book, in a middle-schooler's point of view.
That was the Computer Science of the times. Clunky desktop computers that cost one or two thousand dollars. Floppy drives. Minimal space and really no Internet or Email. Not yet. I was lucky to embed myself into a sort of revolution, as it paved the way for the understanding of technology I have now.
Years ago, we let that revolution go. Computer Science went by the wayside as we let the industry experts tackle the jobs. Programming was no longer meant for the masses, became less accessible, and required years of college work. Programming was no longer taken seriously - it remains an elective in most High Schools and does not count for any credit. This has been true even in California, where most technology jobs exist.
Thankfully - and due to movements such as Maker, Code.org, STEM, Khan Academy and more - we are seeing a resurgence of coding skills. Programming. Logic. Critical thinking and the debugging that translates into many other fields, disciplines, and skills (plus, they're making it cool).
More importantly, we're finally recognizing that millions of computer science positions will be unfilled in the coming years, unless we introduce these skills as part of a standard curricula. Not just a computer club. Not an after school program or elective - but a sequenced part of middle grade and high-school curricula.
Watch this video from CODE.org, and you'll see some of the industry leaders and innovators, along with other celebrity heavy-hitters, that are joining forces to see that coding starts early and strong:
In Grade 7, students are starting a STEM project that will require them to wire a breadboard with resistors, diodes and a MOSFET - to an Arduino Uno - and program it to simulate a lighthouse beacon.
The Grade 4-8 Robotics Teams are learning to use a version of the robotics industry standard LabView, provided by LEGO and their Mindstorms robotics program - to solve a series of missions on a game board - and then compete against Silicon Valley area schools.
It's exciting to be part of this new revolution. It's exciting to see California and other states finally consider Computer Science as more than an elective. It's amazing to hear students from Grades 2-3 excited about technology time this year, because they know they will learn to program.
Is it important? Absolutely. I believe strongly that at least a foundation of basic programming logic is just as important as many other disciplines. At the very least, students learn critical thinking, debugging, trial and error, wonderful skills in logic, and systemic thinking - at the very least.
For details on the tools mentioned in this post - visit any of the following: http://code.org, http://tynker.com, http://scratch.mit.edu, http://www.lego.com/en-us/mindstorms/. I've collected a series of "student opportunities" links - just click on the top menu of this website and look around. Makey Makey, Arduino, and other links are available there.
Thanks for your time, and I'd love to hear your feedback,