Computer Science (CS) Education week is a great time to think about the challenges and opportunities inherent to teaching Computer Science.  As a relatively new addition to the experience of an elementary school student, computer science asks a whole new set of skills from say, a fifth grader, who, faced with the prospect of advancing her existing math skills may not be as daunted as when asked to move a sprite in Scratch. As with exposure to anything radically new, opening the doors to an exciting new field of study for students can be both thrilling and difficult for teachers – so here are five things teachers would be wise to keep in mind.


1. Teaching CS is different. Think for a moment about a middle school lesson involving the water cycle.  In teaching that lesson, the teacher could take for granted that students would have first-hand experience with concepts like precipitation and evaporation.  Teachers can then use this background knowledge when exploring the water cycle with students.  With Computer Science, that background knowledge does not exist.  If teaching the students programming, it is likely that this is the first experience that students will have with a computer language.    Soon, this may not be the case as more and more children, even as young as 4-5 years old, are being exposed to programming. Similar to how Sesame Street improved children’s school-readiness in math and literacy[i], students may begin coming to school with more experience with computer languages. However, that is not the case today.  As a result, novice programmers assume programming languages behave in much the same way that human languages behave[ii].  Human languages are filled with inferences. For example, if I tell someone to walk to the door, they will walk to the door and stop.  However, if I want to program a robot to move to the door and stop, I need to tell it to stop.  Computer languages only do exactly what they are programmed to do.  This phenomenon is often referred to as the “superbug[iii].”


2. The goals for teaching CS should be the same as the goals for other academic subjects. Most people remember the experience of being told in a math class, that it was not enough to just know a procedure.  Instead, one needed to understand the concept or the “why” behind a procedure.  Aiming for this type of rigor should also be the goal when teaching novice students CS.  Unfortunately, many classes just focus on the completion of a project; in other words, having the code produce the desired result.  But executing a mathematical procedure does not mean that one fully understands a math concept and writing a program does not mean that students have built a conceptual understanding of Computer Science.


3. Computer Science can sometimes be taught without computers. Imagine a writing class where all the students did was write, nonstop, every class, every day.  No one would probably enjoy that class, nor would they learn enough about writing.  Contrast that example with a writing class that discussed and shared different examples of great writing, unpacking the techniques and structure of the work.  Then, students even spent some of the time trying to incorporate those lessons learned into their own writing.  When thinking about these two examples, one should consider how much class time is spent writing computer programs, making sure to leave plenty of time for exploring, discussing, and sharing computer programs.


4. CS students do not have to become Computer Scientists. Students are taught Social Studies, and the majority of them will not become historians.  They are also taught science and most of them will not become Physicists.  Therefore, we shouldn’t expect CS students to become Computer Scientists or Software Engineers, and we also shouldn’t tell them that they should take CS classes in order to get a job writing software.  Teaching students Computer Science, like many other general knowledge subjects, allows them to learn more about the world that they live in.


5. Don’t confuse proficiency with tech tools with CS proficiency. Students that have grown up with iPhone and iPads can normally use those devices without much, if any, guidance.  This, however, does not mean that they will “pick-up” CS concepts faster.  CS concepts are just that – concepts, those ideas that, when deeply-understood, lay the groundwork for further learning.






[i] Tankersley, Jim. “Study: Kids Can Learn as Much from ‘Sesame Street’ as from Preschool.” The Washington Post, WP Company, 7 June 2015,


[iii]   Pea, Roy D. “Language-Independent Conceptual ‘Bugs’ in Novice Programming.” Journal of Educational Computing Research, vol. 2, no. 1, Feb. 1986, pp. 25–36, doi:10.2190/689T-1R2A-X4W4-29J2.