With Computer Science Education Week and the Hour of Code kicking off, I wanted to set the record straight on a number of ideas I've seen floating around by addressing common misconceptions and illuminating key messages in the computer science education movement. This is not an exhaustive dissertation and I don't speak for all my CS friends, but I hope this helps those who aren't sure what all the CS hubbub is about or want to become advocates for CS education.
Misconception 1: This movement is all about kids getting jobs as programmers.
Key Message 1: Computer science is foundational for all jobs.
No one in the movement believes that every single kid should learn to program for the sake of becoming a professional programmer or software engineer. Sure, computing occupations are projected to grow at a higher rate than all other STEM areas combined and the movement will surely lead to more CS-educated professionals, but that isn't the main point.
This movement is about making sure that kids can use CS to learn, innovate, and express themselves in all interests and career fields. CS provides students with a way of learning, understanding, and problem solving that helps them in all aspects of their lives. Seventeen magazine recently had coding on their cover (see top left of the cover). The article explains how young women are using computer science for cutting-edge fashion design, inspiring interior designers, making beats for artists like Jay Z, detecting cancer, and building theme-park rides. None of these jobs are in the standard tech industry, and guess what?... most CS-related jobs aren't.
Misconception 2: Computer science and computer literacy are the same.
Key Message 2: Computer science and computer literacy are different.
Kids are already learning how to use the Internet and create digital presentations, isn't that computer science? A recent Google-Gallup survey showed that the majority of students believe that creating documents and presentations (78%) and searching the Internet (57%) are part of computer science. Parents, teachers, and principals are almost as bad at delineating the difference between traditional computer literacy activities and computer science, and actually more parents than students believe that doing a search on the Internet is computer science.
Here are some definitions:
Computer literacy: the general use of computers, often focused on particular software applications, like office productivity software. Example: Doing a web search for information on cheetahs to write a report.
Digital citizenship: appropriate and responsible behavior with regard to technology use. Example: Picking an appropriate password and keeping it secure. (Source: digitalcitizenship.net)
Educational technology: using computer technology (hardware and software) to learn in other school subjects and disciplines. Example: An English teacher using online file-sharing and collaboration applications to allow real-time, collaborative editing of an essay.
Computer Science: the study of computers and algorithmic processes, including their principles, their hardware and software designs, their applications, and their impact on society. All of the above are distinguished from computer science because they are all focused on using computer technologies rather than understanding how/why these tools work and creating them. Example: Programming a light pattern into a dress to react to the user's movements. (Source: Computer Science Teachers Association)
Misconception 3: Oh I know what CS is... it's all about coding!
Key Message 3: Nope... CS is way more than coding!
For now, assume that coding is the same as programming - writing instructions in a language that a computer can understand to execute a task. Many folks believe that coding is all there is to computer science.
Computer science covers hardware devices and systems, networks and communication, data and information, societal and cultural impacts, computational thinking... and coding (creating programs). There is a brand new advanced placement course called CS Principles that reflects the breadth of what computer science can be. But what about the calls to "Learn to Code" and orgs named Code this or that? Well, there is the professional Learn to Code movement that is about creating more software engineers through bootcamps and workshops. Then there is the K-12 education Learn to Code movement in which none of us believe that coding should be the only computer science experience kids have. Code.org is called such because it is snappy and shorter than "Computersciencerocks.org". Our own K-12 curriculum, for example, covers much more than coding.
Misconception 4: All you need is an hour of code.
Key Message 4: All you need is an hour of code... to get started.
I've heard a lot of industry professionals say you can't learn to code in an hour and they are right, you can't become an expert in an hour.
The Hour of Code is a one-hour introduction to coding that is meant to demystify computer science. It is basic on purpose, and a lot of activities are geared specifically to elementary-age students because we want to dispel stereotypes about who can do computer science right from a young age. The Hour of Code is meant to lead to Hours, Days, Weeks, Months, Years of Computer Science!
Misconception 5: CS should be taught to older kids, not elementary students.
Key Message 5: CS is helpful for all kids, no matter their age, race, or gender.
There is debate about whether is enough time in the school day to introduce computer science or whether elementary school students should be focusing on learning how to read and write versus code. Part of the reason the tech pipeline is in the shape it is right now is because if students are getting an opportunity to learn computer science (a big IF), it is at the high school level where CS is an elective. By this age students have already developed strong stereotypes about whether or not they can do, belong, or are interested in computer science. For us to see demographic changes in our nation's tech workforce, we have to start earlier, even kindergarten. Coding is interdisciplinary and can be integrated into other subjects. Mitch Resnick of the popular Scratch community says that you can "code to learn", meaning that as you learn computational ideas through coding, you also learn strategies for solving problems, designing projects, and communicating ideas. And as the 6,000,000 students and 200,000 teachers participating in our Code Studio demonstrate, there is always time for something you deem important.
Misconception 6: The CS movement is new to education.
Key Message 6: The CS movement is old to education!
I don't know if this is true, but some may believe that the CS education movement started just a couple years ago. It certainly has hit the public's consciousness in a way that has never been seen before. But I want to be clear about this: Code.org did not create the computer science movement. If anything we've poured some fuel on a fire that had been growing for years. All of our programs are built off the ideas and research of people who have been laboring in the CS education community for years before we existed. They created the fertile ground in which Code.org could grow. Personally, I learned computer science more than 25 years ago using the Logo programming language on an Apple IIe and below you will see some screenshots of Logo programs compared to a recent Code.org tutorial featuring the characters from Disney's Frozen. See any similarities?