I wanted to highlight a post Alan Kay recently submitted to Mark Guzdial’s Computing Education blog.

That reminded me of a few other sources that might inspire some thought on the debugging process and the social factors surrounding novices’ experiences with failure. Thanks to David DeLiema for these suggestions.

  • Mindstorms (Papert 1980).
  • Language-independent conceptual “bugs” in novice programming (Pea 1986). More affectionately known as “Superbug”.
  • Cognitive objectives in a LOGO debugging curriculum: Instruction, learning, and transfer (Klahr, Carver 1988).
  • Self-Efficacy Mechanism in Human Agency (Bandura 1982).

And an interesting piece of what would now be considered history with a statement by Mike Clancy from the OOPSLA “The Future of CS2 and Data Structures” workshop. While I’m tooting Mike’s horn, here’s a couple more interesting papers.

  • Misconceptions and Attitudes that Interfere with Learning to Program (Clancy 2004).
  • Experiences with lab-centric instruction (Titterton, Lewis, Clancy 2009)

It’s hard to put together all of these into a TL;DR version, but I’m making my way through How Learning Works: Seven Research-Based Principles for Smart Teaching (Ambrose, Bridges, DiPietro, Lovett, Norman 2010) on recommendation from the UW CS Ed research seminar group and it deserves recognition. Reflecting on teaching CS in higher education, a lot of the lessons in this book feel incredibly relevant.