Collaboration in education

Here's an interesting article, "Cheating in Computer Science", that was recently posted on the IAEP mailing list. It's quite short and the problems it describes are worth mulling over:

  • Why do we call "cheating" what will later in life be called "collaborating" and be a critical quality for success?
  • Why do our education systems focus so hard on having students learn something in a specific intricate way that facilitates grading, rather than on the best way to learn the right thing?

I quite like the author's idea of changing the game, to reduce the motivation for cheating and encourage learning instead of simply working harder at punishing cheaters.

On a more practical note, he describes how he changed his way of teaching programming from the usual writing of a program from scratch without talking to anyone or reusing any code, to the following:

"Instead I give them programs that work and ask them to change their behavior. I give them programs that do not work and ask them to repair them. I give them programs and ask them to decompose them. I give them executables and ask them for source, un-commented source and ask for the comments, description, or specification."

I love this! Added to my stash of exercises-to-prepare for my next teaching adventure. Which should happen in January, by the way :-)