Sphere Engine Client and Developer FAQ


Components of the Sphere Engine system

What is the difference between Sphere Engine Compilers and Sphere Engine Problems?

The Sphere Engine Compilers (SEC) module allows you to run computer programs and retrieve the results of their operation (e.g. generated output data). read more

The Sphere Engine Problems (SEP) module allows for automatic verification of the correctness of the solutions to programming problems. The features of the modules include, among others: Problems Manager enabling the convenient and efficient creation and testing of programming problems. read more

What should I choose, Sphere Engine Compilers or Sphere Engine Problems?

If your project only requires running computer programs (e.g. sample source codes enriching a programming course), Sphere Engine Compilers will be the right choice.

If you need to evaluate programs (e.g. solutions to problems integrated with the recruitment platform), it is recommended to use the Sphere Engine Problems module.

More information on the differences between the modules of the Sphere Engine system can be found in the comparative table.

What is the Sphere Engine Compilers Widget?

The Sphere Engine Compilers Widget (SECW) is a method of integrating the Sphere Engine Compilers module through a widget embedded on a website. read more

What is the Sphere Engine Problems Widget?

The Sphere Engine Problems Widget (SEPW) is a method of integrating the Sphere Engine Problems module through a widget embedded on a website. read more

What is Sphere Engine for Education?

Sphere Engine for Education is a method of integrating Sphere Engine Problems with LMS systems using the LTI standard.

Integration with an LMS allows you to use the Sphere Engine service in a way analogous to integration through the Sphere Engine Problems Widget.

You can learn more at education.sphere-engine.com and in the documentation.

Are there any sample programming problems in the Sphere Engine Problems module?

YES - the Problems section of the Problems Manager available to logged in users of the Sphere Engine system (Menu > Problems > Editor) allows you to filter the problems list by pressing the Shared problems button. The displayed list contains sample programming problems that can be used directly in your system or for testing purposes.

The set of sample programming problems can be expanded for commercial clients. To learn the details of our offer, feel free to contact us at hello@sphere-engine.com.

Integration

Is my system compatible with the Sphere Engine API?

The Sphere Engine API is based on the RESTful architecture. This means that any technology that allows for HTTP requests is fully compatible with the API.

How does integration with the Sphere Engine service work?

Both Sphere Engine modules (i.e. Compilers and Problems) allow for integration in one of two ways:

  • RESTful API,
  • web widget.

In addition, the Sphere Engine Problems module enables integration with LMS systems using the LTI standard. You can learn more about this method on education.sphere-engine.com.

Can I use Sphere Engine offline, on my premises?

YES - if you are interested in an independent installation of the Sphere Engine system running on your servers, contact us via e-mail hello@sphere-engine.com.

Which Learning Management Systems (LMS) does Sphere Engine for Education support?

Sphere Engine for Education is compatible with all LMS systems that support the LTI standard, including: Canvas, Moodle, Blackboard, Schoology.

If you are not sure if your system is compatible with Sphere Engine for Education, please contact us by email at hello@sphere-engine.com.

I would like to integrate with Sphere Engine without much interference in the existing system, is it possible?

YES - integration using the web widget in the simplest variant is limited to adding short snippets of HTML and JavaScript code.

More on this subject can be found on dedicated documentation pages:

Can I share the API with the development team without giving away the access data to the Sphere Engine account?

YES - access to the Sphere Engine API is implemented using the so-called access tokens. After logging in to the Sphere Engine account, the tokens management section (Menu > API Tokens) allows you to generate any number of access tokens that can be passed to your development team involved in the integration of the project with the Sphere Engine API.

Is it possible to remove the Sphere Engine logo displayed in the widget?

YES - to delete the Sphere Engine signatures, please contact us via e-mail athello@sphere-engine.com.

Features and limitations

What programming languages does Sphere Engine support?

Sphere Engine supports the majority of popular programming languages, including: C++, C#, Go, Haskell, Java, Kotlin, Node.js, PHP, Python, Ruby, Scala or Swift.

A separate part of the documentation contains a complete list of supported languages.

How long does it take to run a program in the Sphere Engine system?

There are multiple factors that affect the program's execution time, for example:

  • the programming language,
  • the complexity of the program,
  • the size of input data,
  • time limits,
  • number of test cases (only Sphere Engine Problems).

A typical submission is executed in a few seconds, with long execution times being almost always associated with the complexity of the program and not with the infrastructure.

What is the program execution time limit?

In the case of the free plan, the maximum duration of the program's execution time is 3 seconds. For commercial customers, the limit increases to 60 seconds.

In case of specific needs for commercial clients, we also offer a total removal of restrictions on the duration of programs execution time.

Note: the limit for execution time applies only to running the program. Each time the submission is executed, a number of routine operations are also performed (e.g. program compilation and preparation of the runtime environment), which affect the total time required to run the submission, but are not taken into account in the program's execution time limit.

Is it possible to execute a program consisting of multiple files?

YES - using integration through RESTful API it is possible to run multi-file projects. read more

What is the limit of submissions (programs) sent to Sphere Engine?

The limit of the number of submissions depends on the method of integration and the type of subscription (in the case of commercial customers).

Using the web-based widget, the number of submissions is unlimited. In the case of integration through the RESTful API, the limit can vary (including - for commercial clients - unlimited!).

What is the limit of the number of test cases in a single programming problem in the Sphere Engine Problems module?

The maximum number of test cases is 16. If the test case construction is correct, this number should be sufficient for all use cases.

The Good test case design appendix for the handbook for problems creators explains how to create correct and valuable test cases for problems.

For commercial clients, it is also possible to increase the maximum number of test cases.

What is the size limit for test case files (e.g., input data and reference output data)?

Each file with test case data can be up to 64MB in size.

For commercial clients, it is possible to increase the limits on file size.

Is it possible to provide support for a new programming language?

We regularly expand the library of supported programming languages, very often at the clients' requests. All suggestions are considered individually. In such cases, please contact us via e-mail at hello@sphere-engine.com.

Is it possible to provide support for an additional library available for a programming language?

We regularly enrich the supported programming languages ​​with additional libraries, very often at the clients' requests. All suggestions are considered individually. In such cases, please contact us via e-mail at hello@sphere-engine.com.

Is it possible to expand the Sphere Engine system with additional features?

We regularly expand the capabilities of the Sphere Engine system, very often at the clients' requests. All suggestions are considered individually. In such cases, please contact us via e-mail at hello@sphere-engine.com.

Is there a limit on the number of programming problems that I can create as part of the Sphere Engine Problems module?

In the case of the free plan, the maximum number of problems is 100. For commercial customers, the standard limit increases up to 1000 problems.

In the case of higher demand, for commercial clients, it is possible to remove the limit on the number of problems.

Is Sphere Engine a platform where I can organize a programmers recruitment, contests or hackathons?

The Sphere Engine Problems module provides all the tools required to create your own competition or recruitment platform for programmers, but it is not designed to support such an event itself.

If you are interested in a ready-made platform dedicated to these types of use cases, please visit sphere-contest.com. The Sphere Contest service uses the Sphere Engine system and has been designed specifically to create programming competitions and automate recruitment processes in the field of IT.

Other

How does the Sphere Engine Problems module verify the correctness of a submission?

One of the most important components of a programming problem are the so-called test cases. In the most common use case, test cases consist of input data and reference output data. The submitted program is executed for the input data of the test case and then the output data it generates is compared to the reference output data.

A detailed description of the processing of submissions in the Sphere Engine Problems module is described in the chapter Submission flow of the handbook for problems creators.

How is the score of a solution to a programming problem determined in the Sphere Engine Problems module?

For each test case, the so-called test case judge sets a partial score. Then, after running the program for all test cases, the so-called master judge summarizes the partial results and determines the final result.

Both the test case judge and the master judge operate in a way designed by the author.

Note: Among the built-in components of the Sphere Engine system, there are both test case judges and master judges. Usually, the use of built-in components is sufficient, i.e. the implementation of your own judging programs is not required.

Example: Master judge Score is % of correctly solved sets gives a score proportional to the number of correctly solved test cases. For a problem with five test cases, a user's submission that correctly solves three test cases will receive a final result of 60, which should be interpreted as 60%.

How long are the submissions and execution results stored on the Sphere Engine servers?

All data concerning the submission (e.g. the source code, data streams) is stored on the Sphere Engine servers forever.