What changes CS Education?

September 18, 2009 at 11:58 am 14 comments

In this blog, we’ve talked about Lijun Ni’s research results, that suggest that changes that teachers make in their classroom is most influenced by their personal excitement for the change.  We’ve also talked about the fact that research results actually influence teachers very little.  What I’ve been wondering about lately is, “What influences the teacher excitement?”  I don’t have any answers, but I’ll lay out some ideas and let the commentators help us tease out importance.

  • Languages.  Computing teachers get excited (even passionate) about languages.  You can tell the story of computing education’s development in terms of the languages that predominate, e.g., Pascal, C++, Java.  The most common question raised over a beer at SIGCSE is probably “What’s the next big language?”   Dijkstra famously believed that the language in the first choice was critical to avoid “mutilating” a student’s thinking about computing.  Why do we believe that?  Why should the first language matter so much?  Here are two hypotheses: (1) Since computation is not obvious in the world around us, students have no idea what computing is when they walk into their first programming language, so whatever model of computation that’s embedded in that first language is the first model that students will meet. (2) As educators, we tend to “teach the language.” Thus, the features of the language become the curriculum of the first course, for better or worse (I tend to believe the latter).  Not sure why we made programming language designers into our curricular designers, but any tour of a Java CS1 textbook (and it’s growing heft) suggests that we have.
  • Authority. Pascal came from ETH and Niklaus Wirth. Structure and Interpretation of Computer Programs came from MIT.  Java came from Sun Microsystems. Would Pascal have had as much influence if it had been developed by somebody at a small liberal arts college?  It could have been developed elsewhere — Pascal is a small language, really.  Would SICP have had as much influence if it had come from somewhere else?  Authority does influence us, much as we like to pretend it doesn’t.  Could we imagine an open source textbook or language becoming the dominant text or tool in introdocutory computing courses?  I doubt it — we attend to the inventor and the institution.
  • Textbooks.  When I look over the list of awardees for the SIGCSE Outstanding Contributions to CS Education, I see lots of mention of textbooks.  But when I think over influences on CS education, I don’t really see textbooks as a major influence of change. It’s necessary for change — Pascal would not have taken off in CS1’s if “Oh Pascal!” wasn’t out there and available.  But Pascal’s influence extends beyond that textbook.  I only know a few C++ textbooks, and none dominate my (scarce) knowledge of C++ using schools, but I do know that C++ is really popular.  Probably the most influential CS textbook I know is SICP.  (Surprising that neither Hal Abelson or Gerald Sussman are on the SIGCSE awardees list.)  Is that the influence of the book, or of the curriculum?  Hard to tease those apart.
  • Tools.  While there have been lots of IDE’s, visualization tools, animation tools, etc., few of them stand out for me as major change agents.  Alice is one, and Karel the Robot is probably another.  What makes a tool successful at creating change?  Why did Alice succeed?  I suggest that it met a need (a tool for a CS0-like course) when such a need arose, and it was supported by the right authority (Randy Pausch at CMU).  It’s hard for a tool to change CS1’s because CS1’s already exist and those needs are being met (by something).  Alice might not have become as popular 10 years earlier when CS was less likely seen as a topic for non-majors or for pre-undergraduate students.

Others? What am I missing?  My first pass analysis suggests that, to make change in CS, invent a language or tool at a well-known institution.  Textbooks or curricula rarely make change, and it’s really hard to get attention when you’re not at a “name” institution.

Entry filed under: Uncategorized. Tags: , .

Engineering as a Context for Education Searching for a new driver for CS Education

14 Comments Add your own

  • 1. Greg Wilson  |  September 18, 2009 at 1:12 pm

    What’s (perceived to be) hot in industry is also a driver. Students in our second-year course now program mobile devices—this was partly reaction against ever-greater bloat in Java, but also driven by the rise of cellphones, iPhones, Blackerries, iPods, and what-not.

    Reply
    • 2. Mark Guzdial  |  September 18, 2009 at 2:54 pm

      That’s a really interesting one, Greg. I think that it’s exactly as you say: perception of industry is a driver. For example, if you ask most SIGCSE attendees, they’ll tell you that they moved away from Pascal because it was not embraced by industry. The question is where that perception came from. Owen Astrachan (who lived through that change in the CS Advanced Placement Exam) told me that he saw no evidence, yet Pascal was abandoned and the AP CS moved to C++. That’s where the departments went, and the AP CS followed. Why did the departments move? Not clear what drove that perception.

      Reply
  • 3. Barbara Boucher Owens  |  September 18, 2009 at 1:37 pm

    The deadline for nominations for SIGCSE Outstanding Educator is October 1. You have a chance to add your picks to the list of awardees! See http://www.sigcse.org/awards for details

    Reply
  • 4. Jose Zagal  |  September 18, 2009 at 2:34 pm

    Portability?

    I think that how easy it is for people to get things running/working on a wide variety of platforms (including OS) has an impact on at least two levels. First, how wide adoption will be (can I get the tool/compiler/interpreter to run on my Mac/PC/etc?) as well as its perception as an authentic tool/environment (oh, it only runs on those “Unix” thingies?)

    More broadly, shouldn’t we also be asking questions about the perceptions of the relationship between the language, tool, and perhaps the textbook? For instance, can students and instructors \ articulate the relationship between, say, Jython, Python, JES, and Guzdial’s book? And, perhaps more interestingly, how do they articulate the relationships between each of those?

    Reply
  • 5. Alfred Thompson  |  September 18, 2009 at 3:37 pm

    Because I had more like 2 bits to add than 2 cents I wrote a post on my own blog at http://blogs.msdn.com/alfredth/archive/2009/09/18/what-does-it-take-to-make-change-in-cs-education.aspx

    Reply
  • 6. In need of a Base Case » Blog Archive » In continuation..  |  September 20, 2009 at 11:32 am

    […] with Mark Guzdial’s blog on What Changes CS Education? to Alfred Thompson’s post on What does it take to make a change in CS education? there has […]

    Reply
  • 7. Leigh Ann  |  September 20, 2009 at 11:33 am

    In line with Alfred.. way too much to take up Mark’s space here – answering post at http://www.virtualcompsci.net/blog/?p=112

    Reply
    • 8. Mark Guzdial  |  September 20, 2009 at 1:53 pm

      Leigh Ann, your post raises some really interesting points! I’m curious what does lead to change in (say) Biology education? Is it new findings? A new textbook? I don’t know what causes change in other fields. In Math, I suspect that it’s sometimes public policy (e.g., Sputnik leading to “New Math”). But I don’t know about the Sciences and don’t now of more recent examples.

      Reply
      • 9. Mark Miller  |  September 21, 2009 at 12:19 am

        To answer your question about “new math” what I can surmise is that a new mathematics is formed by mathematicians creating a new set of axioms, a new set of base concepts and rules of inference. Mathematicians in the past have found that the existing sets of axioms are inadequate for exploring niggling questions. They’ve run into a limit of the existing mathematics. So they try a new basis–a new mathematics–for exploring those questions.

        Likewise, scientists working within an established field of science can run into results that don’t fit the existing scientific theory. So they must explore new foundational theories to try to arrive at more accurate models of what’s happening–a new kind of physics, chemistry, biology, etc. I don’t know that it’s driven by something like Sputnik. Certainly that event put things in motion which caused new fields of science to come into being, but I don’t think events like that are the only impetus, though the science that happens is the science that’s funded. The difference is the sciences allow for this branching to occur as part of their accepted practice, and they have a mechanism for it.

        What’s probably holding CS back is that it’s still so new. It’s been around for about 60 years. Compare that with any of the sciences. We still don’t know what CS is yet, even though apparently you can’t get academics in the field to admit this anymore. As I commented in another post of yours I think most academics within CS have grasped at a definition for it, and this has limited their thinking, especially when coupled with their lack of curiosity. For a science it sure doesn’t seem to be made up of scientists. They hardly ever venture outside their “box” and wonder what’s there. I think you’ve seen why. The moment you step outside the established norm people look at you funny and deride your efforts. It’s not “real” to them.

        Interestingly, mathematicians run into this as well, though they have their supporting institutions. There are mathematicians who work in applied math, and then those who do research in mathematics. Each camp thinks what the other does is not “real”. The same thing may go on between scientists and engineers. For example, atomic physicists are interested in all sorts of “irrelevant” things like “finding the bozon”, whereas engineers are interested in what could be called “applied physics”, where they work with forces, tolerances, and stresses on materials to build practical artifacts that we as a society use, though it has a solid scientific grounding.

        I’ve observed that there seems to be a bifurcation going on between theoretical CS and applied CS (for lack of a better term), or in some cases a total abandonment of theoretical CS in favor of the applied aspect (depending on the university). I think the problem has been that the theoretical/research and applied aspects have been coexisting with each other inside the same field for decades, with the applied aspect preventing the curious from exploring new questions and ideas. The question then becomes what’s going to become of the theoretical/research arm? It seems to be withering, mainly because it hasn’t been allowed to branch out.

        Reply
  • 10. Leigh Ann  |  September 20, 2009 at 10:29 pm

    In science education there is a big movement by the NSF and NSTA in order to provide teachers with research supported materials. Organizations like NCTM help influence state standards, and textbook writers need to align their textbooks with the standards in order to have them adopted in the different markets.

    Teachers, even if they are trained in their particular subjects, rely heavily on the curriculum materials provided with textbooks. While my textbook was being developed I made sure to develop a series of worksheets, program assignments, and exams for each chapter. The success of the A+ APCS curriculum as well as other programs that provide that level of materials shows that these are helpful in CS teacher communities too.

    But I think Math and Biology are in a different place than we are and have never been in our place. They are dealing with a different set of economic issues. The teachers/schedule is already in place. They just need to change what the standards say and the textbooks match in order to change what is taught. We are even deeper in a hole. We need to actually offer the courses. I still believe its a matter of economics just as much as curriculum design.

    Reply
  • 11. Alfred Thompson  |  September 21, 2009 at 1:15 am

    Computer Science is in the midst of an interesting time and I think is going through what amounts to an existential internal debate. If you don’t think so walk into a room of computer scientists and ask them how they define CS in a way that makes it a true science. The debate is likely to go on for hours. Ask them to outline the code components of a first CS course and it gets worse. I was told once that the College Board regularly surveys university faculty and asks them what should be in a first course and what do they teach in their first course. Rarely do the two lists match from the same institution. So we don’t know who we are or what we are as a discipline nearly at the same level as other sciences.

    And software engineering? Is it really engineering? You’ll get a lot of people to fight with you on that one as well. In professional software developer gatherings the topic often turns to is programming an art, a craft, engineering or a science. Generally science and engineering lose early and the debate runs between art and craft. In part this may be because historically the best software developers were self-taught. I myself almost lost out on an interview because I was university trained and the hiring manager did not believe that universities were good places to learn programming. This was 30+ years ago but I hear the same things expressed today albeit less often and less openly.

    The bifurcation going on between theoretical CS and applied CS is in itself an interesting problem. I have heard computer scientists say that as scientists they need to stick to theoretical things to the point of avoiding things with practical applications. That is to say that they are not interested in solving existing problems or industrial problems but looking for other things. Well and good so far as it goes but you don’t see scientists in other areas saying “well yes improving crop yield for rice is an interesting idea but we’ll leave that to industry because it is not theoretical enough.” And yet industry has a whole set of problems that research could probably help with even more than what is presently happening.

    Several years ago I attended a symposium at an Ivy League university with a well respected CS department. The head of an industrial research lab (huge multi-national not Microsoft but which will remain nameless) told the mostly faculty audience that his organization was not at all interested in their research. The output he cared about was researchers for his facility. The fact is that the university in general is more useful for turning out researchers than actually doing the research. I think the word is “teaching.” If universities do not value and reward good teaching and are not creating research output that is as good, as important, as advancing of the field as they think it is what good are they? Note that I am not saying that people are not doing great things – I am in no position to judge. But this leads directly to the next topic.

    Splitting theoretical and applied CS could be dangerous to our field’s health. One result I think is the trend towards what a friend of mine calls “CS and.” Which means joining CS and some other science. Bioinformatics is one popular option for example. Or CS and business which is sort of like Computer Information Systems/Science. It’s neither one of the other but rather uses the problem sets from one domain (say biology) to create a platform for using CS concepts and tools. Personally I think this is great for the other domains but not so much for CS. Universities however see this as a good way to keep their full roster of CS faculty. Economics does keep entering the discussion doesn’t it? But what does it mean for pure CS research? Or for tools that are widely usable across multiple domains?

    Ironically the tools for CS – computers – are getting less expensive while the tools for many others are getting more expensive. Electron microscopes cost more than optical ones. So one would think that in many ways CS could be doing better because of lower overhead. Not so it seems. Perhaps because CS is so misunderstood.

    Reply
  • 12. Eugene Wallingford  |  September 21, 2009 at 1:20 pm

    Mark, I commented briefly on your post , in the context of other recent articles about change at http://tinyurl.com/no357y. I’m intrigued by claims that CS’s relative youth affect how change in teaching intro courses happens. Certainly, youth implies greater volatility, and our more direct connection to professionals who practice our discipline with or without a degree makes us different. I suppose our youth may simply mean that we don’t have a very good sense of how to drive curricular change. The result is something of a free-for-all, and so things that we can use immediately (tools) and pedigrees we trust (big names) end up mattering as a practical way to cut through the noise.

    Reply
  • 13. Garth  |  September 22, 2009 at 4:14 pm

    I also posted this on Alfred’s site. I see a major problem with the present state of CS in high schools as the lack of CS teacher education. I have looked at the Montana colleges and a few of the surrounding States and CS for Teachers is pretty much non-existent. My school has two CS teachers, me being one. I have a minor in the field but have not taken a programming course in almost 20 years. This is not from lack of trying. The local university offers nothing in the field after 3:00 nor in the summer. The other teacher has learned programming here on the job. Everything he does is from the book a day ahead of the students. He is not happy about the situation. Although University of Montana hypes itself as a leader in the field of technology education (whatever that means) there is absolutely no interests in CS as a teaching field. To quote one of the Education department leaders “There simply is not enough interest to justify it”. Our state requires at least a minor in CS to teach programming yet no minor is offered in-state. I asked the Montana Office of Public Instruction where this minor was offered and the reply was “out of state”. My little bit of research indicates to me there is absolutely no interest in CS being taught in the high schools by either the State or the university system. How can CS Education change if the departments, government and higher education, are not interested in training teachers in the field? I cannot imagine Montana is that different from other states. For most high school teachers (or prospective CS teachers) it is not practical to go to an out-of-state university that does offer a CSEd program in the summer. Something has to change that “not enough interest” mentality in order to stimulate State universities to offer programs that are rapidly becoming educational necessities.

    Reply
    • 14. Mark Guzdial  |  September 22, 2009 at 6:49 pm

      Garth, you point out another Catch-22 of computing education in K-12, one also identified by Jane Margolis et al. in Stuck in the Shallow End: K-12 administrators claim that there’s no interest in CS, but if they don’t offer any classes in CS, how could they possibly know? If there is no chance of classes in CS, nobody hopes to study CS or expresses interest in it. So we sit and spin.

      Reply

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 )

Google photo

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

Twitter picture

You are commenting using your Twitter 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 9,026 other followers

Feeds

Recent Posts

Blog Stats

  • 1,986,122 hits
September 2009
M T W T F S S
 123456
78910111213
14151617181920
21222324252627
282930  

CS Teaching Tips


%d bloggers like this: