Skip to content
This repository has been archived by the owner on Sep 30, 2020. It is now read-only.

How to assess a project

Cristian Gonzalez edited this page Mar 9, 2018 · 16 revisions

How to assess a project

Introduction

Project evaluation is possible throughout the project upload subproblem type. As well as code multiple languages subproblem it can be added to a specific task. It manages the same parameters such as time limit, memory limit, and output limit. Additionally, the grader tab allows to create the subproblem run file dynamically.

Project upload is supported for the following languages:

  • Java
  • C/C++
  • Python

Do not forget to select the multiple_languages container to be capable to judge projects with the languages mentioned above.

Upload a project

A .zip file must be submitted to assess a project and depending on the selected language there is a convention to submit a project onto the platform, these conventions are described for each language bellow:

Java

Submissions for projects written in Java are supported for 1.7 and 1.8 JDK versions. To submit a Java project, the zip file containing a src folder and a lib folder must be provided.

  • src: this is the folder where all the written code must be located, this includes a Main.java file which starts the program execution.

  • lib: this is the folder where all the dependencies used must be located, this includes .jar files and .class files.

Note: Do not compress a folder containing the src and lib folders, instead it, select src and lib folders and compress them into a file zip file. See the picture below and download the Java example for a better understanding.

C/C++

GCC and G++ 4.8.5 are already installed. To submit a C/C++ project, a zip file must be provided. This zip file must contain the source code and dependencies in the way the user likes, thus, a Makefile ( Go to How to create a Makefile) has to be submitted within the zip file. The makefile is in charge of compiling the project and execute it.

Download and see the C++ example for a better understanding.

Python

You can submit a project in either Python 2.x or Python 3.x. The only requirement is having a main.py script which would be the entry-point for the application. You can include as many folders and sub-folders as you need. However, that the main.py script must be put in the root of the compressed file.

Python2 zip example

Python3 zip example

Remember that the zip file must contain directly the main.py file. That is to say that you have to be careful when you are compressing the folder. Be sure to compress the files inside the folder so that when INGInious decompress the file the file it has access to the elements without going trough intermediate folders.

Compare

Incorrect.zip (Left image) was compressed from outside while Python2.zip (Right image and the correct one) was compressed from inside the project folder. In other words, once the project is decompressed, we should have a file structure as if we were inside you project folder (not outside).

Clone this wiki locally