I think if there is one benefit to the current downturn in computer science enrollments it is that great minds are starting to wrestle with the complex challenge of how we improve computer science education so that we better engage all students.
This was the topic of a recent blog posting by Dan Reed on his Reed’s Ruminations blog (http://hpcdanreed.typepad.com/reeds_ruminations/). Here is some of what Dan had to say.
I believe we must rethink our computing education approaches in some deep and fundamental ways. First, as researchers and technologists we seek to reproduce students in our technical image, failing to acknowledge that most of our students will not develop compilers, write operating systems or design computer chips. Rather, they benefit from training in logical problem solving, knowledge of computing tools and their applicability to new domains.
In short, most of our graduates solve problems using computing rather than working in core computing technologies. We must recognize and embrace the universality of computing as a problem solving process and introduce computing via technically challenging and socially relevant problem domains.
The magic hierarchy of computing – from atoms to gates to bits to in-order instruction architecture and machine language to code translation to “hello world” was an attractive and emotionally enticing technology story to previous generations. It is often esoteric and off-putting to a generation of students reared on ubiquitous computing technology.
This does not mean we should eviscerate the intellectual core of computing. Rather, we must emphasize relevance and introduce computing as a means to solve problems. Show the importance of computing to elections and voting, energy management and eco-friendly design, health care and quality of life.
Second, we struggle to accept the fact that not every student needs detailed knowledge of every computing specialization. If I were to draw a tortured analogy with the history of automobile, drivers need not understand combustion dynamics, the stiff ODE solutions underlying antilock brakes or superheterodyne radio engineering. Drivers do need to understand how to operate a car safely and recognize the high-level principles underlying that operation.
All of this suggests we should create multiple educational tracks that emphasis the disparate aspects of computing, layered atop a smaller, common core. Of course, I could be wrong – I often am.
To read the full blog entry, you can go to the CRA blog at:
http://www.cra.org/govaffairs/blog/archives/000657.html
It is well worth the read.
Chris Stephenson
CSTA Executive Director
2 thoughts on “Rethinking CS Education”
Leave a Reply
You must be logged in to post a comment.
What Dan Reed is talking about teaching here is the stuff that *should* be going on in the K-12 realm as part of all students’ general education. So, while I don’t disagree with Dan, I think the emphasis on the university students is misplaced. As such, let me take his argument and apply it to a High School setting where, I think, his approach would be off-base.
To take Dan’s approach suggests going down a path that is, I think, only a slight degree away from the mere skills training we K-12 CS educators have been lamenting about for years. If you view high school as a vocational endeavor then, fine, you don’t have to read the rest of this. The view Dan takes is teaching computing as a means to an end; an attempt to convince students and the community that, hey, this stuff is useful for solving real problems that might occur in your life. This is an approach that smacks of what I call the Computer Science persecution complex. To succumb to it means that CS will remain mired in the “non-academic classes” category in k-12 schools. Dan brings up the lamentable car analogy in order to equate CS education with what? Driver’s Ed.? This is what I’m talking about.
I think CS needs to be taught in the tradition of liberal arts. We don’t teach CS because it’s merely useful. We also don’t teach it (I agree with Dan on this one) in order to turn out legions of hard-core CS types. Rather we should teach CS because CS provides a way to think about and organize the world in a way currently untapped by the traditional “core” of academic classes (Math, English, History, Science, Language).
Do you hear English teachers trying to convince people that it’s worthwhile to study literature deeply because those skills will be useful to them later in life? Or math teachers saying it’s worthwhile to study calculus to prepare students for all of the calculus problems they’re likely to encounter in life after school (likely, zero)? No.
In the liberal arts tradition, it’s useful to study these things deeply because you have to really dive in in order to access the mode of thinking unique to that discipline. Being armed with an arsenal of thinking modes is what makes us better thinkers and better people. The joy of education is to move beyond the utilitarian nature of the subject and to “get your hands dirty” with the real stuff that makes the discipline in the first place.
The discipline of Computer Science encompasses the big ideas of our time – the biggest ideas since the Industrial Revolution. These ideas are profound and deep. How can you appreciate the problems you’re solving with the computer if you’ve never tried programming something? How can you appreciate a program if you’ve never wrestled with the idea of an electronic logic device? How can you appreciate that without thinking about the digital representation of information? etc. Dan’s “technology story” IS appropriate to teach students, and I don’t think it’s off-putting. I’ve found teenagers to be quite eager to demystify the machines that are so integral to their lives.
As such, I agree with Dan that CS has been on the sidelines long enough. It’s time to get in the fray, but we face resistance from the established cores of education. My view is that the way in is to stop trying to convince people CS is merely useful. The way in is to convince people that they need to have experienced what it’s like to *think* as a computer scientist. It is difficult to argue with the notion that students need to be in touch with the big and deep ideas that have transformed the age we live in.
In 1907 John Dewey wrote an essay called “The School and Society.” He opens by saying, “The change that overshadows and even controls all others is the industrial one…That this change should not affect education in some other than a superficial way is inconceivable.” That was 100 years ago. If you replace “industrial” with “technological” you have Dewey for the 21st century. This is the path we should follow.
Baker Franke
Computer Science Dept.
The University of Chicago Laboratory Schools
Your comments, I believe, are cogent and timely. I teach CS in a Maryland Public School (I posted a comment on this blog a few weeks ago), and I can tell you that amongst my peers you’ll encounter a variety of opinions. That being said, the survival of this fundamental and vibrant science depends upon changing perceptions of people who know little or nothing about CS, math, or education for that matter. We’re talking about politicians here, and that requires a combination of timing, persistence and careful planning—best handled by an orchestrated public relations campaign.
It’s sad and more than a little ironic, but informed people rarely effect change by virtue of well-reasoned, cogent arguments. To paraphrase Bernays (who wrote perhaps the seminal work on Public Relations at the turn of the last century): Groups (this includes politicians and self-interest groups) live in logic-proof compartments. They are not swayed by logical arguments, rather they use logical arguments only to justify their preconceived notions. If you walk into such a room trying to convince anyone of anything that that don’t already believe, you’re wasting your time. Truly, we’re talking about “herd mentality” here. (Trust me … I’ve seen this happen in other venues (before I retired to teach CS).
This means, among other things, that we have to change public perceptions. What makes this awful is that we have very little time left before CS will totally disappear from secondary classrooms —at least in Maryland.
We need leadership and planning for sure, but we need to change public perceptions too, and that’s not something we learned how to do in those countless hours spent doing the things we love … .
TomR