Why should we learn coding? All technology that is used in the world has code as the driving force. Students are more engrossed in technology than ever. They’re active on social media or glued to the latest video game. The issue is that our students are simply acting as consumers. How can we transition them to become creators of their own applications? How can we empower students to engage in self-directed learning?

By learning essential programming skills, students will gain significant computational thinking capabilities. They will learn how to analyze problems, break them down into smaller chunks, and create multiple solutions. They will learn to collaborate with peers, communicate their creativity, and gain a broader understanding of the impact coding has on the world.

Recommended Programming Applications

This article shares four coding applications I’ve found to be effective at providing self-guided learning experiences in my classroom. There are a vast number of coding applications out there. One can become easily lost in the forest of options if I were to list them all. I am hopeful that this blog will provide educators enough knowledge to effectively choose which applications they want to implement in their own curriculum.

1. Lightbot: Introduction to Programming Concepts

When I was ready to introduce coding to my students, even those that were not in my programming class, the first activity I had them engage in was Lightbot. Lightbot is an application that is featured as a part of the Hour of Code activities and is designed to serve as a one or two-hour lesson. Lightbot engages students in a game that tests their logic and problem-solving capabilities. It introduces the most basic concepts of coding: iteration, procedures, and loops. At first, my students thought the game was too childish, but they soon realized their own struggle to solve some of the more complex problems. This game is easily accessible on the computer and all major mobile platforms. I have used this program as a recruiting tool to expand my rapidly growing Computer Science program.

2. Scratch: The Block-Based Coding App

After Lightbot, the next logical step is to introduce block-based programming to the students. Scratch is a great program for introducing coding concepts to students. First, Scratch is free. Second, it is known as a block-based program because students literally drag and drop blocks of instructions in the code editor. There is very little typing involved. Scratch is simple, but it can become complex if a student really gets in-depth. During my first year of teaching Computer Science, I had my class complete a project with Scratch to create a visual story or a game. Half of my class chose to create a game while the other half chose a story. The students truly valued the openness of the project, and they enthusiastically created their own applications.

I believe Scratch is one of the easiest applications to implement across the curriculum. Also, Scratch contains a host of freely-accessible, community-built programs that can be used in lessons. As an educator, you can even create your own content or quiz using Scratch. Below are a few examples of projects utilizing the program across the curriculum:

  • ELA – Creating a visual poem; book report
  • Math – Probability (dice rolling); fractions game
  • Science – Formula balancing; report on the brain
  • Fine Arts – Creating music; animated drawings
  • Social Studies – Historical biography; quiz game

Eventually, the students grew weary of Scratch and are ready for the next challenge. This is the point when I introduced CodeCombat that gets students more engaged in typing code.

3. CodeCombat: The Coding Game 

CodeCombat introduces students to typing code instead of dragging and dropping. They first choose from several characters and are then guided in the lesson content through gaming “quests.” CodeCombat offers a fully-planned curriculum and a grade book. Students can work through at their own pace. The programming languages taught are Python, JavaScript, and HTML. If a student struggles through a level, they are automatically assigned additional practice to complete. Meanwhile, those students who prefer to move at a quicker pace can jump ahead to more challenging levels.

The first set of levels is offered in a free version. I have used this free version to introduce coding to my students in both my programming and non-programming classes. The paid version promises many game development activities, ranging from beginners to more experienced coders. CodeCombat was recently endorsed by the College Board for their Computer Science Principles course. I am hopeful to be able to explore their setup for this curriculum one day. Even though CodeCombat is a wonderful resource, I utilized another coding application known as CodeHS as the primary learning tool for my students.

4. CodeHS: The Individualized Learning Platform

CodeHS is the current driving force in my ever-growing Computer Science program. Like CodeCombat, there are free and paid versions of this self-contained platform. Students can learn a variety of coding languages, including JavaScript, Python, HTML, and Java. The CodeHS paid version provides educators with curriculum, professional development, and an abundance of tools and resources to create an engaging and student-empowered classroom. CodeHS is also College Board Certified for their AP Computer Science Principles course. There is also room for growth for both educators and students as the program offers the AP Computer Science Applications course and additional preceding courses. This is the next step in building my Computer Science program to engage my advanced students further.

My students have loved being able to work at their own pace. They have enjoyed building a website, creating pixel art, and learning the basics of cybersecurity. They love that the content is fully open and that they can perform many trial and error tests. My students were recently actively engaged in creating an application for their AP tasks, and I had the privilege of acting as a coach in the classroom where I actively monitored progress and provided aid where needed. I even had one student excel beyond the scope of the course. He gleefully pressed forward into his own personalized learning.

Examining the Results of These Coding Applications

Each of these programming applications has been a great asset as I took charge of the Computer Science content area on my campus. In the 2016-2017 school year, which was my first year of teaching Computer Science, my total number of students was eight. This number doubled during my second year. As for the upcoming 2018-2019 school year, I am already expecting the number of students to nearly triple in size based on current enrollment data.

I warn my students that coding can be their worst nightmare, but also their greatest addiction. There is much to learn with coding, and I am hopeful that my Computer Science program continues to grow. I truly believe that the students who take a programming class will walk away with more than just a good coding skill set. They will walk away with the knowledge and understanding that they are empowered through coding and are capable of tackling their own learning experiences.

This is a guest blog by James D Turnage. James is a Computer Science and IT teacher formerly at Ball High School in Galveston ISD who will begin teaching Computer Science and Video Game Design at Clear Falls High School in Clear Creek ISD in August.