Sphere Engine Problems overview

Sphere Engine Problems module enables automated verification of solutions to programming problems. As part of managing programming problems (via the API or Sphere Engine client panel), it is possible to:

  • create, edit, and manage programming problems,
  • create the content that describes a problem,
  • define test cases,
  • test problems (only via Problems Editor in the Sphere Engine client panel),
  • manage the judging programs (i.e. programs directly responsible for the correctness verification).

Automated verification of the correctness of solutions to problems works thanks to relying on test cases that must be defined when creating a programming problem. The program being verified is repeatedly executed (separately for each test case) and the results of all the executions make up for the final verdict.

The diagram below illustrates the (simplified) way that the program goes through from the moment it is sent as a submission to the execution results:

Submission in Sphere Engine Problems - simplified diagram
Fig. 1. Submission in Sphere Engine Compilers

The service includes:

  • a functional CMS to manage programming problems,
  • a sample library of ready to use problems,
  • RESTful API,
  • web widget integration,
  • LTI integration for learning management systems (LMS).

What can I use it for?

Sphere Engine Problems is perfect for creating:

  • recruitment platforms with the ability to run and evaluate code written by candidates
  • e-learning programming courses with automated judging processes
  • interactive massive open online courses (MOOCs)
  • skill assessment platforms

What are the methods of integration?

There are three methods of integrating with Problems module:

How to write good programming problems?

To quickly grasp the art of writing good programming problems feel free to use our comprehensive manual on the topic - The Problem setter's Handbook.