- 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
We will start with the naming conventions used in this handbook. This glossary provides references for all chapters, so please consult it if something is unclear.
Online Judges allow for automated evaluation of solutions to programming problems. Prominent examples of such systems include Sphere Engine Problems and Spoj (created by Sphere Research Labs).
Programming problem (or simply “problem”)
A challenge designed to be solved by a computer program, which can be defined in the form of a fictional story based on a common real-life scenario or as a purely mathematical statement.
It is a fundamental element of the Sphere Engine Problems service, consisting of:
- description - text explanation of the nature of the problem along with input/output specification
- test cases - data used for correctness verification (details below)
- master judge - component responsible for setting the final result and score (details below)
Problem setter (also “author”, “tutor”)
The person who creates programming problems.
Problem solver (also “user”, “student”)
The person (usually programmer, developer) who tries to solve a programming problem.
Submission (also “solution”, “user's program”)
The source code, potentially a correct solution to the set programming problem.
Short information - an answer - regarding the result of the submission execution. This verdict can be one of the following:
- wrong answer
- time limit exceeded
- run-time error
- compile error
The set of data (usually a pair consisting of the input file and the model output file) used for verification of the user's submission. It contains additional components used in the verification process:
- time limit - the maximum time allowed for the submission executed against the data from the input file
- test case judge - the program that analyses the output generated by the user's solution (usually comparing the user's output data with the model output file)
The program responsible for summarizing the results of individual test cases.