I had an interesting question asked of me recently.
“What’s the best way for a teacher to learn how to code – take a class or learn online?”
I searched my mind for the best answer. First, as you know, the options aren’t necessarily exclusive, but I think I understood the intent. I came back with a lame “It depends upon how you learn best” which is probably a correct answer but, I suspect, totally useless.
For me, learning online or via tutorials, is the most expedient way. Honestly, though, over the years I’ve learned or dabbled in so many different languages, I probably couldn’t sit down and write a program from beginning to end without messing myself up with syntax or any of the rules of the chosen language.
Nonetheless, I think it’s an excellent question and I’m not sure that anyone really has the right answer for all cases. It’s not framed in the context of knowing how to write the next great program or app. It’s based on needing to know enough to do meaningful coding with students in a non-computer science class.
If you’ve taken any computer coding course, think of the content. Most of the time, it covers all of the aspects of the language – including things that you may never need.
Is there a way to learn “just enough” to make a meaningful activity to address curriculum expectations in mathematics or science or whatever subject area you’re interested in? One of the best examples of learning would be the one provided by code.org. You can check out the tutorial here.
The tutorial uses Blockly as the language throughout the tutorial.
It’s interesting and fun to work through the activities. Does it take you where you need to be?
How about Python as a programming language?
If not, how about TouchDevelop?
Recently, I had blogged about the creation of a Flappy Bird-like application via a TouchDevelop tutorial. It’s a great deal of fun and we know that some people have taken it and had students embrace it. Again, though, how does the teacher learn enough about TouchDevelop to help students who want to modify the program after the tutorial ends?
And, the point of the tutorial is to know enough to move on to other things. Perhaps being able to code a solution to a math problem or do a little inquiry with some data in another subject area. As any computer science teacher will attest (hopefully in the open), this is where the student can clearly outshine the master. And yet, there’s another thing that any computer science teacher will confess (hopefully in the open), it’s not uncommon to assign a problem that requires a skill far above and beyond the ability of a student to apply current abilities and learn enough new to solve.
After all, of all of the disciplines, mistakes in coding can be unforgiving at times.
I’ll be honest – I still don’t know the answer to the original question. For me, learning a new language has always been hard work. I’m the first to admit that it’s been a lot of fun but it’s still work. In an already crowded daily workload, how does a teacher build learning time into having a life? With a look given towards critical thinking, making, constructing, coding, … is it something that each individual teacher should be left to learn on her/his own? Even the choice of a language is a non-trivial task – I’ve made reference to a couple of web-based offerings above but there are languages that can be installed locally that work just as nicely. There are PD events such as the ECOO BIT Conference or the CSTA Conference where sessions focus on various coding projects, but it this enough to give the non-computer science teacher the skills and confidence to us in the classroom in a meaningful way?
Or is a different approach needed? Is a more directed approach needed at the provincial or district level to try to provide resources and raise the capacity for coding in schools? Right now, we know that we’re all over the map. Some do tutorials and are happy with the results. Some extend the tutorial and truly apply it in the classroom. Some have computing abilities already and bypass the tutorials for techniques of their own.
I’m still no closer to a solution. What about you, kind reader? What advice would you offer?