Code Combat Review

2020-08-31 00:00:00 +0000

Disclosure: We received free licenses for CodeCombat during the last month of the spring program (when we had to go virtual) and our month-long virtual program this summer. The NJCSSA is extremely grateful to have received these licenses because it doesn’t currently take monetary donations.

What is CodeCombat?

CodeCombat is an online programming platform that teaches computer programming in Javascript and Python. Those languages are chosen because they are relatively easy to pick up for beginners and they are widely used in industry. CodeCombat has gamified programming to be more than just terminal output, but keeps text-based programming instead of blocks like in Scratch. Students play as a hero in a medieval world where they have to defeat enemies, collect gems, and protect their friends through higher levels of game difficulty.

Why I chose CodeCombat

The Coronavirus pandemic turned the world upside down, especially for teachers. They were expected to find a good way to teach online in a very short time, sometimes only in a couple of weeks. At NJCSSA, we had completed about 4 weeks in person, then had to switch to virtual classes in March.

I was looking for a curriculum that would work well online because my custom framework to teach programming only worked in-person. My criteria for a new framework were that it had to be highly structured and it had to have easily available student metrics. CodeCombat checked those boxes.

CodeCombat has a very structured curriculum which lends itself well to online learning. Students can easily see where they are and what they have to do next. The highly structured format allows the students to be more independent because instructors don’t have to always be thinking about pacing and what problems to assign next. The courses operate like a game board where levels are a spot on the game board. Each level has good visual and textual directions so that students rarely feel stuck and are able to mostly work independently. Independent learning is important because it avoids overwhelming the limited teaching staff with too many questions. CodeCombat can also fill in the asynchronous parts of a curriculum.

Student metrics include when the student last logged in, how long it took them to complete a level, what level they were at, and their current code for a certain level. CodeCombat has all of these metrics which makes it simple to keep track of student progress remotely. Viewing how long a student worked on a level is important because it tells instructors how difficult they found the concept or whether they may have been distracted. An instructor can view when a student last worked on a level, which helps to keep track of whether he or she is still at their computer when their webcams are off. Webcams are not always turned on because the video stream can saturate bandwidth of some students’ wifi. Multiple instructors can log into the same instructor account so you can have several TAs for one CS class. I’ve found that students benefit from a smaller student/teacher ratio while online. To help instructors diagnose where students are making mistakes or getting stuck, CodeCombat has the solutions to each level to the right of the student’s current code. This is helpful when the instructor is not familiar with the level, because he or she can still diagnose the issue from looking at the code. (I suggest the instructors use the level tester to try most of the levels before assigning them to students.)

How to get the most out of CodeCombat

I think CodeCombat is one of the best tools to teach introductory CS to grades 5-12, but there are some conditions educators need to be aware of to maximize learning. Sometimes I’ve had students get so engrossed in the game aspect that they forget about coding fundamentals. They try things and finish the level, but they may not understand completely why it worked. For example, why did the coding work with a certain if statement and not another? NJCSSA instructors are required to go over programming concepts with each student regularly to make sure they understand the CS aspects of the curriculum.

Because of our low student/instructor ratio, we were able to do 1 on 1 instruction for cementing coding concepts. An instructor goes to a website called (highly recommended also!) and makes a “multiplayer repl”. A multiplayer repl is a collaborative coding environment. I like to explain it as “the Google Docs for coding where people can edit the same code in realtime”. For example, if the students are learning about while loops, the instructor could write out some code that prints the numbers 1-10 but then have the students modify the code to only print out numbers greater than 5. Doing coding like this helps to show students what coding in the real world tends to look like. We scheduled most of these sessions for 45-60 minutes.

I would suggest CodeCombat for introductory classes and maybe AP CS Principles. CodeCombat works well as long as instructors make the effort to teach students programming fundamentals. CodeCombat is fun for a wide age range, but younger students may struggle with some of the logic. I would say a minimum age is around 12 and maybe slightly younger for advanced students.

Student Reviews

“I like Code Combat because it is both educational and fun. It has helped me a lot through my process in coding.”

  • No Experience, Middle School

“I enjoyed Code Combat! It made learning so much easier for me!”

  • Beginner, College

“I love code combat! It isn’t boring like all the other coding games that are recommended at my school.”

  • Beginner, High School

“CodeCombat is sometimes challenging but also easy. My teachers say I fly past the levels but I don’t feel like I do, it seems pretty challenging to me.”

  • Beginner, Middle School

“It was decently fun, not too hard not too easy”

  • Intermediate, Middle School

Overall Course Statistics:

  • 78% attendance
  • 18 hours of in-person sessions
  • 4 instructors
  • 9 Students

CodeCombat’s New Game

Check out Ozaria also if you have the time.

Share this: