How to prepare educators to teach coding/CS

As part of my role as the CSTA Board member for K-8, I have been working with an amazing team of computer science (CS) educators – the CSTA K-8 Task force to host Twitter chats every other Wednesday using the hashtag #CSK8. The last chat was on the topic  – ‘How to prepare educators to teach coding/CS’. This chat generated an interesting discussion among educators and made me think more on how much CS content knowledge is necessary at the K-8 level. Can we reduce or eliminate professional development (PD) completely to quickly address the shortage of teachers?

Several CS advocates believe that with two powerful strategies – online self-guided tutorials and peer instruction, teachers need little or no PD to teach CS. Coding clubs run by volunteers who have limited experience in CS, but hand out solutions, point to videos and peers are coming up everywhere. While this approach may work in after school situations, can this work in schools trying to reach ‘all’ students? The emphasis is on the “all,” reaching every student and not only those already interested or confident of learning CS. We expect K-8 Math teachers to know some math, should we expect teachers who teach CS to know at least some CS?  If CS is to include more than coding (which it should!), does the answer change?

Based on my last six years of experience teaching CS to 6th graders across a public district in California, I want to share my concerns about relying on online courses and peer instruction to reach all students.

Online tutorials have many advantages and work well in so many cases, that it is very tempting to focus on that success alone. It is tempting to ignore all those who do not learn well by passively watching videos and those who need the concept explained again in a different way. It is also easy to celebrate the cool structured projects made by students following an online recipe and declare that they have learned to code. Some of my students who have completed an entire online course of structured exercises on their own, are unable to solve simple debug challenges or make a completely different kind of project. That certificate or badge from their online learning site does not mean they have actually learned the why and how behind the coding concepts. It does not mean they are expert problem solvers, or understand basic algorithms.

Peer instruction is a powerful teaching strategy and I use it extensively. The advanced student who has finished the exercise is challenged to help someone else. Students love teaching others, and learning from others. However, I often find that peer instructors quickly fix the problem without being able to show the thinking behind the solution. Even though I strongly encourage my peer instructors to explain and not actually touch the keyboard, it does not always work. These peer instructors are more advanced  coders, but are not necessarily natural teachers. In later projects, struggling students then start relying on this group of student experts, further reinforcing the belief that they can never do this on their own.

Adult teachers are more likely to guide / encourage/ give hints/re-explain and help the student discover and learn the concept rather than just give them the solution. Teaching is messy after all, and takes work. Instead of quickly pointing to a video or giving the solved solution/recipe, teachers who know the content can focus on explaining the fundamental concept. In addition, as the twitter chat pointed out, if PD  comes from actual teachers in the classroom, educators can learn beyond the CS content. They can also learn strategies from experienced teachers on what specifically works well in the CS classroom. This can further increase the chance of success with all students.

So going back to the the question  – should educators have some CS experience, my answer is yes. Of course, depending on the age group they are teaching, the ‘some’ varies. Teachers do not need advanced degrees in computer science, and can always be learning more along with their students. However they must have some CS content and pedagogy knowledge so they can inspire, engage, and guide every student. It is especially important if we are to reach students who are struggling or believe they do not fit the CS stereotype. These students are not excitedly watching videos online, they need help from a human teacher. Preparing our educators to teach CS is the only way to reach ‘all’ our students, and address the equity issue in computing.

(See more on this topic by reading responses from a variety of educators on the #CSK8 chat archive at For archives of other CSTA K-8 Twitter chats and other topics of interest to K-8, check out the CSTA K-8  g+ Community at 

Sheena Vaidyanathan

6th Grade Computer Science Teacher
Los Altos School District, California
CSTA Board Rep for K-8

2 thoughts on “How to prepare educators to teach coding/CS

  1. I agree. As with any subject, a teacher needs to know the content, methods, and culture of the field in order to be effective. Certainly students can be self-taught, and the proliferation of tutorials and online resources support this type of learning more than ever. But there is no substitute for engagement with an experienced guide.

    As Sheena says, the amount of CS knowledge and experience a teacher needs depends upon the teaching responsibilities. The main thing is to have a solid enough grounding in CS to know what you do and don’t and where to go to learn more. Again, it’s just like any other field.

  2. Sheena, brilliant article and so true in every aspect. Thank you for sharing your blog as well as your expertise as we work together to teach the teachers who will be teaching our valuable students now and in years to come! Congratulations on your successes! We love working with you.


Comments are closed.