Thursday, November 10, 2016

Too Many CS Teaching Resources

The Bring IT, Together conference is taking place this week in Niagara Falls, Canada. I’m not there but I have been seeing some social media updates today.  It looks like a great conference and on some level I really wish I were there. At the same time I have been thinking back on a conversation I had last Saturday with Pat Yongpradit (Chief Education officer at Code.Org and a wonderful teacher).

We talked about how many tools are available for teaching computer science these days. There are an awesome number of them. There are robots for teaching programming. There are block based languages for teaching. And then there is an increasing number of Internet of Things objects for teaching programming. Last weekend I attended a workshop on using microprocessors and electronics for teaching programming (and more). There is the BBC Micro:Bit, Arduino, Raspberry Pi, and many more micro processor based items all the time. (I should make another list but maybe someone is doing that already?) 

Do we need all of this stuff? How do we pick from all the stuff out there? Every time I go to a conference is see a “shiny new object” for teaching computer science. My first inclination is to get one (or more) and think about how to fit it into my curriculum. And then someone reminds me that I have limited teaching time and limited resources and there is that whole only 24 hours in a day restriction.

Much of what we are seeing is brand new and while it looks great there is seldom research or experience to back up its usefulness. Usually we see it demonstrated by either the people who created it or by early adopters. I would expect it to work for the people who created it. Generally people create tools closely aligned to how they teach. I know my first textbook was based completely around the way I taught and what works for me. Does something that works great for the creator work for everyone? Much as we’d all like to think so it is far from a sure thing.

The same, to some extent, is true of people who are early adopters of new resources. How much of what it working for them is related to the ways they would teach with any other resource and how much because of the tool itself? It’s really hard to tell. Some tools are adopted enough over time (think Alice and Scratch) that it becomes clear that they can work for a lot of people. Though a close look shows that Alice works better for some teachers than Scratch does and some times Scratch works better than Alice for other teachers. Which one are you and how do you find out?

OK this is coming out a little more negative than I really intended. I do like new tools. And I do try to bring them into class. On the other hand a lot of stuff I have used for some years seems to work really well. There is nothing wrong with using things that work even though they are not the latest and greatest thing being show at tech conferences. Right?

1 comment:

Garth said...

We have been dealing with this issue for what? 15 years at least? What language to teach, language progression, new toys to teach with, software that might be useful for the kids to know and the overall direction of CS in the K-12 world. So many companies introduce a new gizmo and offer a curriculum to rationalize it. Wrong. The school/teacher should have a curriculum plan to start with and then take a look at what would fit in to implement that curriculum. From there it is teachers choice. Like you said Alice or Scratch. Play with both and decide what fits the best. CS teachers cannot be afraid to try new directions. CS is not a ridged field like math of history. The is something new every year (not just a new book) that can change the way the curriculum is taught. Right now I am looking hard at teaching Unity. Not just because it looks like fun but because I think programming environments are going more and more in that direction. It also gets kids in the classroom to look at CS and programming. Except for the rare programming geeks the second level of high school programming with Python or Java or whatever is really dry. Things like Unity, Corona, Lumberyard, Small Basic with the physics all intensify the student interest and yet still teach what CS is all about. Problem solving, procedural thinking, language (coding), abstract conceptualization and whatever else is in the list.

CS teachers have to pick something, go with it for a while but always keep looking, but also do not get buried.

Most high school subjects have an agreed curriculum. Freshman, sophomore, junior and senior years are pretty much laid out and most math teachers agree on the progression. CS is wide open. Nobody agrees and there are no publishers driving a "standard" curriculum. A real pain for beginning CS teachers but a wide open book for the brave and adventurous. What fun.