What if computer science was required?
September 26, 2009 at 9:28 am 26 comments
I’m at the ACM Education Council meeting in Vancouver this weekend. One of the topics of conversation is whether the ACM should push to make computer science a required subject in US high schools. The argument is that computing education will only be taken seriously (e.g., receive funding, get teacher certifications and standard curricula, get treated well by No Child Left Behind) if it was a required subject, like other sciences and mathematics.
I finally did read Lockhart’s Lament that Ian Bogost talked about in his recent blog post. Lockhart’s essay starts out with a painter and a musician having horrible nightmare’s about their subjects becoming “required” and how that meant draining all life out of the subject until it was an easily taught and easily measured husk of a subject. Lockhart’s point is that this is exactly what has happened with mathematics. I found his essay interesting, but ultimately, defeatist and even narcissistic. Lockhart complains about how badly his beloved mathematics is treated. Yet he offers no way out, no solutions for balancing the demands of compulsory education at a national scale and the desire to keep the art and soul of mathematics. His despise for teachers and education schools makes it unlikely that his arguments will have any sway with them in making things better.
Still, I think he raises excellent points to consider for computing education. I work on the Commission to design the new AP exam in Computer Science, and it’s hard to define the test scope and range exactly enough to make a standardized test, and yet still encourages students to explore and be creative with computing. If computer science were made a mandatory subject, it would have to be dissected and classified and standardized even further. Would a computer science requirement be the death of the “Beauty, Joy, and Awe” (in terms of the popular SIGCSE presentations) of computer science? Is it a necessary process that defining a subject in NCLB terms means reducing it to a husk of its former self? How can we teach teachers to meet the standards and still ensure that what’s interesting about computing remains — even if we can’t come up with an observable standard that would demonstrate that “students find computing creative and fun”?
Entry filed under: Uncategorized. Tags: computing education, high school CS.
1.
Erik Engbrecht | September 26, 2009 at 10:00 am
I’m not sure how much “beauty, joy, and awe” exists in computer science even in Alan’s Group #1, much less everywhere else. It should exist, but it doesn’t. So I wouldn’t worry about reducing it to a husk. Think of it more as a shell that can be filled in later.
2.
Alan Kay | September 26, 2009 at 12:35 pm
Hi Eric,
I think “beauty, joy, and awe” in computing do exist (always have and are there to be experienced) but are much less manifested now than over the previous 48 years I’ve been involved in computing.
The “shells” don’t get filled in, and I feel a much better remedy is to remanifest what’s really wonderful about computing in a general curriculum. Both maths and the sciences need these — and even reading and writing! — need these as well.
Hard to do given the current educational machine and its notions of goals and reward structures.
3.
Erik Engbrecht | September 26, 2009 at 2:10 pm
Yes, no doubt they exist. But do they exist is sufficient pervasiveness where, short term, they could be imparted in a public school classroom by a teacher with little-or-no CS background who needs to ensure his students can pass a standardized test?
I’m not disagreeing with out in principle, but I’m doubting the feasibility. Our schools don’t have magic in any subject. When I was growing up, computing was the only magical subject for me, and I learned it entirely outside of school, by myself, with books and magazines as my guide.
So poor, boring computing education is better than no computing education, just like it’s better than no math, and I think in the short term that’s all our system can muster.
4.
Alan Kay | September 26, 2009 at 12:28 pm
I think our society is correct in requiring fluency in reading, writing, mathematics, etc. This is grounded in Jefferson’s et al, notion that public education’s primary purpose is to provide residents with the perspectives and knowledge needed to vote as “the holders of the ultimate powers of the society”.
The various forms of “slipping and sliding” and downright cheating in the apparatii set up for this purpose have made a mess and a mockery of these great inventions and gifts to humanity.
But, to take math as an example, it seems unrealistic to believe that there would be a general enough ground swell of voluntary zeal to learn math on one’s own, even if the most fantastic books and interactive courses were available for free on the Internet.
There is a lot of focus on high school AP for lots of reasons, but I think this is a poor place to start. It’s pulled by not so great standards and expectations from university and vocational contexts on the one hand, and by essentially no prior prep in the earlier grades to allow a reasonable HS curriculum to be developed.
So, I think doing a realistic K-8 (or 9) curriculum and trying to get the government to make it mandatory could be a good idea.
I do not like the current practice of separating math and science in K-12, and I like even less the idea of having computing be separate. I think we are much better off, especially in the early grades, of treating all of these as facets of the arts and sciences, and especially to treat CSTEM as just one subject for a few years, and one that is grounded very much in systems thinking, not just in simple link thinking.
This is yet another iteration of a long standing point of view — I attribute the basic thrust to Seymour, and the ramifications to a variety of people, including di Sessa, Abelson, yours truly, Mitchel Resnick, etc — and it is very well supported by cognitive psychology.
Until something along these lines is set up in K-8, it will be difficult to make any HS experience have the kind of richness and depth that is possible.
5.
Barry Brown | September 26, 2009 at 1:32 pm
Leigh Ann Sudol recently posted in her blog that what separates CS from the other science is our focus on tools. CS education standards seem primarily motivated by what the latest curricular tools are available — in particular, the language of choice. Other sciences, however, decide on the “essential foundations” for their disciplines and form curriculums around those. Those foundations may change over time, but the deltas are measured in decades.
I would add to Leigh Ann that the sciences seek to explain the natural world around us. Ordinary people can take an introductory course in any science and gain insight into their everyday observations of physical phenomenon. CS enjoys no such luxury.
CS can ill-afford to base any kind of standard curriculum on its tools. They change too quickly. There would be thousands of teachers looking for direction and training. The deltas of a tool-based curriculum would be measured in scant years.
Before we embark on any kind of standardization, we as a community need to decide on what defines CS. What does it mean “to compute?”
In some sense, even mathematics suffers from a tool-based curriculum — the language of algebra (x, y, √, ⊂, etc.) — which Lockhart laments has sucked the life out of math itself. At least in his discipline the tools have remained the same for a long time. But can we avoid the same pitfall?
6.
Alan Kay | September 26, 2009 at 2:09 pm
Hi Barry,
A more comprehensive way to think about the sciences is that they seek to study and explain *phenomena*, however caused.
So there can readily be a science of bridge building (whether the bridges were made by nature, humans or beavers), and there can be a science of computing. (This in fact was the sense of “computer science” when Perlis came up with the term as something to aspire to (not as a fait accompli)).
So for example, if someone makes a programming language, no matter how, a “computer scientist” (a real one like John McCarthy) can make a model of the meaning of what a programming language does in a form of mathematics — and as we like to see it, in a size and form that “fits on a T-shirt” and “allows further deep thinking and exploration”.
So any artifacts in computing, at every level, are open to being studied and modeled and thought about and tested further.
Many of the good results (like the Lisp model) can get turned into artifacts, whose phenomena and models can lead to next level ideas (such as Smalltalk).
And you are right that CS shouldn’t be wrapped around its tools, but around its universal foundations that can manifest artifacts of many different kinds, including tools.
One way I like to think about this is — in parallel to modern Biology, whose ultimate building blocks are a few kinds of atoms — the main interest in both Bio and Computing is in what it means to make and use and study and understand workable *architectures*. How can systems be at once flexible, dynamically stable, changeable, and understandable? And so forth.
This point of view was more in vogue before 1980 than afterwards.
One of the first great books — really early — is “Computation: Finite and Infinite Machines” by Marvin Minsky. This could be dismissed today as completely out of date, and yet it is just such a beautiful book about such important ideas, that I read through it every few years just for the pleasure of it.
It is all about trying to get a handle on the essential nature of computing, and — to follow your suggestion — this is what needs more emphasis in today’s curricula.
An important point here is that, like physics, the foundations of computing have hardly changed even as 3000 languages and many operating systems, zillions of CPUs, etc., have come and gone: most with no improvements and some of less worth than the best ideas in the early 60s (e.g. such as Lisp and Strachey’s CPL language and the Burroughs B5000 computer).
But the charge I would level at our “not quite a field” is that it commits the sin of Cicero: “He who knows only his own generation remains forever a child”.
In other words, the big difference between computing and a real science is not that the possibility is closed, but that computerists disdain to learn from and build on the best ideas of the past. Instead, a kind of misplaced expediency of using whatever is at hand or was learned first is employed which forces “the flat tire to be reinvented over and over”.
Science doesn’t come out of that kind of “know-nothingism”.
Cheers,
Alan
7.
Erik Engbrecht | September 26, 2009 at 2:25 pm
Barry – Some of the best tools have remained largely the same. The problem is these tools are rarely fashionable, and I can’t see a curriculum that uses, say, Lisp to teach computing making it very far. Too many would (wrongly) scream that Lisp has no practical application. But a curriculum built up around Lisp would not only be an excellent way to learn about computing, it would also be very stable, unlike the en vogue industrial languages like C++ and Java.
8.
Alan Kay | September 26, 2009 at 2:40 pm
Erik,
I think the better idea would be to base a curriculum partly around the best ideas in Lisp — these are more interesting and long lasting than Lisp itself.
There are fashions in the physical sciences as well, and most of them are very much on the fringes where appeal to the actual phenomena can’t be made (e.g. string theory).
Mark has decried the deep bad pulls from industry and from legacy fads, and it is difficult to dislodge them unless there are huge counterexamples, and even in this case we find something much more like a religion operating.
For example, all the parts of personal computing “from the end-user down to the microcode” were done in about 10,000 lines of code and a specially designed machine at PARC in the 70s, yet today neither the programming or hardware styles that were so successful and so compact are to be found.
Instead we have a few of the designs (like the GUI) kind of “painted” on the previous ponderous technologies, none of which led to personal computing but most of which hung around anyway to confuse things ….
9.
Barry Brown | September 26, 2009 at 9:32 pm
Such a curriculum exists! Have you heard of How to Design Programs and TeachScheme? Perhaps I have drunken too much of their Kool-Aid, but I think they’re really onto something. They’ve focussed on what they consider to be the essence of computing — data and the functions that manipulate them — and eliminated almost all other syntactic distractions.
I had the fortune of catching a glimpse of the next generation of the IDE which continues to focus on data and functions while removing the remaining vestiges of Scheme syntax: the parentheses. It’s very cool.
Erik is right about its acceptance: the TeachScheme curriculum has its cult-like following and lots of testimonials that it produces proficient programmers at the first- and second-year levels, but it’s far from mainstream.
10.
Jeff Graham | September 29, 2009 at 7:40 pm
Much of math without those algebraic tools would be stillborn not lifeless. We need ways to express ideas or there is no subject.
Computer science is not so very different. It is about ideas and it needs a language too. I won’t start an argument with the functional programmers (because I’d lose) about what language best expresses the ideas. What the community needs to decide is what are the essential ideas of cs? Is there some underlying philosophy that guides the discipline?
11.
Ian Bogost | September 26, 2009 at 4:31 pm
I won’t deny that Lockhart’s essay is negative, but I hardly think that means that we should brush it aside as useless. It’s a provocation, and like all provocations it should, well, provoke us. Asking for it to offer solutions is like asking a beef wellington to satisfy a sweet tooth.
Pieces like Lockhart’s ask us to question the very institution of compulsory education… not to call for ignorance instead, but to recognize that the institution itself may be the cause of the horrific education it produces. This is the same sort of argument that John Taylor Gatto has made for decades, a controversial figure who inspired many more critiques of the strocture (not the idea) of education. Among those was none other than Ted Nelson, who penned his prescient idea of computational “thinkertoys” in the second part of Computer Lib/Dream Machines… a book that remains sadly out of print.
As for the matter of practical educational reform, including the ACM’s interest in compulsory computer science education, certainly it won’t surprise you to hear me say that this is a fine idea so long as it’s not left to the computer scientists
. But more seriously, what we really need is a wholesale reform of primary and secondary education in America, one that would provide a grounding in the arts and sciences akin to what we expect from a current collegiate liberal arts education. The likelihood of such a thing happening is probably roughly equivalent to the likelihood of a wholesale reinvention of our national health care system…
12.
Mark Guzdial | September 26, 2009 at 5:24 pm
You’re right, Ian — Lockhart’s goal was to provoke and to raise important issues, both of which he achieves. It’s a personal issue with me that I have (too) little patience with provocation-alone. It’s easy to yell “Fire!” in a crowded theater. How do we resolve the tensions between teaching everyone and teaching everyone well? Now *that’s* hard!
13.
Alan Kay | September 26, 2009 at 5:43 pm
Mark,
If there is fire in the theater, I would hope that someone would point it out. But even better, we need to make sure about extinguishers, and whether the ushers and firemen are competent, etc. If they aren’t we shouldn’t get upset at the person who points out the fire.
I don’t think we can solve any problem in American education by giving in to poor teachers and depriving the students by acclimating to those teachers.
But it’s hard to really nail the poor teachers without having a great curriculum to measure them against. And we don’t have one that I can see anywhere in K-12. Right now I’d rather attack the atrocious AP curriculum that is still in place (and I’m guessing that the alternatives are going to be pretty substandard also).
More controversial, I think that today’s “computing as it is” is pretty atrocious, and we just shouldn’t make this the center of any real curriculum for K-12 … that would be horrendous.
The simplest model of human and societal learning is the “erosion model” where once the gulley gets started it just keeps on eroding.
But we just have to fill in the bad gulleys in order to have any chance at rescuing our field from its ever more faddish and ad hoc descent.
Cheers,
Alan
14.
Nicole | September 26, 2009 at 5:29 pm
Computers are required in every class, and will be required throughout our student’s lives, so we better make sure they know how to use them. It would be very beneficial if adults and children knew computer science, learned how that information popped up on their screen. And imagine the things our children could create if they learned these things early. But it shouldn’t be mandatory, it should be available, but not mandatory. These classes would be exceedingly difficult for children in K-12 schools, and would often require a level of abstract thinking that most adolescence are not ready for.
15.
Alan Kay | September 26, 2009 at 5:54 pm
Hi Nicole,
Cognitive Psych over the last 100 years or so (plus much other evidence) indicates strongly that virtually all adolescents are physiologically mature enough for the abstract thinking that mathematics requires.
Are you contradicting this, or are you saying that their educational prep has shortchanged them?
Cheers,
Alan
16.
Erik Engbrecht | September 26, 2009 at 7:07 pm
Nicole,
I think computing, at least in its basic forms, is substantially easier to comprehend than math. Unlike math, computing is much more forgiving in terms of absolute logical rigor and precision.
I think the perception that computing is inherently hard arises from the fact that most people don’t learn anything about computing until late in life. Learning a second language as an adult is extremely difficult. Learning one as a child is trivial. I think the same holds true with computing. The problem right now is very few people had the opportunity to learn computing as children because computers have only been pervasive for a short time, so most people are convinced that it must be hard.
17.
Jeff Graham | September 29, 2009 at 7:44 pm
Good lord, since when did they ever teach rigor in high school math? The closest they get is geometry. Let’s not mistake learning calculus (AP or otherwise) for mathematical rigor.
18.
Barry Brown | September 26, 2009 at 9:55 pm
If they’re ready for algebra, they’re ready to learn about abstract computation. At a fundamental level, a computer is capable of little more.
I learned programming long before I learned algebra. I would argue that my prior knowledge of computation helped me excel in mathematics. A symbiotic relationship exists that would benefit everyone, no matter when they started to study each in earnest.
19.
Mark Miller | October 1, 2009 at 7:46 am
Same here. I started when I was about 12 years old, though I learned on my own. When I taught a programming class of elementary school students (3rd-5th grade), I found that the 5th graders in my class seemed to get the ideas pretty readily (this was with Basic). The younger kids had a harder time, though I think from the evidence that’s been shown since then this probably has a lot to do with the tools being used (some are easier to understand than others).
At the Rebooting Computing summit in January, Brian Harvey gave a presentation with a Scratch demo that was done by a 6-year-old. I thought that was pretty impressive (and delightful to watch). It was nothing fancy, very simple, but showed the ability to understand a little something about computing.
As for me, I think learning programming helped me some with math. It definitely helped me exercise my logical thinking skills, and my understanding of the concept of abstraction. It also added to my confusion though. I remember getting confused about the meaning of the term “function” in algebra. I think I was just learning Pascal at the time, and it had “procedures” and “functions”. I learned it from the Pascal perspective before I was introduced to the idea of a function in algebra. I saw “function” from a process perspective (I actually described it in terms of a “catalyst”), when in mathematics it’s really about a correlative relationship. So, given the tools that were available at the time it was a double-edged sword.
20.
Alan Kay | September 27, 2009 at 10:29 am
Barry Brown wrote:
>Such a curriculum exists! Have you heard of How to Design Programs and TeachScheme?
Sure. And these folks deserve lots of credit for energy, focus, etc., and a few good ideas. I haven’t seen the next generation of the IDE that you mentioned (but would like to).
It is always easier to praise than to give a really measured criticism, so I’ll bypass here what I think are the deficiencies of this approach.
I think Ann Sudol’s comments and analogies to Biology are directly to the point. What should it mean for a national curriculum to have “general biological literacy” as a goal for all students? To me, this is exactly the question to be asked about those subjects the society deems important enough to be taken out of “electives” and put into the much harder arena of teaching and learning where there may not be much initial interest and predispositions.
We can make analogies to “big deals” like reading, writing, literature, etc., and “lesser deals” such as learning to drive a car.
As she says, it’s not about what professionals do here that is the issue, but about the thresholds of fluency required to “be in the real conversation”, to “sit in the band”, etc., to “play the sport”, etc., rather than do the “air guitar”, “Guitar Hero” or “Fantasy Football” versions of these.
A key notion about biology is that it is neither about its terms nor about the 6 or so kinds of atoms that are the bricks for life. Similarly, I posit that computing is *not* about *data and the functions that manipulate them*.
One perspective to take on various curricula that have lots of work (and often quite a bit of the worker’s identities to the point of religious zeal) invested in a particular approach, is to compare it to the history of Pascal.
In my opinion, this was one of the biggest dead-ends and distracters in the pedagogy of computing. And the timing of it was even more unfortunate — most of the 4000 4 year institutions were just starting to jump on the computing bandwagon (despite there being only a few hundreds of real computer scientists at the time).
I think Pascal made its way largely because (a) Klaus Wirth can really write documentation, (b) it was very easy to implement (c) most people who were looking for something to teach computing with were very unsophisticated about computing and where it was going.
I think (c) is still the huge factor today, and this makes (a) and (b) carry much more danger than they should.
So, we can imagine that the combination of easy availability, popularity out in the world, and pre-done materials that take teachers off the hook, will again carry the day.
To go back to the analogy (and real parallels) with Biology, it’s hard to imagine that more than a few 8th or 9th grade bio teachers will have the knowledge and outlook to override text books and canned curricula when this is a good idea. And much harder (for me at least) to imagine this kind of curriculum building from K-12 teachers of computing.
So having great materials and tools and guides, etc., seem to be the most important thing to do, and again we have to give the DrScheme folks real kudos for putting their time and effort where their beliefs are to produce a full set of stuff.
The other analogy I’d like to bring up is in my opinion a really important and (to me) somewhat frightening one. Two pretty opposite poles in general education are “Back to Basics” and “Learn by doing and understanding”.
The Basics faction is well represented by books and materials by E.D. Hirsch and William Bennett. These could hardly be better written for their intended audience of parents and teachers. (I think they are way off and disastrous.)
However, it is much much harder to write materials representing the other perspective, and it is difficult to point to really good screeds which help parents and teachers understand what is really needed and how to go about making this happen. For one thing, the Basics track doesn’t really require parents and teachers to understand the subjects (nor does it require or achieve this with the students). Whereas, the “learning by doing and understanding” does require lots of understanding to happen everywhere.
Another analogy (which could be a little offputting for some) is between religion and science. Do we want students to *believe* modern knowledge, or do we want them to *understand it*?
Best wishes,
Alan
21.
Aaron Lanterman | April 17, 2010 at 12:17 am
Another huge factor in Pascal’s success: You buy Turbo Pascal for $50.
22.
Mike Hewner | September 27, 2009 at 4:07 pm
> The argument is that computing education will only be taken
> seriously (e.g., receive funding, get teacher certifications and
> standard curricula, get treated well by No Child Left Behind) if it
> was a required subject, like other sciences and mathematics.
While I imagine requiring high school computing might be beneficial to the field of Computer Science, do our high schools really need one more required subject? Many have already complained that existing curricula demand breadth at the expense of real student understanding.
All this deep understanding we want students to get takes time. How about the ACM asks to make CS a required subject – and then at the last second we cede all that time to Lockhart to build an additional mathematics curricula unfettered by the requirements of NCLB? And then we could similarly take all those math teachers we’d be retaining to half-teach CS, and focus them on deeper approaches to what they already know. I’d gladly spend an extra semester or two teaching intro CS to students who really understand/love mathematics.
23.
Andrea Kavanaugh | September 28, 2009 at 3:05 pm
if the required course were your ‘media computation’ course with your book and excercises with their own photos, the middle and/or high school kids would have a blast, regardless of who the teacher was.
24.
Garth | September 29, 2009 at 12:17 pm
Maybe I missed it but was “Computer Science” defined anywhere in here? From some of the conversations it appears that many consider that “Programming” is “Computer Science”. I think the list of topics included in a “Computer Science” curriculum would be good for years of discussion and argument. Does the study of computers include application use, hardware, OS, management, networking, and all the other goodies that are not programming? I have seen some very heated threads both ways.
25.
Alan Kay | September 29, 2009 at 12:35 pm
Hi Garth,
Take a look at what is currently comment number 6 to this blog entry, now marked as 6. Alan Kay | September 26, 2009 at 2:09 pm.
(This is crazy that the blog framework makes it impossible to refer to entries in a reliable way …)
My position is that computing is wide and big, and pretty soft and full of fads and personal opinions, so actually paying some attention to standard modern meanings for “science” and “engineering” really helps when we try to look at computing from one perspective or another.
This way of trying to pin the tail on the donkey gets us pretty close to Alan Perlis’ original purpose in drawing the field’s attention to the possibility of a real “computer science”.
So the answer to your question is “all of the above” with the side-condition of trying to really deal with what a “mathematical science” might mean when applied to computing.
Best wishes,
Alan
26.
Aaron Lanterman | April 17, 2010 at 12:22 am
I get really, really nervous when people talk about making *any* subject *required.* There are only so many hours in the day, and at some point adding a *requirement* winds up forcing zero-sum tradeoffs.
My wife taught junior high French for three years, and enjoyed doing so when taking a foreign language was optional. When it became *required* it turned into a nightmare. She then left teaching and went into tech support to get good pay and respect.
(There’s also the underlying issue of needing to set NCLB on fire.)