Tasks, or activities, or assignments, form the course content. Each INGInious task is composed of a problem set graded at the same time (run on a predefined environment) and possibly depending on each other. A task is linked to a course and is identified with a course id/task id pair.
Tasks can be created by course administrators by specifying a new task id on the Tasks page.
Tasks are entirely editable from the micro-LMS (webapp). However, these parameters are stored in a
task.yaml, in the task-associated folder.
Except the name and context information, the task basic settings are mainly used by the micro-LMS (webapp). These settings include:
- Submission mode : If you allow your students to work in group/team, you need to configure the submission mode accordingly.
- Submission storage : This option limits the size of the submission history.
- Submission limit : This option is used to restrict the number of submissions students can make per time period.
- Evaluation submission : This option provides download facility for the administrator by tagging a submission as the reference one. Note that submissions are tagged just after execution.
- Accessibility : Some tasks may be made accessible for a short amount of time only if some deadline is applicable.
INGInious runs the test suite in a container, an operating system component allowing resources isolation in a faster way than with virtual machines.
This is further simplified by the usage of Docker, an open-source API for creating and defining containers, also providing disk image abstraction, making the definition of additional INGInious environments easy for the administrators.
mcq environment used for multiple_choice questions, all the INGInious environments will start a container when launching the test suite. These containers can be preconfigured with the following parameters:
- (Hard) timeout : The timeout value is the maximum CPU (computation) time allowed for the task. Once this threshold is reached, the container is shut down and the student is returned a Time out feedback. The hard timeout is the maximum wall (human) time allowed for the task.
- Memory : This is the maximum amount of RAM the container can allocate. If this value is evaluated as too high by the INGInious agent, it will warn you at the container launch.
- Output limit : This is the maximum amount of data that can be output from the container. This parameter is useful if you need to print student generated data on feedback.
- Grading environment : The grading environment is defined by the provided software set.
- Internet connectivity : If, for some reason, you need to access the Internet during the tests, check this option is activated.
Different kinds of problems can be displayed on the INGInious task page:
- Code : This box displays an editable text area with syntax highlighting and automatic indentation.
- File upload : This box provides a file upload facility, if several files have to be submitted in a single archive for instance.
- Match : This box displays a small input field used for matching student and expected result.
- MCQ : This box displays a multiple choice question, with the ability to select multiple valid answers, and displaying feedback for each chosen option.
Match and MCQ questions can be automatically graded using the
mcq environment that will use the feedback defined using the task editor. However, all problem inputs can be fetched from a container-based environment.
Task files are mainly used for launching the tests in container-based environments. Those tests will be started using the
run file. This file must be placed at the task files root folder and be executable (either script or binary).
Two special subdirectories can be created in the task files folder:
/public: This folder is publicly available from the frontends and can be used to share some initial documents, implementations, or skeletons with students. To give access to those file, place a link to
taskid/filepathinside your task description.
/student: This folder is used in combination with the
run_studentAPI to provide another level of isolation while running the tests. More information about this folder will be provided further in this tutorial.
Task and problems context descriptions can be formatted using reStructuredText syntax and \(\LaTeX\) syntax for mathematical expressions. Please refer to both their documentation to find out the full set of features.
\(\LaTeX\) expressions can be inserted via the following snippet:
This is a :math:`\LaTeX` expression !
Syntax-highlighted code blocks can be inserted via the following snippet and CodeMirror language identifiers:
Copy and paste the code below: .. code-block:: python print "Hello World!"
Let's take a tour
Browse the INGInious task edition tabs to discover the full set of features. Once you've made that, answer to the small MCQ below to check your understanding and learn more.
|Author(s)||The INGInious authors|
|Submission limit||No limitation|