I have often assumed that the challenge of teaching CS was a matter of limited experience and significant complexity.
- Experience: almost all students come in without ever learning anything about computer science, whereas every other high school class is a continuation of a subject the student has been learning about for 8 years prior.
- Complexity: CS is very deeply grounded in abstract problem-solving which are 2 very challenging skills.
In “Computer Science is Different! Educational Psychology Experiments Do not Reliably Replicate in Programming Domain” by Morrison, she reports on her research and studies that demonstrate learning CS is different not just difficult.
“What is it about learning to program that is different from learning how to solve problems in geometry or physics…?”
That’s a great question, and unfortunately it is only posed, and not yet answered. So, here are a couple of my thoughts:
- High school Math/Physics problems have a single correct answer.
- The steps high school students are taught to follow in Math/Physics are very regimented.
- Math/Physics at the high school level have a very limited number of universally taught tools/formulas/laws with which to use.
Any high school cs teacher will recognize that these are contrary to the characteristics of the problems we challenge our students with.
Additional comments about the research paper:
- I appreciate this quote: “… cognitive load in programming is high due [to] the intrinsic nature of the material. Students have to keep in mind: variables, their roles, their own process in problem-solving, and the process of the computer…” (emphasis added)
- Several years ago my district’s professional development revolved around the Multiple Intelligences Theory. It would have been nice to have explored more about the “Modality Study” the author discussed during that time.
- Morrison mentions exploring “…whether students see code segments as text or diagrams.” I suspect it is neither exclusively one or the other for all students, and may change with development.