What CS teachers know: PCK for CS Ed
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.
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.