Track student progress in classroom setting

I am a high school CS teacher and I would like to use CodinGame in my classroom to make things a little more exciting. Is there a way I can easily track my students progress? I would like to assign them puzzles from week to week as either grades or extra credit. Thanks.


Interesting idea. I wish I had such facilities to play with in my old school days…

In Compete > Leaderboards you can view anyone’s performance. Perhaps it is what you want.
Ask your students to fill in the correct “school/company” name to make sorting easier.

1 Like

I’m high school teacher as well :slight_smile: Maybe this will help you a bit. I wrote a little google script that imports students XP to a spreadsheet. This is my script:

function doPost(id) {
  try {
    const apiUrl = "";
    const payload = [id];
    var options = {
      "method": "POST",
      "contentType": "application/json",
      "payload" : JSON.stringify(payload)
    var response = UrlFetchApp.fetch(apiUrl, options);

    return JSON.parse(response).success.codingamer.xp;
  } catch(err) {
    return 0;

function reevaluate() {
  var sheet = SpreadsheetApp.openById('<your spreadsheet id>').getSheetByName("<your sheet name>");
  var startRow = 2;
  var endRow = sheet.getLastRow();
  var dataRange = sheet.getRange('B' + startRow + ':B' + endRow);
  var data = dataRange.getValues();
  for (var i in data) {
    var row = data[i];
    var userId = row[0];
    const position = startRow + parseInt(i);
    sheet.getRange('C' + position + ':C' + position).setValue(doPost(userId));

Just replace

  1. <your spreadsheet id> with spreadsheetid (check url of spreadsheet after /project/ path)
  2. <your sheet name> by literal name of sheet of your spreadsheet
  3. startRow = 2 ignores first row in spreadsheet (header)
  4. codingame id is parsed from column B (you can find your id in your CG profile url)
  5. codingame XP is stored to column C