These days it seems like “how to learn coding yourself” opportunities are everywhere. There are MOOCs from major universities, code.org (http://code.org) has great online tutorials, Facebook just opened a web site called TechPrep (https://techprep.fb.com/) to help parents and students alike find resources and tools, and there seems to be a new edtech company starting up every week with online CS resources. The question for many becomes “do we still need computer science teachers?”
For those of us who make our living teaching computer science the fact that this question is even being asked is a little scary. OK maybe more than a little. I think most of us believe that there is still a crucial role for computer science teachers though. CSTA is at its heart about Teachers for good reason.
Online resources work great for autodidacts. People who can learn on their own gravitate to these tools, often have great success, and often promote them as “THE ANSWER” in all caps. In the real world not many people are autodidacts though. For every person who can learn on their own there are thousands who cannot. They need that personal touch.
What do teachers do? For starters they can explain a concept in multiple ways. We can adapt what we say and how we present it to the specific needs of the student. We can give hints – point students in a direction without giving away the answer. We can even personalize those hints depending on the student. Automated systems are not there yet. Not really even close. I attended a workshop at Microsoft Research last winter where automating hint systems was a major topic of conversation. Hint generation is hard.
We adapt the curriculum around our students. Is one class more interested in story telling than games? Fine, change the projects. More interested in graphics than console applications? Change the projects. Is everyone in the class doing the same project boring for students and teacher? Fine. Let’s all do something different. I’ve played around with autograders lately. They seem like a solution but try creating an autograder for each of forty different final projects? Trust me, you will not save any time that way!
Is there something computing related in the news? Think about the Volkswagen emissions software cheating recently! A teacher can fit it into the curriculum and have a discussion about ethics in computing at the drop of a hat. Flexibility is something human teachers excel at and automated systems really don’t do well.
There may be a bigger reason that we still need computer science teachers though. After school programs and learn on your own programs are generally more available, along with the resources to support them, to students who already have some privilege. For far too many students if they don’t get it in school as part of a regular class they will not get it at all. Often they will not even learn about the opportunity and know what they are missing. For a truly diverse community in computing we need to see more classes in schools, counting for graduation, and taught by actual people.
Do we still need computer science teachers? Yes, now more than ever.