What CS teachers know: PCK for CS Ed
February 5, 2010 at 10:30 am 14 comments
I’m teaching educational technology again this semester (along with a senior design class — it’s a two-fer semester). We always read chapters from How People Learn which is an amazing book for providing a gentle introduction to a wide swath of learning theory. We just read a section introducing pedagogical content knowledge (PCK):
Shulman (1986, 1987) argues that pedagogical content knowledge is not equivalent to knowledge of a content domain plus a generic set of teaching strategies; instead, teaching strategies differ across disciplines. Expert teachers know the kinds of difficulties that students are likely to face; they know how to tap into students’ existing knowledge in order to make new information meaningful; and they know how to assess their students’ progress.
via How People Learn: Brain, Mind, Experience, and School.
This section is always a hotbed for discussion among my students. There are two main strands of discussion that come out of this section.
First, it’s pretty clear that higher education explicitly disbelieves in the existence of PCK. Instead, we act upon the belief that knowing a lot about your domain (e.g., getting a Ph.D. in a topic, having an on-going research program) makes you qualified to teach in post-secondary education — arguably the most important level of education for addressing social inequality. It’s an important job, and colleges and universities don’t do much to make sure that the job is done well. When we get to this part of the chapter, the students launch into tirades (that I try to moderate) about the poor teaching quality that they find in college, and worse, the lack of interest in making it better. That’s not a computing-only issue, of course.
The second theme, which I emphasize more than the students, is the challenge of identifying PCK for computing education. I’ve spoken to people at several places that are trying to put together degree programs or certification/endorsement programs around computing education. In all of these efforts, they need “methods courses” — the courses where teachers are taught PCK. It’s not obvious what the content is for those methods courses.
So, what would you teach a new teacher about teaching PCK for computing education? Sure, you’d teach that you can use the spring-loaded cafeteria tray/plate holders as a model for a stack — that’s clearly part of our methods, part of the PCK for computing education. Everybody uses that example. What else? I think there is a lot to include in such a class, from pair programming as a learning method, to the work in Commonsense Computing to define baseline understanding, to contextualized computing education as an organizing principle, to tools and IDEs and interactions between them (like Barb’s Alice-integration-with-Java approach). There is a lot of teaching lore associated with a particular method, such as the procedures and processes of TeachScheme, and Logo teaching methods like “Ask-two-before me” (which is how I learned it in the 1980’s, which I know see as “Ask 3 before me.”) The challenge is drawing together these disparate pieces into a cohesive whole.
Entry filed under: Uncategorized. Tags: Logo, perception of university, Scheme, teachers.
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.
Cheers,
Alan
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.
Cheers,
Mark
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
5. Education Week: Dueling Objectives Mark Stimulus at Halfway Point | Educational New York | February 6, 2010 at 8:09 am
[…] What CS teachers know: PCK for CS Ed « Computing Education Blog […]
6.
Minority Male Plight Demands Broad U.S. Action, College Board Says « Computing Education Blog | February 6, 2010 at 9:49 am
[…] 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.
Cheers,
Alan
9.
We used to know how to teach CS in Logo « Computing Education Blog | April 7, 2012 at 1:37 pm
[…] 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 […]
10.
Blog Post #999: Research Questions in Computing Education « Computing Education Blog | May 3, 2012 at 6:16 am
[…] CS PCK: What is Computer Science Pedagogical Content Knowledge? In most disciplines, there is a body of […]
11.
Instructional Design Principles Improve Learning about Computing: Making Measurable Progress « Computing Education Blog | June 5, 2012 at 7:30 am
[…] 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, […]
12.
Learning to Teach Computer Science: The Need for a Methods Course : CACM « Computing Education Blog | November 2, 2012 at 7:12 am
[…] 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 […]
13.
The critical part of PCK: What students get wrong | Computing Education Blog | May 13, 2013 at 1:02 am
[…] 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 […]
14.
Off to WIPSCE 2014: 9th Workshop in Primary and Secondary Computing Education in Berlin | Computing Education Blog | November 5, 2014 at 7:56 am
[…] 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 […]