Wednesday, May 23, 2018

Teaching Through Stories

This time of year I think a lot about how I teach. There is something about the end of the year and evaluating how much my students have (or have not) learned that causes me to think about how much of what they learn (or don’t) is my responsibility. I look at the projects I assigned, the quizzes I gave, the lectures I presented, and every other aspect of teaching. The last few days have been about the stories I tell.

Brett Becker wrote Computing history in the classroom: The cereal box toy that was an early hacking device, and nuclear weapons systems that depend on floppy disks In part, this made me think of my own post on teaching computer history but it also make me think deeper about the how we teach history. History is not taught well as a mere recitation of facts and dates and names. It is better taught as stories. The authors of “Made to Stick: Why Some Ideas Survive and Others Die” write convincingly about the importance of stores for getting information that "sticks" in people's minds.

Teaching computer science is a lot more than just history though. If we want to teach concepts and have them stick shouldn’t we also be finding stories to explore the concepts? I think so. This can be harder than it seems though. The best and most convincing stories involve projects that are harder and more complex than the ones we can assign in a first programming course.

When we talk about avoiding hard coded “magic numbers” and replacing them with concepts I have a good story. Picture a team of four people working for a year on a software package that will spread across 16 computers. They use the number 15 in hundreds of places among thousands of lines of code. One day their boss tells them they need to account for 32 systems not 16. Hilarity ensues. OK hilarity is not the right word. A month or two of editing and testing ensues. This time the team gets smart and uses a defined constant rather than a magic number. Six months later when they are told that 32 is no longer the number but 128 is they change a single line of code and everything works fine.

I think that is a story that works. Well, as much as anything does with high school students.

I use smaller stories all the time but lately I have been wondering if there are longer more meaningful stories I can use for other concepts. They don’t always just come to me spontaneously though. One of the things I’d like to do is collect other stores. After all the smart people learn from other people’s mistakes and not only their own. Wouldn't a collection of teaching stores be a wonderful aid to teachers?

What stories do you tell to make concepts real to students?

1 comment:

Doug Blank said...

Stories can be integrated even more deeply into classroom activities. Many people have been exploring the idea of "computational storytelling" by working computing into the story arc. Jupyter notebooks are one way of doing this. For example, see my talk: https://jupyter.brynmawr.edu/services/public/dblank/jupyterday/Computational%20Storytelling.ipynb