Teaching CS in Schools with Meaning: Contexts and problems come first
Richard Hake relates a story from Alan Schoenfeld:
One of the problems on the NAEP [National Assessment of Educational Progress] secondary mathematics exam, which was administered to a stratified sample of 45,000 students nationwide, was the following: An army bus holds 36 soldiers. If 1128 soldiers are being bused to their training site, how many buses are needed?
Seventy percent of the students who took the exam set up the correct long division and performed it correctly. However, the following are the answers those students gave to the question of ‘how many buses are needed?’: 29% said…31 remainder 12; 18% said…31; 23% said…32, which is correct. (30% did not do the computation correctly).
It’s frightening enough that fewer than one-fourth of the students got the right answer. More frightening is that almost one out of three students said that the number of buses needed is ‘31 remainder 12’.
The problem that Hake and Schoenfeld are both pointing out is that we teach mathematics (and much else in our curriculum) completely divorced from the contexts in which the mathematics make sense. The children taking the NAEP knew how to do the mathematics, but not why, and not nearly enough about how the mathematics helps to solve a problem. They knew mathematics, but now what it was for.
Hake relates this story in an article about Louis Paul Benezet, an educator who ran a radical experiment in the 1930′s. Benezet saw how mindlessly young children were performing mathematics, so he made a dramatic change: Almost entirely remove mathematics from grades 1-5. Start teaching mathematics in grade 6, with a focus on problem-solving (e.g., start from estimation, so that you have a sense of when an answer is reasonable). Sixth graders can understand the problems for which one should use mathematics. The point is not to introduce the solution, until students understood the problem. Remarkably, the experimental 6th graders completely caught up in just four months to the 6th graders who had had mathematics all five previous years.
The experiment was radical then, and as far as I know, has not been replicated — even though evaluations suggest it worked well. It runs against our intuition about curriculum. Mathematics is important, right? We should do more of it, and as early as possible. How could you remove any of it? Benezet argued that, instead, young children should do more reading and writing, saving the mathematics for when it made sense.
Hake uses Benezet (and the evaluation of Benezet’s approach by Berman) to argue for a similar radical approach to physics education — teaching some things to kids to build up intuition, but with a focus on using physics to solve problems, and introducing the problems only when the students can understand them. There are lessons here for computing education, too.
- First, problems and contexts always come first! Teaching a FOR loop and arrays before teaching a problem in which they are useful just leads to rote learning, brittle knowledge which can’t be applied anywhere, let alone transferred.
- Second, the answer to the question “What should be removed from our overly-packed curriculum to squeeze computer science in?” may be “Get rid of the overly-packed curriculum.” There may be things that we’re teaching at the wrong time, in the wrong way, which really is just a waste of everyone’s time.
- Finally, just how young should we be teaching programming? Several people sent me the link to the report about Estonia teaching all first graders to program (quoted and linked below). Sure, you can teach first graders to program — but will they understand why they’re programming? What problems will first graders recognize as problems for which programming is a solution?
I do applaud the national will in Estonia to value computing education, but I do wonder if teaching programming so young leads to rote learning and the idea that “31 remainder 12″ is a reasonable number of buses.
We’re reading today that Estonia is implementing a new education program that will have 100 percent of publicly educated students learning to write code.
Called ProgeTiiger, the new initiative aims to turn children from avid consumers of technology (which they naturally are; try giving a 5-year-old an iPad sometime) into developers of technology (which they are not; see downward-spiraling computer science university degree program enrollment stats).
ProgreTiiger education will start with students in the first grade, which starts around the age of 7 or 8 for Estonians. The compsci education will continue through a student’s final years of public school, around age 16. Teachers are being trained on the new skills, and private sector IT companies are also getting involved, which makes sense, given that these entities will likely end up being the long-term beneficiaries of a technologically literate populace.