Can coding really change the world?
Is there any question that technology-based innovations like PCs, the world-wide web, social media and smart phones have fundamentally changed the way we work, communicate, govern, educate and so much more? While Apple and others may wax poetic about the magical properties of their latest devices, all these technological innovations are possible because there were programmers who could write code. Why is it then, that if technological advancement is so rapid and so integral to our society, the study in the field of computer science (CS) has not been keeping pace? And by not keeping pace, I’m not just talking about the overall numbers studying CS being a mere trickle in the higher education pipeline, I’m talking about an epic failure to engage women and minorities in this field. I’m learning that its somewhat of a mystery and theories abound. Some theories lay blame on a dysfunctional educational system that’s moved away from the sciences in favor of going back to the basics of reading, writing and arithmetic. Others suggest it’s the persistence of the lonely, pocket protector-wearing, cubicle-occupying nerd programmer stereotype that is not an appealing career path. I think the answer is all of the above and more.
Efforts to reverse this trend and address the crisis have also been underway, but strategies abound here too. Many highlight the income potential and the projected need. Some work on widening the pipeline to increase participation from women and minorities. Others work specifically on gender equity issues. Again, I think all of these strategies are important, but I don’t think they will really motivate girls, especially middle school girls, which is really where you need to capture their interest because by age 13 girls determine a positive or negative attitude towards subjects like CS. I think deep down, girls and minorities want to change the world because frankly they are living in a world where they are not valued as they should be. I think this is where CS is an exciting avenue, as it really does have the potential to change the world in so many innovative and creative ways.
I teach technology to 4th thru 8th graders and as a career-switcher with a CS background, it seemed only natural that coding would be one element of my curriculum to foster computer fluency. As I thought about how to get my students excited by the idea of coding, I considered how I got interested in CS. It certainly wasn’t the prospect of studying algorithms or learning about logic. It started with my gadget-loving dad bringing home a TRS-80 desktop computer. That’s when I taught myself BASIC because really there wasn’t much else you could do on a computer with a whopping 4K of memory and a cassette tape drive for storage. I was sold on CS after I created my first program in Assembly Language. Although, Assembly is no doubt a very tedious form of programming, the idea that I was in control of the very essence of the computer - that was empowering! I was converted from a mere Astroid-playing computer user to a technology creator.
Over the years, I have introduced students to coding not with the goal of understanding what CS is, but really with the goal of letting them get a peek “under the hood” of technology. I want my students to understand it’s not magic that makes this technology stuff work. Northwestern University, MIT and Carnegie Mellon provide amazing programming tools for free (NetLogo, Scratch & Alice) that I use with students all the time. I must admit, I’m not really that great of a programmer. My CS strengths lie in planning, design, testing and documentation. So while I may be more comfortable getting my students started with these programming tools than a teacher without a CS background, I really do just give them the bare minimum of introduction (and I’m working on tutorials to share those introductions with others). It doesn’t take long for a student to surpass my knowledge in one of these programming environments and I look forward to that moment when I become their student. I want my students to get as much hands-on experience as possible and once they are on, they really fly. It may start slowly, but once they figure out how to do one thing or their classmate does, then they think of the next thing and teach each other and experiment and collaborate and make mistakes and figure out alternate solutions. I see them doing all these things that I think we really want them to learn how to do - things that will prepare them to be the change they want to see in the world.
I’m not expecting everyone will want to be a programmer when they grow up, I just want anyone to know they can. I want to convert technology users into technology creators, collaborators and activists.