In celebration of National Computer Science week, I am republishing this post. ENJOY!The digital world is such a dynamic world. That’s what I love about it. But how can we possible know or even imagine what our world is going to look like 10, even 5 years from now? We do not know what technologies will be available or even what kind of problems the world will be facing. How can we possibly prepare our students for that world?
Regardless of what country we come from, what culture we grow up in, and what economic conditions we live in…we all must solve the problems in our world……our local world…and our global world. We need tools in order to do that. And the tools of today are digital. The people who are in command of those digital tools will be the leaders of academia, research, business, politics, entertainment, and philanthropy.We’ve got to teach the students now how to learn to design, build, program, and reprogram their own digital tools so they can solve those problems.
Computer Science teaches students how to use build something, maybe a new tool, using technology, computation thinking, imagination, logic, problem solving, and creativity. I tell my students if they can think of it and describe it, we can make it happen on the screen in front of them. That might be a new game to teach difficult concepts to kids, a mobile app for the smartphone to help better manage business inventory, a new data analysis software program for the medical research lab, maybe….. even a design for an entirely new device. It gives people the power and ability to build their own digital solutions to solve their own problems. They can program, or reprogram whatever device is available to accomplish what they need. Computer Science gives you the tools to do that yourself, right there, with your own mind, with your own handsAnd what’s great about many of the Computer Science development tools…they are (mostly) free. Many international level companies (such as Microsoft, Google, and Apple) and universities (Carnegie Melon & M.I.T.) provide almost everything FREE of charge. So, schools with limited economic resources can actually design and implement a good Computer Science program.
Educators love to say that we embrace failure and that we’ve got to let our students fail. But, in reality we do not do that. When a student fails a test, we send letter home to the parents, the advisor is notified, the teacher writes on the test “Johnny, I was expecting much better than this”. The student’s average goes down. Johnny probably gets grounded at home and the parents start asking about tutors. That low grade may keep him from entering honors and AP classes. It may keep her out of certain colleges. It may keep him from receiving certain awards. Hmmmm….far from embracing failure, huh?The Computer Science classroom has no choice but to embrace failure. When we write programs and work with various devices, we’ve got to rely on trial and error and failure to help us figure things out. The messages we get, the things we see on the screen, the incorrect outputs we generate, and the crash reports are our tools for success. In a typical class a student will “fail” 20 or 30 times. In fact, it’s hard not to fail. Most computer programs can be solved in a variety of ways; rarely is there a “right” way to do it.
If you talk with successful project-based Computer Science teachers, you’ll get the same stories about how kids love class, enrollment numbers are going up, the energy in their classrooms, the collaboration, how they create some incredible programs, how they also come up with solutions and strategies that we never expected. Why is that? Well, think about it this way–for most students they are told what to do every day of their life. From the moment they wake up, they are told what to wear, where to go, when to go and when to stop, what to do when they get there. When they get to class, the teacher tells them what to do and for how long. At practice after school, coach tells them exactly what to do. At home that night, mom and dad make them study then say when to go to bed. The Computer Science classroom offers an escape from that. We say come into our room. Here are some challenges to attempt. There is not necessarily any one answer to our problems and projects. In fact, even what we are assigning can be interpreted differently. Finally the students are in control… not just of their own life, but of their own learning. They get to decide exactly what the computer will do, how it will do it, how long it will do it for, and how it will communicate that it did it. And they can change it right there and instantly see the effect. They can fine tune it, or they can overhaul the entire project. All right there.–right in front of their eyes. They are encouraged to “try it, let’s see what it does” It’s one of the few times in a student’s life like where they have complete control. That’s partly why they love Computer Science.
Ok, I’ll bite. I get it and I see your points…..So, what are the first steps?First: recognize what Computer Science is, why it’s crucial in our world, and consider Computer Science as a fundamental core component of education. What I mean is we have to value Computer Science as central to education as we do language, math, chemistry, and history. In an academic career, students should have as many Computer Science projects as they do essays is English and history class. Programming a computer or device must be looked at in the same way we look at reading and writing. Middle schools, high schools and universities must make it required for graduation. Universities must require Computer Science courses in every major.
Applications such as Microsoft Office, blogging, and photo & movie editing are excellent tools in the various subject areas we teach in our schools. But, those applications must be taught in subject area classrooms, not in the Computer Science classroom. Subject area teachers MUST embrace those tools as much as they value the pencil, paper, and book. Expertise of those applications must be part of the science, math, science, and language classroom experience. Teachers at each grade level must all agree that students mastering technology is a regular part of the day.
That allows us to start Computer Science early. In my school, we’ve got Computer Science introduced as early as the 3rd and 4th grade. If they choose, students can take Computer Science every year until they graduate high school. It cannot be something they take above and beyond an already determined academic path. To accomplish that requires us to ask some really tough questions. Do we really need to teach history, foreign language, and math so many years? Do all classes really need to meet every day? Do all classes really need a full year or even a full semester in order to accomplish their goals? Are the standard required courses in all divisions still relevant?
We must prepare students for the world they are going into, and that world is digital. We are still stuck preparing the students for the world that we went into a generation ago. Students of today see the obvious need for Computer Science in their future. They “get it”. Some of the parents “get it”. Some teachers “get it.” But education in general does not. There will be a time in our future where we will look back and say, “…what took us so long?” Why must we wait for that time to change?What I am NOT suggesting is that we abandon other disciplines, subject areas, and majors. In fact, quite the opposite, we need those doctors, entrepreneurs, engineers, vets, small business managers, and lawyers to follow their passion and be leaders in their industries, but to also have a Computer Science edge to them…..the ability to create and modify their own tools. As they look to be innovative and distinguish themselves, they will be able to design their own tools, exactly as they need. They will be able to embrace and use new technologies as they develop. Technology and the ability to use, program, and reprogram that technology is what will allow them to be leaders in their fields.
The ability to be in control of and in command of technology, not the other way around…is such an obvious need to me. Yet, I am amazed that colleges don’t require it of incoming freshman; few high schools really teach it; few high schools actually requite it to graduate; almost no middle schools teach it; and it is nonexistent in elementary schools. Sometimes I feel like I am standing over a wooden maze in laboratory. Inside is a rat making the same wrong turns, going backwards, hitting dead ends. And because I am standing over it, I can see the exit right there, just one corner away. It’s so obvious the correct way forward. And “winning” is so close, yet so unclear to the rat. The rat does not even know that it is in a maze, or that it is trying to find its way out. It’s just wandering around. Eventually, when the rat does accidentally find the exit, then it will be obvious to it as well. That cannot be how we educate our students.
I would give credit if I knew who said it, but in the end…..“…program or be programmed…”
update(Thanks to Alfred Thompson)…….That is the title of a book by Douglas Rushkoff