How do you grade students for their work in Code Combat?

I teach AP Computer Science. This is my first year using Code Combat. I wanted to reach out to other teachers. How are you grading your students for their work in Code Combat? Are you using the answer key? I give them credit for doing it and that’s it. I’m stuck on how to do this. HELP!

I’m just a random kid but pretty sure you just assign levels to them and if they finish the levels than they pass but don’t take my word for it

I’m not a teacher, but you could grade them by the length of their code (efficiency) and how well they follow code conventions (commenting, indentation even in languages like JS and C, etc.)

But some levels basically only have 1 intended way of completeing them

Then if they all pass, they’ve all done equally well.

Plus a lot of levels (except maybe the first few in the dungeon) have multiple different - albeit sometimes only slightly so - methods of completion.

1 Like

I also am not a teacher (I don’t think there’s many teachers on here) but I don’t know if codecombat is meant for an AP course. I started doing it for my computer class in 8th grade.
The way my teacher graded was by assigning certain levels, and give an assignment on Canvas that had us explain what our code was doing.

1 Like

Apart from just checking the code passes you could add or subtract marks for code quality. No need to be too strict depending on the age of your kids but when I was a tutor a couple of decades ago I saw code like this that passed the automated checks, but not the sniff test

def addition(a, b):
   c = a + b

total = addition(1,2)
print("total = ", c)

Something like that anyway

2 Likes

Codecombat is something you would do on the last day of school or something, but probably not an ap course.

I wouldn’t recommend teaching AP CSA using CodeCombat, as an AP CSA student myself that just took the exam two days ago. AP CSA uses java as the programming language.

Firstly, the game does not have a fully developed java language built. There are no constructors, no ArrayLists, no objects, no dimensional arrays and etc.

Multiple methods are even incorrect, like they use push() instead of add(), arrays can even change value after they are initalized. There are just a lot of limitations and the java in CoCo is just a mixture of half javascript and half ripoff java.

Also, level-based games are not really a practical support for a language like java which is class-structured, where you usually write multiple classes for max efficiency. In CoCo, you only have single levels that you write in just one class.

AP CSA has a lot of questions based on inheritance, and multiple classes, here is one of the FRQ questions for a clearer example:

/* Class One */
public class Location {
    private int theRow;
    private int theCol;
    public Location(int r, int c)
    {
        theRow = r;
        theCol = c;
    }
    public int getRow()
    { return theRow; }
    public int getCol()
    { return theCol; }
}

This is the class where you are tested on, by implementing in more code:

/* Class Two */
public class GridPath {
    private int[][] grid;
    /**
    * Returns the Location representing a neighbor of the grid element at row and col,
    * as described in part (a)
    * Preconditions: row is a valid row index and col is a valid column index in grid.
    * row and col do not specify the element in the last row and last column of grid.
    */
    public Location getNextLoc(int row, int col)
    { /* to be implemented in part (a) */ }
    
    /**
    * Computes and returns the sum of all values on a path through grid, as described in
    * part (b)
    */
    public int sumPath(int row, int col)
    { /* to be implemented in part (b) */ }
}

This is a more significant example by a REAL question tested this year. You can see most of the questions in one class relate to another class, in this case is Location
CodeCombat levels don’t have multiple files, in which it doesn’t help in CSA.

1 Like

I say that because its literally a test question. To note that java isn’t a language like python where you just write everything in one .py file. Multiple classes serve each other well in java, the structure is completely different.

1 Like