Letter from Harriet Taylor on NSF CPATH Role for Universities: Supporting training in down economic times

14 Comments Add your own

  • 1. Alan Kay  |  February 5, 2010 at 10:49 am

    Hi Mark,

    The only real nit I have here is the idea that “teach[ing] in post-secondary education — arguably the most important level of education for addressing social inequality”.

    I just don’t see how this can be true given that one of the most important reasons for children not even getting to post secondary education is the poor quality of schooling and teaching in the early grades.

    I certainly won’t argue about the deep need for teachers who understand their subjects. And you would agree that it takes a lot more than content knowledge to come up with a good curriculum and pedagogy.

    (I’ve always wondered whether the cafeteria tray metaphor is actually a good idea — it’s a model of a mechanism, not of an idea (recursion is the idea of making the parts have the same power as the wholes, and this is not at all captured with cafeteria trays)).

    And this gets to the difference between something that helps with a particular domain topic, and deeper models of human learning that apply in many more areas.

    For example, the Bruner notion of multiple ways to learn, understand and know (3 of which are kinesthetic, iconic and symbolic) and his heuristic “if you don’t know something specifically better than try to do your curriculum starting with physical learning, then figurative learning, and then symbolic representations, etc.”

    This is a really good one, and really does work, for all ages. We don’t see it being done much outside of kindergarten by either teachers who know or don’t know the content — this is because most “teachers” — I feel — don’t really know how to teach.



    • 2. Mark Guzdial  |  February 5, 2010 at 2:48 pm

      Hi Alan,
      It’s a fair nit. I was citing David Brooks who was making that kind of argument. I expect that Brooks might argue that higher education has a greater direct economic impact — there’s a measurable path from graduation to middle class, and failure to a lower SES. Basic literacy has a much more profound impact than just a measurable SES.


  • 3. Raymond Lister  |  February 5, 2010 at 11:16 pm

    “So, what would you teach a new teacher about teaching PCK for computing education?”

    Mark, you’ve asked another great question!

    I’ll stick to just talking about PCK for introductory programming, as I don’t know much PCK for other aspects of computing. I think I’d make up a long list of papers from studies of novice programmers, and run a seminar series on those. I could spend a few days writing my own list, but instead I’ll point out a list that has been compiled by other people:

    Pears et al. (2007) A survey of literature on the teaching of introductory programming. In Working Group Reports on ITiCSE on innovation and Technology in Computer Science Education (Dundee, Scotland, December 01 – 01, 2007). J. Carter and J. Amillo, Eds. ITiCSE-WGR ’07. ACM, New York, NY, 204-223. DOI= http://doi.acm.org/10.1145/1345443.1345441

    I have reservations about their list, as I think they miss some important paers, and include some papers that I think are deservedly obscure, but at least their list exists. Its a very good starting point for anyone looking to construct their own list.

    • 4. Raymond Lister  |  February 5, 2010 at 11:21 pm

      There’s one non-introductory programming source I’d recommend
      for PCK on project work …

      Computer Science Project Work: Principles and Pragmatics
      Sally Fincher, Marian Petre and Martyn Clark (Editors)
      Springer; 1 edition (February 23, 2001)
      ISBN-10: 185233357X
      ISBN-13: 978-1852333577
      Amazon price: $US139.00

  • […] What CS teachers know: PCK for CS Ed « Computing Education Blog […]

  • […] 6, 2010 Speaks to the issue of how important education is as a tool for addressing inequality and of having good teachers: A College Board report highlighting the “overwhelming barriers” […]

  • 7. Ben Chun  |  February 7, 2010 at 8:53 pm

    For me, the root of PCK in any content area is in recognizing all the unarticulated, unspoken knowledge that we’ve learned about that field. What are the things that are so simple that we forget to mention them? That’s where we must start. I also claim that there are different answers for each person or each teaching situation. Just as instructional techniques are not divorced from content (this is the PCK thesis), I also think they can’t be taken out of the context of the relationship between teacher and student and world. The metaphors or examples or classroom tricks that work for me may or may not work for you. We can share, but there’s no guarantee. We always have to teach with our eyes open.

    Having disclaimered thus, I will say that I really got turned on to this stuff by Liping Ma’s “Knowing and Teaching Elementary Mathematics”. Totally worth reading. And jumping to CS, I would have preservice teachers construct PCK for themselves by really deeply investigating how students come to understand or misunderstand a variable and its value (and how variable lookups are resolved, meaning how scope works) and how students come to understand or misunderstand function calls (implicit in which, waiting to be unpacked, is the idea of a program counter, a call stack, return values, and again scope).

    I don’t know anything about the CS ed research (and would like to know more), but my guess is that the tendency of many new teachers would be to blow past variables because it’s easy to forget that we have a nuanced and detailed model of what variable declaration and assignment means. Most potential teachers haven’t turned the focus of their thoughts to something so simple and basic for a long time. I bet in a discussion about these concepts, many different potential approaches to instruction would be shared or invented on the spot.

    • 8. Alan Kay  |  February 8, 2010 at 9:43 am

      Hi Ben

      Your perspectives certainly harmonize with my experiences over the years.

      This brings up an interesting question that has been raised a number of times in the past, but is heard less frequently today. It has to do with the contrasts between state based procedural views of computing and the more mathematical relational ways to think about it.

      To take it to extremes, there was nothing easier than learning programming in the early 60s, when one learned it through the actual hardware and assembly code of some machine. It was then very easy to move to simple higher level languages like FORTRAN (and those made from powerful macro assemblers). All these ideas were completely grounded in simple mechanisms.

      The flip side of this is that “nothing was harder” than learning how to do software architecture via this route. The very concreteness and simplicity of the underlying mechanisms produced “metaphors to think with” that were much too simple to scale well.

      So, in those days, one learned to program in a week of instruction and a few months of making applications. And, as with the situation today, what became familiar and fluent exerted a huge immune response against learning very different and more powerful ways to look at programming and design.

      However, a lot of the ease or difficulty of learning has to do with how the ideas are situated in the problem, the need, and the environment.

      One of the things we found in Etoys about 10 years ago is that a natural way to introduce variables (we used putting a hand drawn steering wheel on a hand drawn programmable car) resulted in consistent understanding of what they are and how to use them *from a single trial*. This is quite dramatic compared to the difficulties in math and most programming.

      The success here came from new pedagogy, not from trying to understand what didn’t work in the past (in fact, we were quite surprised at how well our example worked with children — we were not seeking anything so dramatic).

      Similarly, the need for easy multi-threading resulted (again somewhat accidentally) in improved programming and learning as we discovered that many children have a much easier time with “parallel influences” than with sequential logic.

      The psychologist David Ausebel used to say that “Learning happens on the fringes of what you know” — so the number one thing a teacher needs to do is to get a sense of where (and how) an individual student is wrt the subject. But, we are also all human beings, so some pedagogical approaches are likely to work with most learners (as indeed, the GUI that we invented at Xerox PARC has).

      That leads to the last point, which is about student-teacher ratios. Not enough studies have been done, but there is a lot of evidence from studies that this makes a very large difference for many learners. (And certainly my observations of master teachers over the years would confirm this)

      This implies that we should get cracking at much better UIs in IDEs that can teach the ideas to individuals and not in a mass classroom setting.



  • […] pedagogical content knowledge (PCK), I realize that Gary Stager is right (below).  We used to have CS PCK.  I remember “Ask three before me” and Logo songs and all the other terrific […]

  • […] CS PCK: What is Computer Science Pedagogical Content Knowledge? In most disciplines, there is a body of […]

  • […] are tools — they are what to teach, not how to teach.  Most of our strong results (like Pair Programming, Caspersen’s STREAMS, and Media Computation) are about changing practice in whole courses, […]

  • […] teaching knowledge. To create credentialing for CS, we need to offer CS methods courses that teach CS PCK. Aman Yadav and Tim Korb teach one of these courses at Purdue, and have an article in this […]

  • […] written before about computer science pedagogical content knowledge (PCK).  Phil Sadler and his colleagues just published a wonderful study about the value of PCK.  He […]

  • […] need to know and do that’s different from software developers, with a particular emphasis on pedagogical-content knowledge, on reading code more than writing code, and about writing code to learn rather than to produce […]


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 8,460 other followers


Recent Posts

Blog Stats

  • 1,861,952 hits
February 2010

CS Teaching Tips

%d bloggers like this: