Update on counting CS for high school graduation requirements in Georgia

October 19, 2009 at 11:33 am 60 comments

I had a half-hour conversation this morning with the person in the Georgia Board of Regents who runs the science course review process.  It was her committee that put the AP CS on the rejected list.  Fortunately for us, it was never put through a full review (she and her leadership team rejected it), so there is a bureaucratic loophole through which we can ask for a re-review.  She has promised to send it out to her full faculty review committee “sometime this week,” and to cc me so that I can make an argument to that committee.  I plan also involve the University System of Georgia’s “Academic Advisory Committee on the Computing Disciplines” (representatives of every campus in the USG that has a computing department) to make one-on-one arguments to the members of the review committee.

She also promised to request that AP CS get reviewed by the mathematics committee, to see if it might count as an alternative fourth math.  We tried this a couple years ago and were rejected.  Times change, though, and we can try again.

The arguments against AP CS are predictable:  “It’s just not a science” and “It’s more of a technology class.”  When I argued that AP CS has science practices (hypothesizing, testing models, evaluating results), even if the content is the virtual world not the physical world, she explicitly said that that it’s then not a science.  She explained how her faculty review committee considers what courses count.  “These science faculty ask, ‘Will taking this class in high school make a difference when these students get to my undergraduate science classes?”  Well, that’s a really high bar, and one that we’re unlikely to meet, since all those faculty are in traditional science classes.  Why should taking AP CS make performance in undergrad biology or chemistry better?

Entry filed under: Uncategorized. Tags: , .

How do we make high school CS classes more “real”? Systems Software Research is Dead

60 Comments Add your own

  • 1. Peter Freeman  |  October 19, 2009 at 4:15 pm

    It is important to UG classed in bio, physics, etc. because increasingly those disciplines are trying to figure out how to integrate advanced computing techniques (e,g., modeling) into their curricula. Saw a posting to this effect recently – can’t recall where. Maybe DeMillo’s blog?

    • 2. Mark Guzdial  |  October 19, 2009 at 4:20 pm

      I think that’s true, Peter. Now, does taking AP CS actually help with learning to model in undergrad science classes? It should, but does it? I don’t know of evidence that it does. It’s a really interesting research question.

      We would want to be careful in making the argument to show that the benefit of AP CS is in learning ideas about computation, and that those transfer to better use of modeling. We would not want to be construed as saying that the benefit of AP CS is in gaining skill in using a computer, because that falls into the pit of AP CS as being “just another technology class” (like, “How to use Microsoft Office.”)

      • 3. Mark Miller  |  October 19, 2009 at 5:10 pm

        Another angle is to say that learning about computing is a way of learning about the concept of what a process is (this gets into modeling). This is how computing is different from mathematics. Mathematics says, “This exists,” and, “This assertion leads to this conclusion.” Computing just says, “Beginning with this, it should lead to that (but you have to test it to be sure). And even then, will it always lead to that? What are the exceptions?” Just some thoughts.

  • 4. Owen Astrachan  |  October 19, 2009 at 11:00 pm

    This is a thorny problem from my point of view. I understand that strategically Computer Science needs to be a science or a math course as part of increasing the likelihood that CS “counts” in a high school diploma program. But, the existing AP course is not a science course. Even if we assume that successful debugging requires making a hypothesis as to where an error is, and testing to verify the hypothesis, this isn’t how how debugging works in practice. Debugging is a process in which the hypothesis as to where the bug is undergoes constant revision based on the evidence: “Oh, now that I see that behavior/value the bug must be in another spot or due to a different cause, let me try this ‘fix’ in light of the evidence I’ve just found”

    It’s an interesting argument that this is a scientific process, but the AP computer science course certainly doesn’t test this even if someone wants to make the claim that this is actually what’s taught. As an aside, the 2009 AP Biology free-response questions take up 3 pages. The AP Computer Science questions take up 11 pages. The existing course is far more engineering than it is science: Here are specs, develop code that meets them. That’s not a science.

    Here’s a different thought about whether we want to make AP Computer Science count as a math or a science. Most “good” high school students have no trouble finding four years of math to take, typically culminating in Calculus if they’re advanced. These students won’t take APCS to satisfy a math requirement. Similarly, the good science students will take AP Bio/Chem/Physics before taking APCS to satisfy a science requirement. I don’t think the “good” students will take APCS to meet state requirements. But I’m happy to be shown otherwise. It’s a different question as to whether satisfying the requirements gets APCS taught period, that the state-branding helps a course get taught which is certainly a pre-requisite to being taken, by any group of students.

    • 5. Mark Miller  |  October 20, 2009 at 1:29 am

      This is a good analysis of the issue. Another “hole” that could be poked in the “CS is a science” idea is, “Okay, students can learn the process of hypothesis, experiment, and analysis through programming/debugging, but what is the field of study, and how is the field defined?” I think most CS professors would be hard pressed to answer these questions without sounding mealy-mouthed. Probably the closest they could come to a clear answer would be “It’s the study of logic”, but then that starts sounding like math, not a science. Certain professors could talk about some of the things that masters and Ph.D. students have done in their discipline that would come closer to a scientific subject, but AP CS comes nowhere close to this.

      I think at best what AP CS and undergrad CS offer is a precursor to scientific thinking. It can be used as a way to exercise the brain in some elementary ways that are useful in a scientific setting, but it’s not a science in itself. Not that it couldn’t be. It just seems that the discipline is dead set against moving in that direction.

  • 6. Tony Clear  |  October 19, 2009 at 11:22 pm

    If its any consolation these issues are world wide.

    We have just made some progress on our high school curriculum here in New Zealand with a new “digital technologies” framework.
    cf. http://www.techlink.org.nz/curriculum-support/tks/resources/Outcomes-from-DTEP.pdf

    This report arose as a result of a scathing earlier report on the high school offerings shoehorned under the technology curriculum, cf.

    Click to access 200805NCEAReport.pdf

    These processes are inevitably political and fraught,

    Good luck, Tony

  • 7. Alan Kay  |  October 20, 2009 at 7:54 am

    I quite agree with Owen.

    In addition, I’m not against teaching a computer engineering course (HW and/or SW) in high school, so long as it is (a) well thought through, and (b) not called computer “science”.

    If there is only one set of courses in high school about computing, then I think the emphasis should be on “real computer science” (but carefully thought through for junior high and high schoolers.

    Just what this should be I believe would be very difficult to divine for most high school teachers and a very large percentage of college professors. I think the essential nature of “computer science” as we thought of it 40 years ago has been lost.

    On the other hand, it doesn’t really matter what it is called as long as the essential nature of the “real deal” can be shown and taught.

    I think of this as a two year “expedition”, mainly for 7+-2 reasons. The mechanics of creating interesting things really needs to settle in to leave enough chunks free for the next level of thought required (we can appreciate how much of this happens in so many ways for the sciences, before e.g. physics is approached in high school).

    We could have “making models” of interesting processes be at the center, and e.g. a number of Mark’s media comp examples would serve, especially if the probe were to go a little deeper into how media are simulated on computers.

    We would want to invent a language that allows these simulations to be done very straightforwardly, and that also is kernel enough to be able to simulate itself.

    To keep it as simple as possible without losing the depth, I would concentrate (a) on how various kinds of systems can be built and modeled, and (b) on how languages can be invented and made to allow these models to be expressed as directly as possible.

    One of the big differences between my (somewhat arbitrary) delineations of “science” and “engineering” is that in science we are primarily interested in “meaning” and that in engineering we are primarily interested in “efficient operation”.

    Much of the “algorithms and data structures” part of computing is more for the latter than the former. Lots of it is fun, but I would avoid making this the center of any first course.

    Computers are fast enough now (and have been for a long time) to allow a programming language made for meanings to be used for teaching computer science. And it is possible to design such a language so that any needed optimizations can be added without obscuring the meanings at all (the optimizations are essentially in a different dimension of the language entirely).

    An early question to be asked and answered for such a language is “How shall we model what this language means in itself to be as clear and simple as possible?”.

    This would lead to quite a different form than the traditional LISP/SCHEME routes (but would have some of the same spirit).

    The notion of “simulation of systems” as a kernel idea would give rise to a very different slant on control structures, etc. “Objects” would be more like the “real objects” as they were intended, rather than the denaturing of them into what are essentiallyneedlessly complicated abstract data types.

    And so forth.



    • 8. Erik Engbrecht  |  October 20, 2009 at 5:48 pm

      I’d substitute “effectiveness” for “efficient operation.” Efficient operation can sacrificed lower cost or quicker time to market. Engineering is really an exercise in multiobjective optimization, with the goal being an effective solution.

  • 9. Mark Guzdial  |  October 20, 2009 at 9:09 am

    Nice analysis, Owen. I agree that it is a thorny problem. Mark M. raises some interesting issues which speak to me about why AP CS is different from mathematics, which I appreciate. Alan, you describe a really interesting class which would be fun to build and offer, and which students might get a lot out of.

    Getting AP CS to count as “science” is not a perfect fit. It’s a compromise. Other courses that count for fulfilling that requirement include “Food and Nutrition through the Lifespan” and “Appropriate and Alternative Energy Technologies.” I believe that AP CS is at least as useful towards enhancing students’ understanding of science as these examples.

    I worry about the best being the enemy of the good. What happens to CS in high schools while we go about building the best class? What happens while we wait for high schools to recognize that they need CS as itself, not as fulfilling a “science” or “math” requirement? Jan Cuny of NSF has set a goal of 10K teachers by 2015, which is an estimate of what we need for a new AP CS exam to be viable economically. We don’t get 10K teachers by having 2K (roughly what we have now) in the year before we have the best course and best requirements, and then create 8K more teachers out of thin air. We have to get those teachers teaching over the next few years, in classes that are offered over the next few years, and we have to motivate, cajole, and even require students to be in those classes over the new few years (to get the classes offered, to give those teachers jobs).

    I completely agree that we should figure out what the best possible situation should be. We also have to figure out a path to get there.

    • 10. Alan Kay  |  October 20, 2009 at 10:10 am

      Hi Mark (G)

      I don’t think we have a problem of best being the enemy of the good. We have neither “good” nor “best”. Right now we have “bad” vs nothing. I’m proposing “good”, not “best”.

      In other words, if everyone believes in flat earth and epicyclic geocentric orbits, and these are already established, this is not a good enough reason to keep supporting them in any way. IN many respects we can date real science to the martrydom of Giordano Bruno in 1600 for refusing to give in to the popular and power holder’s view of the universe (this is part of what real science is actually about!).

      Otherwise we just keep on making another of the many really bad defacto standards that hold everything back in our field.

      To be sure, it is human nature for a very high percentage (more than 90%) of the population to *not* judge ideas and tools on their merits, but rather on how the community around them thinks. In education, this community is a cargo cult for most subjects, so it is really entrenched in the bad.

      So I think what has to be done is to make something *good* (the more than 90% can’t imagine very well, so examples are better than arguments), and to cloak this “new good” in whatever rhetoric they have already agreed on (I believe this can be done without lying).

      In the 60s, the >90% believed in batch mainframes, and a few in time-sharing with star networks, and hardly anyone in the ideas of personal computing and “no-centers” distributed packet switching networks. We were told we were (a) crazy, and (b) risking our “careers” pursuing this idea.

      However, they didn’t understand that none of us were interested in careers. And, Butler Lampson has pointed out (e.g. in his Draper Prize acceptance) that “nobody was working in this area, we had the whole field to ourselves”. This was wonderful because there was no race. We just had to get the many parts of this system above real thresholds.

      It only took a few dozens o researchers to invent the future (plus great funders), so this was not all that difficult, once the few dozens started thinking in terms of the new outlook.

      We can learn a lot from how the takeup played out.
      — much pondering in the 60s
      — UI ideas in 71
      — Smalltalk in 72
      — Alto in 73
      — Ethernet and servers (including the laser printer) in 74
      — Internet in the 70s
      — etc.

      — Mac in 1984 and was less than what PARC did.
      — HyperCard in 1987, and was good
      — PARC level of computing power in 1989

      So this took a long time, and quite a bit is not understood to this day. Plus there were huge slips and falls backwards (e.g. the not great design of the web and the very bad web browser approach) not to mention the return of operating systems, which we thought we had got rid of.

      In computer education, what ARPA-PARC achieved in the 60s and 70s was completely ignored. And many very bad conceptions of computing from the early 60s won out when most of the colleges decided to do a “computer science” department to catch the wave of enthusiasm.

      My main argument here is that the current outlook is so poor that there is not a great incremental path from it without some “wolf in sheep’s clothing” processes.

      For example, nothing could be crazier and more obscure and less worthwhile than most of the curriculum in HS AP (apologies in advance to stakeholders). So it would certainly be easy enough to put forth something that is both better and simpler that is merely “good”.

      This would be hard to get adopted. OTOH, incremental changes to the current AP will still (I believe) remain disastrously below the needed thresholds, so I don’t see that this is worth the effort.

      It’s probably better to keep on trying to make *good* curriculum that is above threshold (and, yes, don’t get sidetracked by “best”).



      • 11. Mark Guzdial  |  October 21, 2009 at 8:15 pm

        I see much “good” in the current AP CS, Alan. Certainly, it can be better. But in terms of infrastructure (that we don’t want to lose) and empirical data, the AP CS is “good.”

        One place where the AP CS is “good” is in terms of labor. There is a community in place that cares about teaching CS well and wants to get better. There are good teachers who care about teaching CS. There are hundreds of “readers” who grade the AP CS exam. Any AP process needs this community. Our goal should be to grow this community, not dismiss their efforts as “bad or nothing” and lose the community.

        Another place where the AP CS is “good” is in terms of outcomes. Yes, we can complain about how bad Java is and about how tedious the AP CS curriculum is. The reality is that in the tests that we’ve done in my research group, in our efforts to develop effective language-independent measures of CS1 learning, we have shown that students who do well in AP CS are outstanding students, far above any other category of CS1 learners that we test. The AP CS students are learning a lot about computer science that is carrying over into their next classes. I’m sure that everyone can identify individual cases where the AP CS did not work, but on average, students who succeed at AP CS learn something about CS that leads to success in later CS classes as well as on the instruments we’ve been creating.

        The positive outcomes really shouldn’t surprise us. AP CS is not that much different (e.g., certainly not much worse) than what all of us had in our introductory courses — it’s designed to be as like college CS1’s as possible. All of us in this discussion have become reasonable computer scientists, or we wouldn’t be engaged in this discussion. We do not know enough yet about how CS learning occurs, so we do not have the theory or models to be able to say that AP CS simply fails, especially when the empirical data suggests that it succeeds.

        I believe that we can do much better in computing education, including AP CS. That belief is what drives my research and that of my students. However, I am not willing to believe that what we currently have is “crazier and more obscure and less worthwhile” when I have evidence that it works pretty well. The model that you describe sounds very promising, Alan. Let’s build it and try it, and we’ll see if we get even better results.

    • 12. Mark Miller  |  October 21, 2009 at 8:43 am

      The two “science” courses you mention probably use scientific research to back up what they teach. They’re more like “application of science” courses. I suspect politics played some role as well in their “scientific” designation. I don’t know, because you did not provide course descriptions, but based on the names I suspect they do not enhance “students’ understanding of science”. They sound like they could be helpful in updating students on current scientific research, with the idea that students will be more informed.

      What I tried to get across in an earlier comment is that at least in the high school science I had (and in science classes in earlier grades), in addition to practicing the process of experimentation, observation, and analysis (including measuring error in the results, and thinking about what may have caused it), they taught us to question what we saw, in some ways, and to be a bit more skeptical about what we see. We were also taught some basic ideas that defined the different fields of research.

      If you were to ask people familiar with the two courses you mentioned about why they were “science” classes, my guess is someone could point to a scientific basis for those subjects. Unfortunately I don’t think that advocates for AP CS could even do that.

      You wrote a few blog posts a while back about how professors in the sciences were beginning to incorporate programming into their curricula. You were also wondering how programming could be incorporated into AP science tests (I think). I remember telling you that if this were to be done well, the tests would done on computer, rather than on paper, and the idea of programming/modeling would be incorporated into it. It turns out the right way to do that would be for the test taker to make observations of a phenomenon in the real world (or perhaps video of it), and then for the test taker to attempt to program a model that replicates what they’ve observed. One could even be asked questions about what they can see in the process they’ve modeled, and how that helps them understand what they’ve observed. For example, once acceleration of a moving body has been modeled, one can see from the code that acceleration is “The rate of change of the rate of change.” So I think a strong argument can be made that programming as modeling is helpful in the analysis of observations, and can be helpful in the formulation of new scientific hypotheses. A good modeling language is needed for this, however.

      I feel I must say that I don’t see CS/AP CS, as it’s currently taught, helping everyone along in this goal. You must see this, since you’ve written about the failure rates of students who enter CS.

      I recognize what you’re saying about goals of producing X number of new CS teachers, but from where I sit the goal is to help the students in their goals. I see a possibility where programming can do that, with a caveat, but I don’t see CS as it is being that helpful to what I’ve outlined above. If AP CS could be taught with more of a theoretical basis (as opposed to an engineering basis), and be taught in, say, something like Python, then I would have a different opinion of it.

  • 13. Jim Huggins  |  October 20, 2009 at 1:13 pm

    Alan … out of curiosity, would your criticism of HS AP above apply equally to introductory college-level CS coursework? Or do you see a difference there?

    • 14. Alan Kay  |  October 20, 2009 at 6:22 pm

      Hi Jim

      I don’t know enough about typical intro courses in college, there is likely a very wide spread of offerings. HS AP is an easier target because there is an official curriculum and materials.

      Mark G. would have much more experience and knowledge about college than I do.

      I do think that the from scratch experience in college should also be a two year one and have the same content, for the same reasons as for HS.



  • 15. linda hahner  |  October 20, 2009 at 2:18 pm


    This is very interesting and I agree. If we were to replicate PARC areas expertise, in the development of a national, online, computer science curriculum, it would be used by teachers and students.

    The very act of using this high-quality material might be like the act of using a personal computer. It could be transformational. At the very least, it would lead to *good* results which is much better than we have right now.

    Many believe that philosophy is beyond the reach of the common man. Here is an example of what is being done in England: http://news.bbc.co.uk/2/hi/uk_news/education/8304409.stm.

    Computer Science needs this sort of attention to critical thinking skills. We need teams of experts–small and with precise skills– and we can teach every child and invent wonderful things while we are doing it.

    PARC is not dead it simply became known as the Google Model.

    Best wishes,


    • 16. Alan Kay  |  October 20, 2009 at 6:31 pm

      Hi Linda,

      We are now more than 35 years removed from when the central inventions at PARC were done. From the perspective of 2009, I think that the ARPA-PARC process still stands up.

      From that standpoint of the level of technologies, ARPA-PARC fits somewhere in between the typical levels of today, and what we really need. That is, I think the typical stuff today is really bad both in approach and level, but that the high points of 35 years ago aren’t enough to serve the needs of today.

      So we don’t want a “back to the future” but a modern version of that initiative (for both education and for future technologies) that has better scaling, incorporates a few good things that have been invented since then, etc.

      We want the “Wayne Gretsky Theory of Hockey” — when asked about his success he said “Others go to where the puck is, I go where it is going to be”.

      And by the way, while the Google inventions at Stanford had some similarities to PARC, the way they do technology R&D in the company is not remotely similar.



  • 17. david klappholz  |  October 20, 2009 at 8:00 pm


    Two questions:

    1. Can you please characterize the difference you see between the PARC R&D culture and that of google. (Additionally, if at all possible, can you point us to articles or books that discuss/analyze the PARC culture?)

    2. I’m hardly a fan of the AP CS exam, but your discussion of what we should be doing in high school, if anything, is a bit too abstract for me to follow. Can you be a bit more specific? To wit, can you describe something that you’d like to see in a high school computing course?

    • 18. Alan Kay  |  October 20, 2009 at 8:29 pm

      Let me answer your first question indirectly

      1. The impact of ARPA-PARC was to qualitatively change most of computing for most everybody — and it has been estimated that the GWP from PARC alone is in excess of $27 Trillion dollars. Contrary to fostered rumors, Xerox made about a factor of 200 on its total investment in PARC (that’s a 20,000% ROI).

      So I would ask, why wouldn’t everyone in computing and most people in business have studied extensively how all this was done, and just know it off the top of their heads.

      The lack of general knowledge about the history of computing, and worse., the lack of curiosity, is why I claim computing is not a real field — none of this would be tolerated in physic or biology. How many people have even taken the trouble to type “Engelbart” into Google and get up to speed on what this great man thought and did?

      The best consolidated history of ARPA-PARC is “The Dream Machine” by Mitchell Waldrop. But computing also has an organization called the ACM, and they publish histories (for example of “Workstations”, and of “Programming Languages”. The main sparkplugs at PARC and many at ARPA have all written reasonably extensive histories, which are there for anyone curious enough to check.

      As a reaction to the Draper Prize, I wrote a short appreciation of the ARPA-PARC culture, which has an extensive bibliography. Here is a URL for it:

      Click to access m2004001_power.pdf

      Please take a look at some of this stuff, and ask further if the very large differences between PARC and Google are not apparent. (This is not to criticize Google, they have their reasons for doing things the way they do — everything about their goals and methods are different because of this.)



  • 19. david klappholz  |  October 20, 2009 at 8:12 pm

    PS Alan, I posted my comments before I read the entire thread. You have, in fact, made some concrete suggestions.

    While I like them, my guess is that they’re so far from the orientation of current HS and university CS faculty that the political problems associated with getting them adopted would be overwhelming — except at a few truly innovate schools, where, I certainly agree, they should be taught.


    • 20. Alan Kay  |  October 20, 2009 at 8:42 pm

      This is why I have advocated widely (and to NSF) that we do what the biologists do, which is to start new departments when things get stodgy. For example, there is one CS department at UCLA, and literally 25 departments of biology (not counting the medical divisions). Thesehealthy biological schisms are supported by both NIH and NSF.

      I quite agree with you about the entrenchment in computing, especially in academia. One way to get things moving again would be to set up different departments — for example, a department of “Systems Science” would bring a much more modern orientation to “interesting things” than our current bogged down in algorithms and data types quicksand.

      However, this would not help HS for quite a while, and this is why I’ve been advocating a real clean out reform of the AP.

      And I think that the first thing to do is to make up a sketch of a whole curriculum, and to implement hefty parts of it to help the imaginations and pessimisms of the gatekeepers.

      It’s quite striking (and very indicative of what is really going on today) that 40 years ago when it was really hard to build computers and design and implement programming languages, all the major universities did. Today, there is an enormous disinclination to plunge in and design and make real tools from scratch for the students (and to get the students to help). Mark G has done a little of this.

      Everything now comes from somewhere else, and most of this is quite old in style and not appropriate, especially for teaching purposes.

      So part of this is “physician heal thyself”.

      But I don’t believe for a second that trying to accommodate to something that is *wrong* should be done at all.

      Best wishes.


  • 21. linda hahner  |  October 20, 2009 at 8:29 pm


    1. I was very taken by Alan’s answer to the PARC v Google R&D efforts. It is very thought provoking. Any additional insight would be very interesting even though I think I actually agree with this assessment.

    2. I have a short answer: Girls. There are not enough women in Computer Science in HS. This is tragic because we won’t see women at University if we don’t see them in HS.

    Girls take to the web like a bee to honey so the more courses online that relate to different styles of learning the better. We can’t change the school system but we can build lessons that teach what we want taught.

    On an aside, Mark draws an amazing group of people to his blog. I see him as someone who walks the walk and talks the talk. He is fearless when it comes to difficult topics. He is also very respectful of women and that is very impressive, indeed. He doesn’t treat thesetopics as something for geeks only.

    So, thanks again to Mark and Alan for your ideas and insights


  • 22. Jeff Graham  |  October 21, 2009 at 6:25 am

    I have always viewed cs as about half engineering (hardware operating systems, architecture, etc) and half math (algorithms, including programming). I can’t see why a cs class couldn’t count as a math class in most high schools. Debugging is more logic than science. Ditto programming in general. Have you explored tha angle at all in Georgia?

    • 23. Mark Guzdial  |  October 21, 2009 at 7:50 pm

      Jeff, in the original post (way back two dozen comments ago!), I point out that we are exploring counting as a math (that’s how it is counted in Texas), but we tried once before two years ago and were shot down.

      • 24. Jeff Graham  |  October 28, 2009 at 2:54 pm

        That’s courious…seems liek a much stronger case could be made to count cs as a math class. Here is a place for computational statistics you mention in a previous blog post. I guess the math stakeholders might be threatened by a cs course getting some play? I know at my university we could propose a cs class to count for the math requirement in the core, but by and large the department is reluctant to go there. I wonder if it is because we are mostly mathematicians or if it is because teaching cs1 is often so discouraging that none of us can imagine inviting more students into it or something similar.

  • 25. Leigh Ann  |  October 21, 2009 at 10:00 am

    Up until this point I have been watching the comments go by, and trying to be a good grad student and get some work done! however, I feel that everyone here is missing a larger issue.


    Everything right now is about the economics of the situation. So, I would like to propose two questions.

    1) How are we going to make putting 10K new CS teachers into schools economically viable? (to the schools and students)

    2) [and I know I’m going to get yelled at for this] Why do we HAVE to be a math or a science?

    ok, yes, I know it helps answer question 1 for the students if CS is a math or science credit for graduation, but seriously – do we believe that the students who are pursuing CS right now are taking it because it counts as a graduation credit instead of calculus? physics? I dont think so. So the argument that APCS as a math or science graduation credit is increasing our enrollment past what it already is … not sure that is valid – someone correct me if I am wrong.

    Why are we trying to distance ourselves from the idea of technical literacy? Alan – you talk about the history of computing and making that part of people’s vocabulary and general knowledge. If we all agree that computer science is so much more than programming – why dont we come up with a literacy curriculum that is so much more than programming?

    And I feel like a broken record – but people already see us as “technology”, why not try to change their definition of technology rather than fighting the category assignment? so many states already have computer applications requirements and many CS teachers already need to be certified as business. If APCS is the course people take as programming 1 at the COLLEGE LEVEL, what should high school CS look like? Definitely not the same! and if AP Computing (the new course) again is supposed to be COLLEGE LEVEL (as defined by the term AP) what is high school CS supposed to look like???

    If we relegate ourselves to be “a math” or “a science” we will never foster the idea that we are a discipline unto ourselves with our own viable problems that span multiple domains.

    • 26. Mark Miller  |  October 21, 2009 at 7:35 pm

      Re: Why are we trying to distance ourselves from the idea of technical literacy?

      I’m not sure who you are addressing this question to, but I don’t see us arguing for getting away from technical literacy at all. The problem that I see with CS is there’s too little technical literacy. Do CS programs today even dare to ask students to study existing operating systems and then challenge them to come up with better ones? What about programming languages? They used to (long before I took CS). Undergrad CS could go a long way towards bringing this back if it would engage students in “recreating the wheel”, just constructing an OS or programming language based on an existing design, but really putting an emphasis on helping the students think about what they are doing as they are constructing each artifact. As they do so they can really get a sense of what these things are, as opposed to getting “magic box” descriptions of them that don’t allow students to “get their hands in the guts” of the thing, and leave them utterly ignorant in the realm of system design. What the current standard curriculum creates is literally a bunch of practitioners who, with few exceptions, think that those who write programming languages, frameworks, and operating systems are gods whose wisdom cannot be questioned, because we literally don’t know where to start.

      Several of your questions have already been answered in the comments here. Alan suggested a book which would answer some of them more fully.

      Based on the comments I’ve heard from Alan on the subject of computing as it relates to math, I think that computing allows for a “mathematics in action”, except it’s a mathematics that works without necessarily having a proof. He’s called it “a new kind of math”. Maybe this is incorrect, but I like to think of Kurt Goedel’s Incompleteness proof in relation to this.

      The reason that a science is needed is from a societal perspective, there needs to be a way to get things done with computers without the needless complexity. Sometimes the complexity is not so needless, but we need to be able to manage that complexity nevertheless. Good engineering is backed by good science. Right now what we have in computing is engineering without science, which leads to engineering that’s fine at small scales, but terrible at large scales. This is more of an “IT” perspective in thinking about it, separate from the issue of programming/modeling being beneficial for scientists. I think, however, that Alan’s suggestion of a “systems science” would be beneficial for scientists.

      The issue is not so much that CS needs to be redefined. The big question is “Why hasn’t CS fractured,” like the other sciences?

    • 27. Erik Engbrecht  |  October 22, 2009 at 9:58 am

      Leigh Ann,
      I think the problem is defining technical literacy. If technical includes, as Mark M. defines it, understanding such arcane things as how operating systems and compilers work, then I am all for it. There’s a strong emphasis on understanding how things work. It’s an engineering perspective.

      But I don’t think that’s the way society defines technical literacy. I think it’s closer to “learn basic Java syntax and a subset of the Java standard library.” That would be programming technical literacy. The language being Java isn’t important, you could substitute C# or VB or anything else. The important thing is that it would be a class in memorization, not a class in understanding. The focus is on learning a particular technology at a superficial level.

      I think CS needs to distance itself from such tendencies. Unfortunately that also distances CS from the IT industry, where expertise usually means knowing specific products rather than understanding fundamentals, and of course producing more IT workers is often one of the goals of computing education.

    • 28. Mark Miller  |  October 22, 2009 at 8:23 pm

      Something I forgot to add is we take the science of computing that once existed for granted. The evidence that we need such a science is all around us. The internet we are using now (not so much the web) was devised through a science of computing. If that science had never existed it would be more difficult for us to be having this discussion. The reason I hedge a bit is FidoNet was a way that was devised for far-flung people to have discussions like this (and e-mail) without the internet. The thing was it could take anywhere from a few days to a week for messages from around the world to get to their recipients. It had a scheme of routing information that was similar to the internet, at a superficial level. It was much slower at it, because it transferred information in batches. This was compatible with the way bulletin board systems (BBSes) operated, in exclusive transactions over phone lines. The web as we know it would’ve been impossible with that system.

      The web interface we use is based on GUI technology, which was also devised using a scientific process. Without that I imagine we’d still be working within the confines of what can be done with text displays, rather than a bitmapped display.

  • 29. Alfred Thompson  |  October 21, 2009 at 10:29 am

    Leigh Ann, One of the problems I see with HS CS now is that it is only taken by the students who are already interested in the subject. While that makes things easier, in some ways, for the teachers it means we miss a lot of chances to introduce the joy and wonder of CS to more students. Not that I think the current AP course does that but that is a second issue. Even in the frameworks of AP Programming (lets face it that’s what the course is) a good teacher can turn some more people on to CS.

    In my own case I took my first CS course specifically because it met a collee gen ed requirement and I thought it would be more interesting than just some random math or science course. I had the choice to pick from Math, Science an/d or CS for a set number of credits. So while I can see why CS might not fit as math specifically or science specifically we need it to at least count as a graduation requirment in more than just “and some number of electives.”

  • 30. David Klappholz  |  October 21, 2009 at 1:35 pm

    Leigh Ann

    I’ve been talking to lots of HS CS teachers over the past two years. Every single one tells me that there will be no increase in HS CS enrollments, whatever the content of the course, unless it counts towards a credit in some established field — or some new, to be established, required field. In many high schools, so I’m told, there will be no additional enrollments unless the course counts for AP credit.

  • 31. David Klappholz  |  October 21, 2009 at 1:46 pm

    Since Alfred brought it up, I might as well fess up: I took an introductory programming course, at the IBM TJ Watson Research Center, which was then on the Columbia University campus, the summer after my sophomore year of HS. We learned to do assembly language and Fortransit programming on an IBM 650, my first PC, whose digital logic was implemented in 20,000 vacuum tubes — pre hard disk, so all we had was 2000 bi-quinary words of rotating drum memory. I took the course because I loved math, especially proving theorems, and thought that computers were an interesting new idea. I got no credit for taking the course, but that was never the point for me.


    PS There have never been more than a few HS kids who had my interests and attitudes, so the only suggestion that I have for attracting more kids, especially middle and HS girls, is based upon a long-term longitudinal developmental/educational psychology study that explains a great deal about career choices, rather than my own personal cogitations about what would turn me on if I were in middle of HS today. (CS probably wouldn’t turn me on as it’s no longer novel.)

  • 32. linda hahner  |  October 21, 2009 at 2:23 pm


    This is actually a great point. I took Computer Science in college. I was getting double degrees in Art and English and it filled some sort of requirement. The computer filled an entire room and the most creative thing you could do (if you were very clever) was make silly images out of the zeros. When my son was in high school he did an internship in our studio. (He doesn’t have the math/science gene). He got his first Apple II in 1984 when he was four years old and we gave him a copy of Macromedia Director when he was 12. He took to mark up languages and was able to read three or four books on scripting languages during his Internship. He eventually became a brilliant Internet designer. His friend (who did inherit the math/science gene) came to our studio at age 13 and picked up 3D Studio Max and was programming in VRML within a few weeks. (He graduated with an MA in CS in under five years.) He is actually more of a mathematician than a programmer. The distinction is important because we could prepare high school teachers to focus on one direction or the other.

    Today, every student has a computerized something and they understand that computerized things are important. The best and highest paying jobs involve computers so there is economic incentive.

    I suspect HS students really want relevant courses that get them from point A to point B. Not everyone will be a math or science genius but every student can program if there is a visual component that is relevant to their lives.

    My entire focus is on PreK students, and on developing the brain circuitry math and science geniuses need, through early second or other language learning and music. This whole HS topic fascinates me for personal reasons. I also think we could create a national curriculum that excites the math/science and the art/languages types. This is how we will win the race to the top.


  • 33. Garth  |  October 21, 2009 at 3:32 pm

    It is time to quit trying to make computer “science” fit in the scheme of traditional “science”. Traditional science teachers are never going to let it happen. My school now has a technology requirement for graduation. Being a private school we can march in a different direction without the govenment getting too involved. The CS vs science turf war will never be won so do not fight it. Make computer tech its own field of study, promote the requirement for graduation by pointing out the need for CS/CT just to be able to do the simplest jobs in modern society. Administrators will complain there is not enough room in the required curriculum for a new field. Suggest that one of the old topics be dropped; biology or chemistry or physics. A kid can survive college without one of those but they cannot survive with out CS/CT. The computer now drives college level science courses. The argument used to be made that the kids can learn how to use a computer through the regular content courses. That is no longer true. Now the kids are learning the content by using the computer. Place the learning priority in the 21 century, computers are King.

    • 34. Mark Guzdial  |  October 21, 2009 at 7:47 pm

      Traditional science teachers make the decisions, Garth (and Leigh Ann). Computer scientists are often viewed as technologists, as Microsoft Office/Windows Mechanics. We don’t yet have a voice at the table. So here’s the question: Do we wait until we are given a voice and our own CS seat at the table, or do we come in as a science or math first and then make our argument for our own seat? It’s a political strategy question more than a philosophical one. Philosophically, computing is important and is different than Math or Science. Politically, Math or Science are blessed and we’re not.

  • 35. Alan Kay  |  October 21, 2009 at 8:51 pm

    Hi Mark, (re your current comment 11)

    I would certainly agree that being harsh is not the best way to get people to agree to an argument.

    Still, I’m only arguing about content and lack of it in the current AP curriculum. I can well believe that kids who do well in it will do well in the current college approach to computing (which as I pointed out I don’t know well enough to criticize generally, but much of what I have seen is rather like HS AP — and I don’t like this approach in college either).

    So: I don’t think HS AP is good, and I don’t think the general academic approach to computing (as far as I understand it) is good either.

    However, I don’t know how to prove this, so I have to leave it as an opinion that is derived from my perception that how computing is generally conceived today is limited and weak compared to what it could be (and compared to what it has been).

    There is certainly no problem with lack of raw ability, and of certain skills. I’m convinced there are numerically more high ability people around than there were 40 years ago. To me the problem is context, and the context is so weak on one hand and so compelling on the other that it can’t see what’s wrong with itself. People see it as “normal” and something that must be “coped with” rather than a “construct gone weak” and something that should be bypassed and leap frogged.

    Best wishes,


  • 36. Steve Tate  |  October 22, 2009 at 8:49 am

    Interesting conversation. While I’m happy to spend hours on general philosophical arguments about how CS should be taught or framed, these are all comments on a posting with a very specific and immediate problem: How to make the case to the folks in Georgia that CS should count for HS science credit. It’s probably important to make an argument in order to keep computer science visible, but you’re going to lose the argument. The problem is essentially that “science” is an overloaded term – to some it means a systematic study of fundamental concepts (usually within the hypothesis/experiment/analysis framework), but to others it simply means the study of the natural world. Having talked to plenty of biology/chemistry/physicists regarding the place for CS, I am convinced that they will not ever see something as science if it doesn’t study the physical world, and those are the people who make the decisions. Modelling isn’t good enough and neither is providing a tools (mental or technological) that help in studying science – it still isn’t science to them. They will always view CS as a help to science (much like math is), but not science itself.

    So what about math? Back to the practical side of the current issue, it seems like that battle was fought in Georgia and lost. I’m fighting this battle at the university level, and honestly it’s pretty ugly. We have a “Computational Problem Solving” course that we designed to explore mathematics concepts and problem solving through programming and algorithmic exercises. The Math department hates this and does not accept it as “math” and doesn’t want it to satisfy math requirements in our general education curriculum. However, similar problem-solving study has a long history in mathematics (going back to Polya’s “How to Solve It”) and seems to me to get at the heart of computer science in a way that’s useful to more than just future computer science majors (but then again, my outlook is colored by my background in math and theoretical computer science, and I never have been much of a technology person). The real problem with taking this outlook is that students don’t have any exposure to programmatic thinking before this course so we’re starting from scratch – can you imagine how you’d struggle to teach a HS-level math course if you had to first start by teaching arithmetic? Our gen-ed students are getting frustrated with the technology aspects (even though we use Python because of the low “overhead” in that regard) and are having trouble seeing the core concepts we want them to get. This is obviously a problem we can’t solve immediately, but is probably worth some additional thought – some things like the exposure to robotics and logo programming that my son (4th grade) is seeing now could help down the road, but that’s not widespread and it’s also a long pipe to fill up before it reaches higher levels in a beneficial way.

    • 37. Mark Miller  |  October 24, 2009 at 7:11 pm

      I see your point about those in science education seeing it as only being about what can be observed in nature. I can admire the fact that this is grounded in some sense of reality. However, what about Mark’s point that there are classes which count as science credit now in subjects such as “Food and Nutrition through the Lifespan” and “Appropriate and Alternative Energy Technologies”? I doubt that these have anything to do with students observing nature. They sound more like classes where information derived from scientific research is conveyed. And what about the energy technology course? How is that related to observing nature? It sounds more like an engineering course, or perhaps an environmental science course talking about the impacts of technology on ecosystems. It seems to me that some amount of politics was involved in getting these subjects to count as science credits.

      Re. your use of computing for a math course, Alan Kay has talked about computing being a “new kind of math”, which is more compatible with what you talk about. Research mathematicians do go through what can be described as a “scientific” process of experimenting with ideas, and by working through them, seeing how they work out (or don’t).

      However, since there is clearly an effort at engineering going on with computing, both in hardware and software, there is a need for a science behind it. The reason being that unlike classical mathematics, not everything can resolve down to a proof, when it comes to computing. In fact as Alan has pointed out elsewhere, this is not always desirable, because classical mathematics has restrictions on what it can be which “outlaw” some classes of solutions that are effective for solving problems. So the science needs to be something akin to the science that supports physical architecture. Not in the sense of physics (though this applies to hardware design), but rather a science of design whose goal is generality–taking what is now specialized and finding where it can fit in a new architecture that has broad applicability.

      I acknowledge what you’re saying, that at this point this concept has no bearing on the issue of CS being considered a science as far as the educational system is concerned, but the premise provides an interesting jumping off point for this discussion.

      Interestingly, both mathematics and science also have a (potential) driving principle of finding ideas/models that have broad applicability within a domain, and sometimes across domain boundaries.

      The test (in my mind) of whether a computing architecture works well or not is how effectively it can be applied to a broad range of problems, how effectively and reliably it facilitates the relationships between entities and coordination of activities, and how much effort is required by those who understand it to build artifacts using it. This includes taking human factors into account, such as finding needed functionality, the need to experiment with one’s creation, and to deploy what’s been created. Some people will be confused by this last comment. “Aren’t you talking about an IDE here?” In a way, yes, but I’m taking the term “architecture” beyond just a new container class. It fundamentally affects the way in which programs are written, and how functionality is organized. So this includes the language, the interpreter/compiler, the runtime environment/operating system, and to a certain extent how information is transmitted/received, and persisted. Taken at its most powerful meaning, creating a new architecture is about building a new kind of computer system, even if it only exists in software (in which case we’re talking about a VM).

      This is the science I have been alluding to in my earlier comments. Some might say that what I’ve described sounds more like engineering. Engineering in my mind is an applied science, taking things that have been found to work and applying them (taking prudent and effective design into account) to problems that we want solved. What I describe is a research activity.

      • 38. Steve Tate  |  October 27, 2009 at 10:05 am

        It seems like what you’re saying is that computer science is very broad – there’s science (at least with the appropriate definition of science) and there’s math and there’s design and there’s engineering and there’s… Great – I agree. But how in the world do you sell that to a K-12 education board? For better or worse (well… maybe just “for worse”), they want to label things – pigeon hole them into traditional areas.

        Maybe the question to ask is this: Is it necessary that K-12 students get exposed to the entire breadth of CS? Maybe there are pieces that can be extracted, that fit into traditional areas, and that students benefit from. My own preference, although it sounds like many people here wouldn’t agree, would be to back off the technology aspects and look at the problem solving aspects. I contend that CS provides the deepest insights into problem solving of any domain ever invented. A small portion of students will benefit from the technology and design aspects of CS (and most of those will end up being CS majors or engineers of some flavor), but doesn’t everyone benefit from better logical thinking and problem solving skills? I hesitate to use the phrase “computational thinking” because it seems to be a bit of an over-used buzzword, but that really is what I’m getting at.

      • 39. Mark Miller  |  October 29, 2009 at 7:45 pm


        how in the world do you sell that to a K-12 education board?

        That gets into an area where I have no expertise.

        What I was describing was an aspirational goal, however some aspects of what I talked about have successfully been incorporated into at least the high school level in a few isolated places. I know of a software developer who was taught using EdScheme in high school. They may have also used “The Little Schemer” book. I don’t remember. This teaches some existing design, and gets students to do some design themselves, and to think about it.

        I’d like to believe that CS in its most powerful form has broad applicability. I don’t have the large view of how this could fit into schools as they exist. Maybe taking a multi-disciplinary approach would help it along.

        One example I thought of was maybe a little linguistics could be brought into English. When I was in primary school, in the lower grades, we used to diagram sentences. When I took linguistics in college we got into the subject of parse trees, just as an abstract concept. We did no programming, though the subject of computer language parsers was entertained a little. We also had the opportunity to do a research paper on any language topic. I chose speech recognition, which was a valid topic in the overall object of the class.

        Linguistics is broadly defined as “the study of languages”, but at its heart it’s an epistemological subject. It involves analysis, and computing concepts are a natural there. Problem solving is an obvious avenue of entry (to people like us), but this is another one.

        Perhaps this quote from Doron Swade of the London Science Museum would help broaden the curricular picture (from the PBS mini-series “The Machine That Changed The World” (1992)):

        “[Computers offer] a level of abstraction that makes them very much like minds, or rather makes them mind-like. And that is to say computers manipulate not reality, but representations of reality. And it seems that that has a close affinity with the way minds and consciousness work. The mind manipulates processes, images, ideas, notions. Exactly how it does that is of course not yet known. But there seems to be a strong kindred relationship between the manner in which computers process information and the analogy that that has with the way minds, and thinking, and consciousness seem to work. So they have a very special place, because they’re the closest we have to a mind-like machine that we have yet had.”

        BTW, I like “The Machine That Changed The World” a lot, though it could’ve been done better. Having said that, I think it’s the best history on the subject that’s been made for TV. The reason I recommend it is it introduces some powerful ideas about what computing represents, from a historical perspective, though a good portion of it is the brick-a-brack of how the computer industry developed. Some of it is old hat to modern viewers, since it was made 17 years ago, when the internet was just being “discovered” by most people, but it still contains ideas that CS as a discipline has yet to embrace. It’s out of print now, but Andy Baio and some others managed to digitize it and put it online. Take it as inspiration, if you like.

    • 40. Jeff Graham  |  October 28, 2009 at 3:05 pm

      Have you seen the book Digital Dice by Paul Nahin? Nice book, not without its flaws, but it is up that problem solvng alley. I guess a lot of math departments are afraid of losing faculty lines while at the same time complaining about teaching low level math classes to students who are preceived to be low ability/low interest.

      I am mullling over introducing a cs take on the math requirement at my university. The only problem is that if I propose a course and it gets accepted, then I get to teach it…maybe exclusively. A sobering prospect.

      • 41. Steve Tate  |  October 28, 2009 at 3:55 pm

        I had not seen that book – thanks for the pointer!

        This is exactly what we have done: introduced a course to satisfy the math requirement that is a computational take on mathematical problem solving. I was a little overly-optimistic in my original course design, and we are struggling a little with it now (we are currently in the middle of the first semester offering this course). I have looked and haven’t been able to find anyone else really doing this. Maybe if there is a group of people that are interested in developing such a course (or materials or a CCLI proposal or…), we could collaborate and share some experiences. Click on my name to get to my web page, and send me an email if you’re interested.

  • 42. Leigh Ann  |  October 22, 2009 at 11:31 am

    I’m not sure my point came across clear enough.

    @everyone who cited themselves as having taken cs because it satisfied some requirement.

    1) are we going to require CS for all students? Or is it going to satisfy a requirement that can also be satisfied by AP Calculus or AP Physics? and in that case do we really think that we are going to draw many students away from either of those?

    2) if we are going to require CS for all students, and we make it a math or a science – how is that going to work? Schools are already overburdened. People have trouble with our most prevalent, well defined curriculum, if we become a Math or Science will we also be subject to the NCLB assessments?

    3) Training 10K new teachers is great, and I agree that no matter what model we use, we need to train teachers. But if they really are NEW teachers, how are the schools going to afford to hire them? Esp. if they are computer science teachers who may or may not be dual certified in a math or science?

    4) Every time we talk about computing literacy it seems I get pulled into a conversation about how college programs are changing or failing. Regardless of what people do in the junior-level OS class, what is literacy for a HS student? who has not yet decided to be a computer scientist?

    I have a strong respect for what Alan and others are doing, working with younger age children. Can we take some lessons from them? Many states are constantly rewriting their technology standards. These are the core competencies that students must obtain to be considered at “grade level”. Why not work with these groups to include some basic computer science in what is largely a skills-based set of standards? Why not work to retrain the thousands of computer applications teachers and provide them with curriculum materials that not only teaches the skills basics, but includes some of the larger/broader issues of computer science as well? Rather than offer one course at the high school level that will compete with others, why not encourage technology and also computer science to permeate their education? it may take a while to do, and especially to get general education teachers to understand how to use the skills that students are acquiring – but that will come in time too.

    Having spent a good amount of time the past year reading state policy maker’s preambles to state technology standards, they are giving lip service to the importance of technology. “A new basic” is what North Carolina calls it. @Mark – if we want a seat at THE table, why are we arguing for a seat at the Math or Science table? Why not the larger all subjects table? Computer Applications has mostly been developed by educational technologists or specialist in the schools or by the ITSE community. And many of their standards align with ours. There is a new technology NEAP coming out – do you know computer scientists were consulted for writing those standards? Thats going to drive where K12 goes next. We need to work together on those projects already in the works.


    • 43. Erik Engbrecht  |  October 22, 2009 at 12:11 pm

      Leigh Ann,
      Regarding your point #4… I think the challenge here is that if students learn a poor perspective on technology early they will likely carry it with them for the rest of their lives.

      What’s ironic is that, at least in my experience, people who don’t formally learn computing but rather pick it as a means of doing their job more effectively, tend to have a much better perspective on it. They see computers as general purpose problem solving tools. Sure, they write code in VBA or Matlab or whatever that makes me want to gouge my eyes out. But so do most professional software developers, myself included on occasion.

      Professional technologists tend to see computers as either a problem (it’s not working, I need to fix it) or a solution (the customer wants an app that does x, y, and z and I need to provide it), and they see the capabilities in terms of pre-existing technologies provided by some far-off wizard. They don’t see computers as general purpose tools that they can mold to their needs, even though they may be far better equipped to do such molding than their colleagues in other professions.

      HS CS education needs to plant the seeds for growing a good perspective on computing, not plow the ground for the broken one that is so common.

    • 44. Jeff Graham  |  October 31, 2009 at 10:19 am

      State departments of education seem to handle the NCLB assessments for the most part. I wouldn’t let that dissuade me. I believe that there are many people who are not eligible to take AP Calc nor AP Physics who might opt to take a cs oriented course that fulfilled a math elective towards graduation.

  • 45. Leigh Ann  |  October 22, 2009 at 11:36 am

    Here’s some of the recent pushback about even a draft release of the NAEP (spelled wrong before sorry) standards.


  • 46. David Klappholz  |  October 22, 2009 at 11:50 am

    I don’t know about “technical literacy,” but the term “computer literacy” means, to HS teachers, the ability to use MS Office applications + google + … The term is disliked by some, who prefer “computer fluency,” which means computer literacy + the ability to learn, and adapt to, new, similar, technologies as they arise.

  • 47. linda hahner  |  October 22, 2009 at 12:12 pm

    Leigh Ann,

    Thank you. This seems very reasonable.

    When this discussion began, I tweeted about it on Twitter and then I put forth this question on Aardvark: Should Computer Science be considered a life skill requirement in High School? Immediately, I had 153 computer people available to answer my question.

    Someone in England reported that the UK is leaning toward teaching Science and Math in ways that are more related to life experience. This person’s teen age daughter said that she thought girls would love CS if we taught it in relation to things girls are interested in like fashion.

    I hope the more learned and wise on this list are beginning to see a pattern. Even as we try to identify what CS instruction is or should be, computer and information technologies are passing us all by at the speed of light.

    Information is technology.

    When I want to hire a programmer I put an advertisement on Craigs List and have more than 300 respondents. How many of these people would consider teaching if they had cool and interesting online curricula that really turned their students on? We need to require things because people don’t want to take them. If students are pumped you can’t keep them away.

    I believe Computer Science is a life skill. I had to take Home Economics in high school and I hated it. I would have been happy in wood shop or building paintings online but sewing dresses was really awful for me. If I could have taken a course on modeling and then programming an environment for my digital sculptures to live in I would have slept in the classroom.

    So, before we look at which programming languages to require or if students should be building operating systems, we need to look at the ways kids use technology. (Singing to the choir?!)

    I agree with Alan that CS is not a one size fits all. CS is a living art and we need to build flexibility and creativity into every program and programmer.

    Best wishes,


  • 48. david klappholz  |  October 22, 2009 at 9:07 pm


    You write “The web interface we use is based on GUI technology, which was also devised using a scientific process. Without that I imagine we’d still be working within the confines of what can be done with text displays, rather than a bitmapped display.”

    In what sense is the process a scientific process, rather than an engineering process? In this case it may even be an artistic process rather than a strictly engineering process…


    • 49. Mark Miller  |  October 23, 2009 at 4:45 pm


      I refer you to Alan Kay’s comment #18 in this discussion, and comment #1 (from him) in one of Mark G’s prior blog posts called Computer science is not engineering (and it is, too). Re. Alan’s comment #1 in that post, I’ll single out this quote: “[The modern understanding of science is] understanding of phenomena via making models that help to look further into the phenomena to make better models”. I’m sure that engineering played a part in the development of the technology. The point was the work process that drove the engineering was more in the scientific mindset than is typical of software or hardware engineering in most other settings. Another discipline that played an important role was psychology.

      I don’t know if you meant to imply it, but to me science and beauty are not mutually exclusive. The inspiration for the GUI goes deep, from the earlier work of Ivan Sutherland on Sketchpad, to Douglas Engelbart’s NLS (who used a scientific process to create his work), to Piaget’s and Bruner’s research on how children learn. I’ll assume for the sake of argument that Sutherland used a scientific process as well. I suspect if we were to look deep enough into Sketchpad and NLS we’d find some art in it.

      To provide a contrast from the world we exist in today, I hear often from lead software engineers that other SE’s regard OOP as a “religion” or Design Patterns (by the Gang of Four) as a “religion”. This is the term of art used for people who have learned some technological catechisms that they refuse to deviate from. It’s a red flag that these people are not thinking like scientists. They choose to believe in something as if it’s “holy writ”, rather than think that they can study it and improve upon it. Not to say that this thought pattern is intrinsically bad for human existence (I’m not prepared to judge that), but it is bad for the field of computing, and as things are it’s endemic.

      I think Linda’s idea about somehow relating CS to fashion is interesting. When I first read that what entered my head was, “Oh no! Fashion rules this field already!” I was thinking of shallow, brand-conscious fashions, but then I thought better of it, that she was referring to an aesthetic sense of the word–a sense of design–which would be an improvement for the field. From what I’ve come to understand aesthetics is not something that’s been generally studied, except of course in the art/design world. I really do wish elegance was more appreciated in our field. I think it’s appreciated in academia up to a point, but it’s not really appreciated in industry.

  • 50. linda hahner  |  October 23, 2009 at 5:53 pm


    I am glad that the idea of fashion is intriguing to you;-) It came from a very bright teenage girl in the UK. It really made me think, too. Your post hit on so many issues I will need to digress. This was once called “Linda’s World” at an NSF CILT meeting. Two professors actually drew a little circle on the board and put a stick figure with my name on it. This was pretty sexist and I pointed out that the female graduate students may not be getting the correct message but that’s ok. We can still call it that.

    When I met my partner in London in 1989, I was a professional artist and he was getting his MA in some new fangled thing called Interface Design. I helped him write his three volume thesis and it referenced much of the work done at PARC including iconography, graphics, psychology, and cognition. I was a bit like a jet pilot who could fly around in the air but did not know how to land a plane. I had no desire or intention to ever turn on a computer but I suddenly knew a lot about GUI design. Later, one of our friends worked at Google and we used to hang out there during the early days. After all, where else do you go on Christmas day if you want to talk about ideas and inventions and cool things. My friend is a mathematician. He was a rocket scientist in Germany before he started programming stuff in 3D. His card at Google read, Colorful Graphics and Beautiful Code. I also have a friend I heard from yesterday. She is a hard core programmer from the Philippines who builds robots (big ones) that have huge fights. On one occasion, we build a 3d interface that actually launched a missile. I wrote a reference for her when she decided to go to work for Xerox PARC. She worked on wearable computers. (Fashion)

    Yes. Linda’s world is a very nice place to be if you like brilliant people who break the rules and see things in new and exciting ways.

    So, Alan, I am not naive or ill-informed when I talked about PARC or Google. I have a vision of a small group of professionals who design a kick-ass high-school curriculum for Computer Science. One that is so well-designed and compelling that students can see that CS is a life skill. It would beat the hell out of Home Economics or Hog Production and it would reach all children equally.

    We know that the greatest number of African American and Hispanic students are going on line with cell phones. At our LiteracyCenter.Net we had more than 30 million page views last year.We are used in every state in this country. I think our CS curriculum could have even more because we would be targeting the kids who can’t even read and teaching them CS as a life skill. (Only half the kids in the USA read at an appropriate level in third grade so this is a big group.) Do I think we could really do that? Uhhh. Yeah.

    You are correct that we need to look at art and artists and UI people and ethnographic researchers and open up the CS circle.

    The NSF should fund a national CS curriculum. Is anyone listening? Probably not.

    I will leave you with one of my favorite quotes by Clifford Stoll in his book called “High Tech Heretic: Why Computers Don’t Belong in the Classroom and Other Reflections by a Computer Contrarian”

    “All schools need high-speed Internet connections and the appropriate computer hardware to deliver the latest educational applications…equal resources should be directed to the creation of dynamic, 3-D virtual learning environments,” says Linda Hahner, president of Out of the Blue Design, who’s excited that “Given enough tools, children will be able to build and program their own space missions”

    –“Children build their own space missions? I’m impressed when a twelve-year-old carves a balsawood glider”—Stoll

    I read this to a group of Muslim Women in Dubai when I spoke at a conference called Women in Global Leadership. They got a big laugh out of the thought that building a balsawood glider is a 21st century skill.



    • 51. Mark Miller  |  October 24, 2009 at 7:57 pm

      Hi Linda.

      I haven’t read Cliff Stoll’s book you reference. However I saw him give a speech once on C-SPAN in the 1990s, which probably had something to do with the book. His main complaint there was how schools were using computers, and how the art of it (and art in general) was being killed. It seemed to me what he was really railing about was how computers were being brought into schools because they were “the thing” (like as Alan says, a cargo cult). Most teachers didn’t understand computers or what was potentially beautiful about them (in terms of students’ creative thinking).

      I remember this from his speech. He said that he had visited schools, and school officials were setting up new computer labs in them. He asked if they had made an addition to the school for the labs. No. “Well, what used to be in them?”

      “Oh, that used to be the art room,” or, “That used to be the music classroom.” Were these classes moved somewhere else in the school? No. They were completely gone, replaced by machines that were being used as bureaucratic cudgels on the kids by the teachers and those who set the curriculum. I could tell it killed him inside to see it and talk about it. It saddened me as well to hear it.

      Computers are just tools, ultimately, and as with any tool what you get out of it is influenced significantly by how it’s perceived. If it is just perceived as a means for automating what used to be done without them, then what you’ll get out of them will be of some utility, but this approach limits its significance and beauty to the user. I like Alan’s perspective, because he comes from the “mind extension/augmentation” school of computing, which sees that they have the potential to enhance what we can perceive with our minds.

      There’s a place for the kind of computer literacy that teaches some basic user skills, such as how to use a word processor, how to use a spreadsheet, how to look something up, and how to communicate using existing tools. There’s another level of what I’ll call “computing literacy” I’d like us to get to, which involves programming, but I’m gradually realizing this requires literacy in other areas, which our schools are not particularly good at imparting yet. And perhaps the programming technology we have isn’t that good either. So it seems like that has to wait before it catches on. It was tried once in the late 70s/early 80s, but it died out. I know there’s something valuable there, but the forms that were used for programming at the time were pretty clunky. A lot of people found them too hard and gave up.

    • 52. Mark Miller  |  October 24, 2009 at 8:06 pm

      BTW, I meant to respond to this part:

      “I was a bit like a jet pilot who could fly around in the air but did not know how to land a plane. I had no desire or intention to ever turn on a computer but I suddenly knew a lot about GUI design.”

      I feel a bit like this myself now. I’ve been altering my thinking about what CS is by doing research, and I feel like I’m getting a better handle on a better idea of it, but I couldn’t do what I’m talking about right now in relation to this stuff if my life depended on it. I’m taking my first baby steps at changing that though. 🙂

  • 53. David Klappholz  |  October 23, 2009 at 6:27 pm


    I guess we’ll have to agree to disagree. To me “science” means “natural science,” a set of disciplines in which models are built and tested to understand the way natural phenomena, other than human behavior, work.

    Piaget’s work was, indeed, social science, i.e., in its best sense, scientific methods used to study phenomena relating to people. Like much early work in natural sciences such as physics, chemistry, and biology, Piaget’s conclusions have mostly been shown, by more recent educational psychologists, to be wrong.

    Finally, of course Science and beauty can go together.


  • 54. linda hahner  |  October 24, 2009 at 9:40 pm


    I am certain that Mark G never expected to set off so many emotions or comments. It is a great thing really.

    Clifford Stoll did untold damage to the movement of placing computers inchools. He is a bit of a showman–a wild card. I still get email from students who ask me about that quote. I always tell them to write to Clifford Stoll and ask him if his children were using balsa wood to write their papers or to program their robots. I am certain that Clifford Stoll’s children had every educational advantage and opportunity. The children I am concerned about are the ones who most need our help and our creativity.

    I have begun to read a book by a woman I met on Twitter. Her name is Venus E Evans-Winters and her book is called “Teaching Black Girls” I wrote to her an idea about using cooking to teach everything from literacy to computer science. Her immediate response was “Brilliant.We have a chemistry of cooking course and the kids love it.”

    I guess I keep hoping that computer science researchers will make the same kinds of creative leaps. I have learned from this discussion that I can jump from fashion to cooking and think of ways to teach computer science –programming and modeling, etc.–and that I am totally losing people who are more …well…programmed 😉

    I am trained as an artist yet I can use computer programs and do some programming when necessary. I think Alan Kay is hitting on something when he says we need to break out the curriculum but I don’t see that as computer literacy courses for girls or computers for dummies. Using programs like 3D studio max and programming in 3D is actually a great basis for learning how to build models and move them in space. That takes a lot of math, too. I have friends who use 3D to teach physics and astronomy. Dreamweaver is also a great introduction to web programming. I would like to see a course call visual programming. It could be an art course.

    I think of wearable computing when I think of fashion. My mind is really much more in the world of programming and computer science than art when I talk about a national computer science curriculum. I imagine something like wikipedia but not just a bunch of words that everyone and their brother adds to. I imagine projects that teach programming from the ground up built by teams of experts and actually tested with audiences that include those with the greatest needs.

    Quite ffrankly, this effort would be well served by having artists and designers who want to include and educate Black and Hispanic girls.

    We built a site that teachers around the country use with kids who can’t read. What does that mean? How do they get there? What are they doing? Our kids are four year old children and they are using the computer. These children don’t need courses in computer literacy. They can’t read but they can navigate our website and they can use computers better than their parents.

    I may not be a computer scientist but I am passionate and ready to roll up my sleeves if anyone wants to invent new solutions and to work on a national curriculum that finds each child right where she is.

    Best wishes,


    • 55. Mark Miller  |  October 26, 2009 at 2:54 am

      “I have learned from this discussion that I can jump from fashion to cooking and think of ways to teach computer science –programming and modeling, etc.–and that I am totally losing people who are more …well…programmed”

      From what I’ve seen in this discussion, the people in the National Academy of Engineering and the National Research Council, who are trying to bring engineering into K-12 are going to have their work cut out for them. I keep hearing about how schools are filled to the gills with priorities already. And as the NAE and the NRC identified, I can also see there’s a lack of necessary background to support the discipline.

      “I would like to see a course call visual programming. It could be an art course.”

      Have you checked out EToys in Squeak? Young children can literally paint their own objects, set up relationships between them, and make each object respond to each other, using scripts. They can also use some “pre-fabbed” visual objects if they want. The emphasis is on the visual, but students can dig as deep into the guts of the thing (ie. code) as they want. The cool thing is that it’s all “live”. You don’t have to stop anything to program an object, or change a relationship. Everything is dynamic and real time. It’s quite an experience to see in action!

  • 56. linda hahner  |  October 26, 2009 at 6:33 pm

    I have checked out EToys. The interface is not very intuitive. It looks like it was designed by a programmer. Kids can do much better than this if given the correct tools.

    We advocate using standard tools that will prepare children for real jobs in the real world. Using any 2.0 blogging product or CMS will show a child how to use HTML. This can be advanced to Dreamweaver with Action Script, ASP, or PHP. The curriculum just needs to go one step at a time. The kids can be building web-based products by grade 7.

    No matter how large the task it needs to be done. If we wait another ten year we will have lost the race.

    Good article about science education. This is in line with what the British are doing right now.


    “Research shows that children learn best when they regularly revisit topics, moving from basic to sophisticated views. In keeping with this knowledge, education experts advocate curricula in which students deepen their understanding of a topic—and hone their abilities to practice science—across many grades.”

    • 57. Mark Miller  |  October 28, 2009 at 2:23 am

      I like the idea of having children learn science the way scientists understand it, so I’m glad people have looked at that. Have you thought about this approach in relation to computing? From the way you describe it, you’re teaching programming as a job skill (or life skill as you call it). I guess first things first, but computing provides a way of thinking (as science does). My own experience with it is it can provide one a sense of what it means to really put in an effort to solve problems, and do research in the process, digging deeper into issues than just what’s apparent at the surface. I can’t say for sure, but I also think it’s given me the ability to see the implications of changing parts of a system, with results that are not always expected. This mode of thinking has applications to other disciplines, such as ecology, civics, and economics.

      Once I got into programs of a large enough scale I really hankered for a sense of design, because without out it programs turned into a mess.

      So if it can be taught as its own subject, away from the “this is a job skill” mindset, I think that would be beneficial to students as well. IMO it serves as an even greater life skill than the “this is a job skill” mindset provides.

  • 58. linda hahner  |  October 28, 2009 at 10:12 am


    Well written. I guess we need each other.

    Everyone wants children to be artists. I am an artist and I want children to develop neural networks so they can be anything they choose to be. I think we are on the same team;-)


  • 59. Jeff Graham  |  October 31, 2009 at 10:16 am

    I am thinking that maybe Alan is right and the problem is trying to shoe horn AP CS into the hs curriculum. Maybe we should develop curriculua that could fit in as a math elective in the high schools. If you can funnel some people into such a course they might take the AP because they are interested.

  • […] had a discussion recently with Prof. Mark Guzdial, some other CS professors, and high school teachers on his blog, […]


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Trackback this post  |  Subscribe to the comments via RSS Feed

Enter your email address to follow this blog and receive notifications of new posts by email.

Join 10,185 other subscribers


Recent Posts

Blog Stats

  • 2,060,332 hits
October 2009

CS Teaching Tips

%d bloggers like this: