By Daniel Hudkins Dan Hudkins is Harker’s K-12 director of instructional technology. This article originally appeared in the summer 2013 issue of Independent School Magazine and was also printed in the summer 2013 Harker Quarterly.
Every school plans a curriculum that attempts to meet two parallel objectives: to be consistent with its core values and to prepare its students to be competent and successful adults. This tension leads schools to teach a variety of required courses based on values and perceived needs. But over time, those values and needs change. There were lengthy parts of our educational history in which wood and metal shop or home economics had been considered core skills. In the early 20th century, what independent school would not have included Latin as a required curricular element? Yet how many independent schools require Latin today?
In addition to everything else we teach, at The Harker School (California) we are convinced that the habits of mind learned through an understanding of computational thinking are required if one is to be a knowledgeable adult in the 21st century. And we believe that these skills are best learned through an understanding of computer science.
Vinton Cerf, the father of the Internet, makes the essential argument for computer science classes today: “Embedded computers and their animating software are everywhere, and a well-educated person today has to appreciate and understand their roles in daily life, business, entertainment and scientific research. No curriculum is complete without it.”
Even President Obama has chimed in. Responding to a question about teaching computer science in high school recently, he stated that making that training available in high school “not only prepares young people who may choose not to go to a four-year college to be job-ready, but it also engages kids.”
Here at The Harker School, we have had a graduation requirement of at least one semester of computer science since the first high school graduating class in 2002. The statement in our Program of Studies makes the case for the requirement this way: “The growth of the computer and electronic industries has contributed to profound and fundamental changes in how we work, live, interact with others, and play. We are surrounded with computers, both hidden and obvious, in all aspects of our lives. The computer science department offers a well-rounded program in technology and computer science, with courses that will appeal to the lay user as well as the computer science-bound student.”
Among educators in general, there is widespread confusion about what computer science entails and where it belongs in the curriculum. Computer science is not about teaching students how to use a word processor, spreadsheet or some other computer-based productivity tool. It is not about helping students learn how to make a set of PowerPoint slides to support an oral presentation. It is not about helping students learn how to use digital probeware in a science lab, or how to make a video in a humanities class, or how to create an engaging poster in a graphic arts lab. And it is not just about computer programming. All of these skills can be worthy and valuable parts of a K-12 education, and certainly contribute to one’s technological fluency. However, we are aiming for the higher goal of helping students develop the habits of mind that Jeannette Wing, of Carnegie Mellon University, describes as “computational thinking.”
Wing describes computational thinking as being able to apply human solutions to real-world problems. It represents a human way of thinking, rather than a computer’s way of functioning. As she puts it, “Computational thinking is a way humans solve problems; it is not trying to get humans to think like computers. Computers are dull and boring; humans are clever and imaginative.”
Our computer science classes are informed by experts in the field. Jeannette Wing’s work on defining computational thinking has crystalized much of our course work at Harker and elsewhere. Matt Brenner, of CSTeachLearn and formerly of Phillips Exeter Academy (New Hampshire) and Sidwell Friends School (Washington, D.C.), made the case for computer science in independent schools some time ago. He argued that, just as a basic understanding of mechanization and automation were the transformative ideas that undergirded the industrial revolution, algorithmic thinking is driving the current transformation of our society. “If we don’t know what they [algorithms] are or how to think about, invent, and apply them,” Brenner writes, “then we cannot use them to improve our lives and our society, nor can we understand how others use or wish to use them to the advantage or disadvantage of ourselves and our society.”
In addition, Chris Bigenho, of the Greenhill School (Texas) and the University of North Texas, has gathered evidence of current practices in teaching computer science in many independent schools. Casting a broad net, he posted a request for responses on two active independent school listservs. From his response summary, it is clear that this is a very active topic in the independent school world. While some respondents were in the exploratory phase, it appears that most were actively developing a computer science program that spanned middle and high school. They shared a broad agreement that computer science is a discipline in its own right with its own habits of mind. However, the surveys revealed some impediments to delivering computer science instruction in an independent school. This is leading to active discussion of several concerns including logistical questions (Can programming be taught on an iPad?), pedagogical questions (How can we best introduce students to the “hard fun” of learning to code?), and questions of recognition for independent learning (Is course credit the only meaningful measure or should we follow the world of industry and the MOOCs and look at badging and other forms of recognition?).
Teaching Computational Thinking
The Computer Science Teachers Association (CSTA) and the International Society for Technology in Education (ISTE) recently sponsored a working group to further outline the essence of computational thinking. In a summary report on the working group, Chris Stephenson and Valerie Barr write, “Computational Thinking (CT) is an approach to solving problems in a way that can be implemented with a computer. Students become not merely tool users but tool builders. They use a set of concepts, such as abstraction, recursion and iteration, to process and analyze data, and to create real and virtual artifacts. CT is a problem-solving methodology that can be automated, transferred and applied across subjects.”
While this may feel abstract, it encapsulates the logic that is leading schools to incorporate game design and robotics at a variety of levels. Incorporating a deeper understanding of computational thinking is not unlike what we do in a wide variety of other academic disciplines in which we lead students to take skills acquired in one course and apply them in another (i.e., applying the ability to create a graph to a population study in a geography class).
At Harker, we have done extensive work to embed information literacy across the curriculum. In 2013–14 we will offer a 2:1 iPad program in K-2, a 2:1 Chromebook program in grade 3, a 1:1 Chromebook program in grades 4-5, a 1:1 laptop program (student choice of Windows or Mac OS) in the middle school, and a 1:1 bring-your-own-laptop program in the upper school. We believe that using technological tools to learn across the curriculum with a variety of tools leads to a greater degree of technological fluency.
But none of these programmatic steps directly addresses computational thinking. That requires teaching computer science.
Our computer science classes focus on problem-solving with computers because we know it’s a valuable 21st-century skill in courses and experiences across the curriculum, both inside and outside the classroom. Computer science classes begin in the lower school in fourth grade, where we work with computer simulations and animation. In the middle school, through required courses and elective offerings, the concepts and applications become more sophisticated. Required courses cover game design theory, robotics and the development of mobile applications. Elective offerings include Web animation, introductory programming and an introduction to Java programming.
The high school program, in part because of our Silicon Valley location, is unusually deep. A semester-length course is required for graduation. Students can meet this requirement by either of two options. The Digital World course is designed for students with limited interest in computer science. It teaches computer modeling and digital representation, and spends substantial time exploring the implications of living in a digital world. For those students with a deeper interest, the sequence begins with computer programming, but includes AP Computer Science as well as a series of advanced topics in computer science that vary from year to year. Recent topics have included Computer Architecture, Digital Signal Processing, Expert Systems, Neural Networks, Numerical Methods, Programming Languages and Compiler Systems.
The Computer Science Department
Another area of confusion about computer science concerns the question of where it should be taught. Some schools fold computer science into the math or science departments. While this may be necessary in the short term, it is not a great long-term solution. For the long term, it is important to recognize that computer science has evolved into its own discipline with skills that are distinct from science or math – and therefore requires its own department.
While non-specialist teachers (like me) can introduce computer science concepts in the early years, they are less capable as the sophistication of the computational thinking objectives increases. For the higher end courses – even the middle school courses – it’s best to tap the skills of a specialist. In other words, for courses that rely on introductory tools like Alice, Stagecast or Robolab, non-specialists can teach quite effectively. However, as the sophistication of the tools and concepts increases – think AP Computer Science and above – it becomes necessary to have computer science courses taught by experienced computer science teachers. We want our English teachers to be able to lead students to a deeper understanding of the text than could be provided by an enthusiastic but unsophisticated reader. Shouldn’t we want the same in computer science?
Educators are well aware that the limiting factor in all of our teaching and learning is time, and the competition for that time among academic disciplines, athletics, extracurricular activities, service-learning programs, etc., is an ongoing struggle. But shouldn’t we be asking, are we really preparing our students to be 21st-century citizens if we’re not teaching them the logic of the 21st century – computational thinking through computer science?
Vinton Cerf says, “No.” And we agree.
When part of a high-quality academic program, computer science classes add an element that helps all students navigate our complex, technologically driven world. It also gives our graduates an edge over those who are not taught these increasingly essential skills.