How to Teach Coding
Teaching Coding in the PreK-8 Technology Classroom – Guest Post by Katie McKinley
When I landed in the role of Technology Teacher, there were many aspects of the position I felt comfortable with. You want me to teach kids to type? Sure thing! You want me to have students create projects using online tools? Definitely! However, coding was this big, overwhelming concept that I avoided. In my mind, coding was just something programmers did in rooms by themselves with their computers. After doing a lot of research, though, I have found that coding is not only accessible to everyone, but it is FUN!
It’s hard to talk about coding without also considering Computational Thinking. Computational Thinking comprises the set of skills that students need to develop in order to successfully identify solutions to a complex problem. It includes breaking down the problem into smaller elements, and then applying a step-by-step solution. Computational Thinking is the skill-set that students need to have to successfully code.
The ISTE standards recognize this connection between computational thinking and coding. The standards that are addressed through coding units are as follows:
1.5. Computational Thinker Students develop and employ strategies for understanding and solving problems in ways that leverage the power of technological methods to develop and test solutions. Students:
1.5.a. formulate problem definitions suited for technology assisted methods such as data
analysis, abstract models and algorithmic thinking in exploring and finding solutions.
1.5.b. collect data or identify relevant data sets, use digital tools to analyze them, and
represent data in various ways to facilitate problem-solving and decision-making.
1.5.c. break problems into component parts, extract key information, and develop
descriptive models to understand complex systems or facilitate problem-solving.
1.5.d. understand how automation works and use algorithmic thinking to develop a
sequence of steps to create and test automated solutions.
In addition to ISTE, many states have adopted Computer Science Standards. These standards overlap with the ISTE standards in many areas. Most states use the CS Standards from CSTA (Computer Science Teachers Association). This group works with the Dept. of Education in many states to implement standards. The standards are organized by grade level, and can be found here.
In simple terms, students need to focus on the following:
I can write problems for the computer to solve.
I can use coding vocabulary to describe problems and solutions.
I can define problems and think of ways to solve them.
I can break a problem into parts.
I can create and test solutions.
I can find errors in my work and fix them.
I can create algorithms.
In beginning a coding unit, there is a lot of vocabulary to consider. Vocabulary terms include:
- Algorithm
- Loop
- Sequence
- Program
- Parameter
- Decompose
- Events
- Conditions
- Variable
- Command
- Value
- Bug/Debug
All of these vocabulary words should not be introduced at once, as they can easily be overwhelming to students. Start slowly, and add them in as appropriate. For example, younger students just starting out only need to know that an algorithm is a set of specific directions for a computer to follow. Older students, however, would need to know how to isolate events and variables within a program in order to troubleshoot (debug) something more complex.
Even though the professionals use some intense coding language and programs, the basics are easily attainable by all students. Some ideas to get started include:
PreK-2: Offline Coding
Younger students thrive with hands-on activities. It’s easy to give these young students a device and have them play a game, but it’s more engaging to give them something to do!
With my youngest students, I create paper game boards that they can use to code a character to collect items and make it to the finish line. I also use coding robots. I have Bee-Bots, but there are many to choose from including Code and Go Robot Mouse, Clicbot, Dash, and Sphero.
I start with having young students explore how to use the robot, what the buttons do, and how to make it move. I really only have one rule: Don’t touch the robot while it’s moving! You must wait for the program to finish, then make changes to how it moves. The students program the robot to move around their area.
Then, they can use blocks or other materials and they make a course for their robot. They can also use coding mats with their robots and program them to navigate a town, solve a math problem, or “read” a sentence.
Grades 3-5: Coding Apps
Students in these grades should already have a grasp of the basics. They (hopefully) have had time to explore and can use words like algorithm, program, loop and sequence in conversations about coding. These students are ready to jump into some of the more in-depth lessons in the websites listed above.
The focus for students in these grades is to deepen their computational thinking skills and become proficient problem-solvers. They have the attention span to focus longer on a task, and the perseverance to debug their longer code. This does not mean that they should not have hands-on experiences, though! Students in these grades also thrive on creating mazes for the coding robots, creating coding board games, and working on unplugged activities, too!
Grades 6-8: More Coding Apps and Applications
Middle school students continue the work from grades 3-5. They can complete the more advanced lessons in the coding apps, work on different programming languages, and apply their computational thinking skills by completing projects and creating items, like using a 3D printer.
Ultimately, the focus of coding lessons should be on computational thinking. Students need to know HOW to solve problems, and to explain the steps to others. This skill is not only important to computers, but to other subjects, as well.
Coding can be taught at any point in the year, and at every grade level.
An easy entry-point could be Hour of Code. This is a week-long challenge for students across the world. It is usually celebrated the second week in December in honor of the birthday of Admiral Grace Murray Hopper (December 9, 1906), who is largely regarded as a major computer science pioneer. Many websites offer “Hour of Code” activities and resources.
Even though Hour of Code has passed, many companies still have the resources available. Some websites that offer Hour of Code resources (and other free resources!) include:
- Scratch
- Web-based coding environment developed by MIT. Uses story based elements to teach coding. Free for all students, all the time! Grades 3 and up.
- ScratchJr
- App available for download to Apple, Android, and Amazon devices. Also created by MIT using the same story based elements, it’s Scratch for littles! Grades PreK-2.
- Kodable
- Free content available for teachers. Ability to import/create classes. Offers professional development and lessons. Students create “Fuzz” characters and guide them through mazes and adventures. Grades K-4.
- Tynker
- A lot of free content for teachers to use with a variety of projects to choose from. Considered to be a great alternative to Scratch, it offers multiple methods of block coding. Grades 3-8.
- Tynker, Jr.
- App available for download to Apple and Android devices. Teachers are able to login and create classes and assign content. Designed for emergent and pre-readers. Grades PreK-2.
- CodeSpark
- Free for teachers. Offers professional development and lessons. Ability to import/create classes. Game-based environment is used to teach children the basics of coding. Grades K-4.
- Code.org
- Free coding curriculum. Offers professional development and lessons. Ability to import/create classes. The goals of this organization are to expand CS education in schools. Grades K-12.
Don’t be tied to just one program, one robot, or one method. Mix and match; make the curriculum your own. Elements of each of these sites are awesome. Take the best lessons in each. You may ask how to find the best elements? Play around! All of these sites let teachers explore as a student. Find what will work best for your class. Which robot works best for your students? Explore on your own! Visit a store and play with one or two and see which ones you like. In the end, to teach students to code, you as a teacher can’t be afraid. You need to jump in, have some fun and start coding!
Katie McKinley is an educator with 20 years experience teaching students in grades K-8. Her background is in Math/Science Education, and she holds a masters degree in Applied Educational Technology. Currently she is Technology Coordinator for a Private School.
Other blog posts in the Coding category:
How to Incorporate Coding Activities into Your Elementary Curriculum
Unleashing Creativity and Logic: Dive into the World of Coding with Pixel Art Lessons
The best coding robots to use with grades K-2
Tech Teacher Guide to Introducing Computer Science
Coding Book List
Teaching Students to be Computational Thinkers