Good While It Lasted, But Way Too Out of Date Now

I just want to offering a huge thank you to the amazing people who created and have maintained this wonderful learning tool. I have used it for more than five years and remember fondly talking with the creators in the beginning about it, which is why I feel compelled now to tell them (and everyone) exactly why we have ceased using CodeCombat permanently and have removed it from our curriculum.

We no longer teach Python at SkilStak. Python was (and is) reasonably good on CodeCombat, despite using mixedCase instead of the standard snake_case.

We now start with JavaScript.

JavaScript on CodeCombat is horribly old. To the point of being downright bad for beginners in comparison. For example, one of the most important concepts to teach beginners correctly is ‘functions as values’, which is the basis of first-class and higher-order functions and the future of concurrent programming. It is paramount students think of functions as just another data type from the very beginning and the assignment operator best conveys that—especially with the new ES6 syntax (which codecademy.com has completely updated, by the way).

REPL.it has largely replaced all the stuff on CodeCombat.com because students can begin real coding with no ramp up and no excuse not to make something of their own. This is way more appealing than even the best game to a beginning coder—especially since REPL.it supports full progressive web apps, game development, and more.

I do not want anyone to misunderstand. CodeCombat.com was an amazing tool. It has just grown obsolete and outdated, which is unfortunate.

The fact that anyone can hack any items they want without even finishing the levels certainly doesn’t help.

Nor does the incredibly bad decision to code all of the CodeCombat base in CoffeeScript, now widely regarded as a full-on joke in the development world—especially with the advent of Babel and ES6. The attraction to being able to code contributions to the code base is completely destroyed based on that fact alone.

I am not angry or bitter or even complaining. On the contrary, given how much I have invested, both money and time, into CodeCombat and promoting it to hundreds I just want everyone to know that others might share my feelings about why they are leaving. At least this way the creators have something to work with even if they are frustrated by any of my statements or disagree with my conclusions.

Thanks again for everything,

Mr. Rob

2 Likes

I wish I had read this sooner. Mr. Rob, you have more tact than I. I can’t complain about the free intro levels or Hour of Code, but here’s my beef…

Students are progressing (for a while) but not learning Python or JS.

I have exhausted everything available on the resource hub. I’ve edited, rewritten and printed out curriculum guides for CS2, GD2, and WD2 because they are lacking cohesion and linearity. I basically completed course level booklets myself. Halfway into the CS2 and GD2 guides, suddenly there are many “Coming Soon” sections that students were used to that I needed to do. And there’s no easily printable resources other than the single page syntax guides which are NOT syntax guides for Python or Javascript, but some blended language that runs on top of CC’s own API. A full (easily printable) glossary of CC’s whole library of python.java_coffeeScript.Whatever() language would at least make some tasks attainable. CC is not learning Python or JS, it’s just learning commands to progress through CC. The kids concentrate on the graphics and if they can progress to the next level. And it’s great that the students can turn auto-complete off, but they can turn it back on. What? The gist of the whole thing is that the idea of learning to code though gaming in sounds great, but in reality, the code needed to run the graphics quickly outpaces understanding and rote practice of learning a certain programming language. In the course Syntax Guide (Python) for example, first thing listed is assigning a function to an object. Was this object predefined? Is the function predefined? Must be, seems like it, doesn’t say… then it kinda goes through loops (a for loop would be a better place to start than a while loop in Python), then defining a variable, and then a totally confusing illustration of “variable usage.” One of the hardest things things for the kids to understand about variables is that when defined in a function it’s a PARAMETER, then when that function is called that PARAMETER (variable) is replaced with an ARGUMENT - like replacing the letters in a formula with concrete numbers. This they get. Does it help the Hero defeat the Ogres? Maybe… can they apply it in CC? Not barely.

I’m afraid I disagree, unless the computer science course is very different from the free to play version.
I also don’t know what the Syntax Guide is, but regardless, if you find the computer science codecombat course isn’t working you and your class you could always go to the free version.
I’ve found, after doing pretty much all the levels in codecombat, that I have a very good understanding of python (I did the levels in python) and a more basic understanding of JavaScript, just from doing the python.
I’ve just started a two year GCSE (I’m not sure where you’re from so I’ll assume you don’t know what these are: they’re an exam which you take when you’re 16, in the UK) course in computer science and half of the exam is python programming and the other is computer theory and architecture.
After doing codecombat, all the python is the exam is quite easy for me and I don’t think I could do it half as well, or at all, without codecombat.
This is just one example of how codecombat has helped people with real life python programming.
And also codecombat (especially towards the mountain and glacier levels) helps with problem solving and creativity faced with difficult challenges.
Many levels have no right answer, which I think is an important lesson to learn, whatever you’re doing.

One thing I would say is that you (as the teacher), if you want to help the students come from the codecombat programming to the python programming, which are the same in syntax and formation, you would have to make it clear that some things that are used in codecombat can be used in python (if while True, for etc.) but that others like hero.say() or hero.attack(), either do not exist or could be replaced. For example:
hero.say() = print()
I know this isn’t exactly true, but it was helpful for me none the less.
Rob’s post was a while ago as well, maybe things are different, because I can’t see what he’s talking about.
:lion: :lion: :lion:

1 Like

Hey guys, I want to add something positive to this thread. I had the unplanned opportunity to conduct an unscientific study in a Summer camp last year. Half had been doing CodeCombat for about a year, the other half were brand new to coding. We coded a game in Phaser3 (JavaScript). The group who had seen CodeCombat might not have been able to respond when asked to create a “function with parameters” but they almost never had any syntax issues. The others were struggling constantly with indentation, dangling curly brackets, missed commas, and spelling (I never teach semicolons for javascript). Conclusion: CC is great for syntax specifics, just not concepts. In fact, code.org is great at concepts with videos and everything, but horrible on syntax. Combining them might be the solution for some. In my case, I chose to teach them concepts as we go and jump right into making a Phaser3 game. They certainly do not understand what a class or API is, but at least they end up with a playable game at the end and I can interject something about concepts as much as they will listen. It is a very messy teaching method but it works (for the right kind of learner I suppose). My biggest gripe with CC (or any tutorial) is the constant use of var, it is so very bad. I do teach it, but only after learning let/const as everyone should learn.