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.
Got insomnia? Try a MOOC. Like being by yourself without human interaction? Try an on-line coding course. Realize that coding is only a small part (the easy part) of Computer Science? Get a teacher
Strange rationality. There are online courses, computer programs, and books for every subject imaginable. “Do we need any teachers at all,” would be a more appropriate, yet still unjustifiable question to ask.
Prior to reading, I had hoped this article would be sarcastic or satirical.
Look at all the Calculus textbooks out there…
do we need Math teachers?
Look at all the Physics simulations on the web…
do we need Physics teachers?
The role of differentiation in instruction and the parity of computer science education are both critical issues that addresses the cultural-historical view of effective teaching and learning. Of course, we need computer science teachers. We need them to facilitate dialogue, to scaffold the learning of coding and its implications societally, and to inspire excellence not through isolation but through collaboration.
According to Wikipedia, Sensei is a Japanese word that is literally translated as “person born before another”. In general usage, it is used, with proper form, after a person’s name, and means “teacher”. The word is also used to show respect to someone who has achieved a certain level of mastery in an art form or some other skill. To me a teacher or sensei is an adaptable facilitator of knowledge. Teachers do
not teach. They confer adaptability and the knowledge to do so, to people born after
us.
Pingback: Perspective: Do We Still Need Computer Science Teachers? – CS-CaVE