- Sphere Engine overview
- API integration
- API integration
- E-learning platforms
- Problem setter's handbook
- Problems archive
- Programming languages
- Submission streams
- Disk operations
- Multi-file submissions
- Client libraries
- API 4 vs API 3
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:
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:
- through API
- using the Problems Widget
- using the LTI tool to integrate with Learning Management Systems
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.