When I taught math I never had to learn any new math from year to year. The only change between years was an attempt to improve pedagogy. Usually not a big deal. Also math is a required course, I was going to get full classes no matter how exciting or boring the course material. Teaching programming on the other hand is a constant battle with other electives for students and a battle to keep up with programming tools evolution. There is always something new and cool I want to teach to attract kids into my programming classes: game programming, virtual reality, mobile apps, etc. They are all viable and exciting ways to teach the basic and advanced levels of programming but also attract the non-programming, non-geek kids into programming.
If I look back at just the last two years teaching programming here are the things I have learned or at least dabbled in enough to evaluate for potential as a teaching tool or required I do some serious refreshing.
- Project Spark (bad, bad on Microsoft for abandoning this software.)
- Corona (knew it, forgot it, relearned it)
- Kodu (knew it, forgot it, relearned it)
- 3ds Max
- Lumberyard (dabbled)
- C# (as part of Unity)
In the last four months I have made a Unity maze and gotten it to work with a Bluetooth controller on my Android phone, built a yellow submarine with Blender (for you that remember it is the cover art for the Beatles album), made a 2D platform game in Unity using C#, and am now learning UnityScript.
Looking back this is not atypical for a school year. A programming teacher should always be looking down the road for what might make a new course or attract students into present courses. That ten-year-old AP CS course with Java is just not going to cut the mustard any more. It is possible to teach the same concepts and have a really cool game or phone app as a final product for a student to keep in a portfolio.
As a math teacher the math I taught last year will work for this year. As a programming teacher the language/software/environment I taught with last year undoubtedly has a new version that will require some tweaking to get to work this year. And that update may have some features that will require major time to figure out and integrate into the course. And the computers you did it on last year may not be up to handling what you want to do this year which means you may have to punt. (In my case I stole some newer computers from our library, replaced them with old computers, and bought some decent video cards for the stolen computers. If the librarian ever notices, I am dead meat.) As a programming teacher sitting on your laurels means you are falling behind.
Being a programming teacher is a never-ending cycle of looking and learning and staying ahead. It is also being sure you do not throw out the baby with the bathwater. If a programming teacher is bored with what they are teaching it is time get out of the game. There is always, always something cool to teach.