Hello, I have ±20 students (9-12 years old) in a clan and we meet in online group chat once a week to code together & help out each other. Actually, it’s more like a race, with red vs blue team fighting to get the highest total stars (they get 1 star when completing a level, and 3 stars when they can help their friend to complete a level).
In addition to that, I also set up some presentation slides explaining the programming concepts and give out weekly homework quiz they can (optionally) complete to get more stars. I originally wanted to create a custom level for the students to try out, but as I haven’t mastered the Level Editor yet, I give the quiz where they have to manually code in notepad and then copy paste & forward it to me. I think it’s a good exercise for them to test out their debugging skill, etc. It’s also a tool for me to gauge their level of understanding of the concepts.
The first two quizzes are Dungeon level, they can complete the code and spot the syntax/logic errors just fine. The third quiz is Forest level, where they have to check item type & move to item position. Some are struggling with that, but I’m not really worried because maybe they just haven’t reached that far yet. But when I use the concept of Function in the fourth quiz, none of my students can answer, including those already on Mountain level (!).
Basically I write a function that requires a string input and will output another string. In the body of the function I throw in several if/else clauses that check the input and determine the output. Then I give the input string “abc” and ask “what is the output from this function?”. I even give a flowchart of how the function works as a hint. As no one can answer the question, I wonder if they need more exercise in the Forest level.
Some feedback from my students/few observations from me:
- what is an output of a function? What does “return” means? (she’s already on Desert level)
- what does “var response” mean? I don’t know where to start (he’s already on Mountain level)
- some in Desert & Mountain doesn’t know an output of the function can be saved into a variable
- how does the hero take an item? (he’s in Forest level. I explained about coordinates, movexy, and move, but I think he’s not aware that a function can have more than one input)
- some students in Forest & Desert doesn’t quite understand the usage of && and ||
- a Mountain level student doesn’t know that you can rename the input parameter of a function differently. Such as:
function abc(message) { }
while(true) {
var heymessage = "hey";
abc(heymessage); // he thinks it have to be abc(message), not abc(heymessage);
}
- my student is on Mountain and he doesn’t know how to construct a function, i.e. the difference between hero.chooseTarget = function () { }; and function chooseTarget() { }
- I recently released the fifth quiz, which is a simplification of the fourth quiz, where we use a function with an input and without an output, and still some students went “huh??”
- a lot of students don’t read comments in code… why oh WHY?
- I have to admit, the levels about array might need more explanations… maybe with levels introducing the concept of array, how it is constructed, what is counter, increment, iteration, etc… I particularly doesn’t get the comments guide of Highlander level on Mountain. I just did a trial and error on it
I think more sequential exercises on the Forest would be good. For example the recently released Coincrumbs & White Rabbit level is a good introduction to item position & how to get an item (I remember doing a level in Forest without knowing I can access item.pos.x and item.pos.y as the item’s coordinates). As the Forest already has > 100 levels, maybe you could split the world into Forest A (exercise about functions), Forest B (logical checking, the && and ||), Forest C (pet/event handling), Forest D (coordinates)? Hmm… it looks like it would need a lot of work though?
Does anyone else see the students progressing the levels but not quite understanding the concept? I would love to hear about the concepts your students are still struggling after passing so many levels on CodeCombat.
Thank you