How to Get Started Teaching Coding
A three-step plan to help teachers in any subject and any grade teach the foundations of coding.
Your content has been saved!
Go to My Saved Content.I first learned about coding and computer science (CS) in college about 20 years ago. Looking back, not much has changed in the foundational concepts or core practices in CS. What has changed is who can teach it and where it can live in the curriculum—today educators in any subject can teach coding.
For example, an English language arts teacher may teach a lesson that helps students make connections between coding with proper syntax and writing with correct grammar. An early elementary teacher may set up a project where a programmed robot travels on a floor map so that students can begin to comprehend how their lives relate to a broader community and the larger world.
Many teachers are looking for creative and practical ways to teach coding and programming. Although the two terms are often used interchangeably, there is a difference between them. Coding is typing and testing—writing code—and a coder translates a list of requirements into a programming language like Java, Python, C++, etc. Programming is broader, involving coding as part of a larger process: identifying a problem, finding the solution, coding the solution, and then testing the solution. This process requires the programmer to understand algorithms and data structures, among other things.
Teachers preparing students in this set of skills will need to get them grounded in the basics and will need to use appropriate edtech in tandem with good teaching practices. Here’s how to start in three steps.
Step 1: Get Students Grounded in Core Coding Concepts
Every language—spoken or written—has a grammar, a set of principles that define parameters for constructing a sentence or successive sentences. Similarly, coding requires coders to be able to understand and implement fundamental coding concepts using the appropriate syntax (grammar). This is a requirement, no matter the programming language.
Critical coding concepts include inputs and outputs, loops, functions, conditional statements, and variables.
Step 2: Pick the Right Tool for the Job
The resource you use to teach coding will need to augment your instruction, taking students beyond following step-by-step directions. Moreover, it will need to get them grounded in the core coding concepts mentioned above and allow them to see the effects of each line of code executed in real time. That will provide them with moments of success, creating confidence and a willingness to tackle more complex coding tasks.
These tools come with curriculum resources that you can adapt to your coding lessons:
Step 3: Use the Workshop Model
Most likely, all of our students will not be coding at the same level. Once we know the basics of coding and have a resource for teaching, it’s important to employ sound teaching strategies to reach them all.
For this purpose, I like to use the Workshop Model (WM) developed by Carmen Fariña and Lucy Calkins. The WM structure allows me to organize and monitor learning while helping my students become more responsible for their own mastery as they build competence in coding. Engaging them in this structure also leads to increased confidence and willingness to extend their presumed capabilities for the multilayered skill of coding.
In my adaptation of the WM, I conduct mini-lessons and allow groups of students to create programs and build their coding skills with appropriate activities for their varied levels. Teachers can facilitate learning for learners new to coding by having them participate in the following station rotations within the WM structure:
Coding is a multilayered skill that requires time, patience, effective use of edtech, and sound strategies for achieving mastery. Moreover, creating a computer scientist could take up to 25 years—it cannot happen in one class, lesson, or semester. Therefore, focus your teaching on the basics, building student capacity and getting them where they need to be, which is the rigor level appropriate to their current understanding and grade level.