Coding assessment

Grade code against your own tests, as learners hand in

The Skill Site runs each learner's code against the tests your instructors write and scores it after they hand in, usually within minutes, in 12 languages. Learners see their score. Staff see every attempt, the code behind it and how it was written.

Last checked

How does the autograding work?

  1. An instructor writes a question: what to build, the language, any starter code, and tests. Each test is an input and the output expected, or a few lines of test code that call the learner's functions.
  2. Learners write their answer in the browser, with the tests you let them see in front of them. They practise beforehand in lesson code blocks, which run.
  3. When they hand in, every test runs on our servers within the question's time limit. Output is compared line by line, ignoring spaces at the ends of lines.
  4. The answer scores the points of the tests it passed. Learners see their score, and how many tests passed once you let them see answers. Staff see the answer, the score and each test's outcome.

Which languages can you grade?

Python 3, Java, C, C++, JavaScript (Node.js), TypeScript, C#, Go, Kotlin, PHP, Ruby and Rust. Learners can also run Python, Java, C, C++, C#, F#, PHP and Ruby in lesson code blocks for practice.

  • Python 3
  • Java
  • C
  • C++
  • JavaScript (Node.js)
  • TypeScript
  • C#
  • Go
  • Kotlin
  • PHP
  • Ruby
  • Rust

What can a question include?

Up to 50 tests a question, in any mix of these.

  • Hidden tests

    Mark any test hidden. Its input and expected output never reach the browser, so learners cannot write code that only passes the tests they can see.

  • Points per test

    Give each test its own points. An answer that passes some tests earns those points, so partial work gets partial credit.

  • Files for the program

    Give the program up to eight text files to read, such as a CSV of data or a configuration file, written where the code runs.

  • Answers in several files

    Mark a file as one learners edit. They change it beside the main file, hand both in, and both are graded together.

  • Test code

    In Python 3, JavaScript (Node.js), TypeScript, PHP and Ruby, a test can run your own code after the learner's, to call their functions and check what they return.

  • Notebook answers

    Ask a Python question that learners answer in a notebook. The notebook is graded like any other answer, against your tests.

Practice, graded quizzes and exams

Every quiz has one of three modes, and mixes coding and multiple-choice questions.

  • Practice: in a lesson, untimed, with as many attempts as a learner wants.
  • Graded: counts towards progress, with an attempt limit and a pass mark if you set them.
  • Exam: for a batch, with a time limit and an opening and closing time that the server keeps, not the learner's browser.

Questions and answer choices can be shuffled for each learner. Each attempt keeps the settings it started under, so editing a quiz never changes past results. You choose when learners see the answers: after their last attempt, after the quiz closes, or never.

What do staff see?

  • Results for each batch quiz, with every learner's best attempt and the tests it passed, exported as CSV.
  • Each attempt's code and a replay of how it was written, with pastes counted, and a check that pairs answers that look alike. See academic integrity.
  • A per-learner report for an employer client, with quiz results, attendance and assignments. See for apprenticeship providers.
  • Optional AI hints on wrong answers, never in exams. See AI hints.

Questions and answers

Can learners see the hidden tests?

No. A hidden test's input and expected output stay on the server. Learners see their score; staff see every test and its outcome.

What if the code runner is busy when everyone hands in?

Answers wait in a queue and are graded in the order they were handed in. A busy runner delays a grade; it never marks an answer wrong. Each answer gets up to 10 minutes of running time across its tests.

Can we grade multi-file projects or unit-test suites?

Partly. A question can give the program up to eight files and let learners edit the ones you mark, and test code can call their functions. There is no unit-test framework such as pytest or JUnit, and learners do not hand in a whole repository.

Who writes the questions?

Your own instructors and admins, in your organisation's question bank. Only the author or an admin changes a question. Staff can also ask AI for a first draft with tests, which is checked against its own worked solution before they edit it.

Do learners need to install anything?

No. Learners write and hand in answers in the browser, and run code in lesson code blocks and notebooks there too, so a learner on a locked-down work laptop can take part.

Does coding assessment cost extra?

No. Graded coding questions are in every price band, in the free trial and on the free plan.

Try it with your next cohort

Start a 30-day free trial with up to 10 learners and no card, or tell us what you teach and we will show you The Skill Site with your own exercise.