This is a demo instance ! It is made available for you to try out the INGInious features and is reset every hour. You need to register to use the demo. This is absolutely free of charge. Once you've registered, you can activate superadmin mode to change your rights or create specific content. Some restrictions however apply: max. 2 parallel jobs, hard running time limit set to 15 sec, only MCQ and default grading evinronments, no access to the Internet.

Disclaimer: We are not responsible for inappropriate content that may appear during a demonstration time slot.

Automatic code grading

Assess programming assignments
using your own tests in a secure environment


Fully customisable feedback

Assess anything, instantly, and provide a fully descriptive feedback to your students


Simple interface

Code, press submit, and receive feedback. Simply.

Free and open source, pluggable with edX, Moodle and other LMS!

Designed with usability, scalability, and security in mind



Secure

INGInious runs untrusted code made by your students in completely jailed environment.

Customisable

INGInious can run any executable code, from C++ to Scala programs, including custom and exotic ones like Oz or even the Shakespeare Programming Language!

Integrable

INGInious can be used side-by-side with your LMS, via the Web App, but can also be directly integrated within, via LTI.

Performance

New grading jobs start in milliseconds, and grading is as fast as it was made on your own computer. INGInious is also scalable horizontally.

Technology



INGInious uses Docker to start jailed environments to test the code in milliseconds. Docker provides "containers", which can be seen as lightweight virtual machines, that can be fully customized using a very simple method. It allows to run anything you want, as long as it is runnable on a Linux machine.

Here is an example defining a new environment with Java 7, in two lines:

  FROM    ingi/inginious-c-default
  LABEL   org.inginious.grading.name="java7"
  RUN     yum install -y java-1.7.0-openjdk java-1.7.0-openjdk-devel ant ant-junit bc
  

INGInious is written in Python 3. The simplicity and expressivity of Python helps to keep the code readable and easily extensible.

Thanks to the usage of MongoDB as database manager and Docker, INGInious instances can be blindly duplicated and linked, allowing effortless horizontal scalability. From an on-site course with 50 students to a MOOC with 10.000 students, INGInious will be able to handle the charge.

INGInious supports the LTI specification, allowing you to integrate it directly inside your Learning Management System (LMS) that is a LTI Consumer.
This includes Moodle, edX, Coursera and many other LMSs.

INGInious comes with two frontends: a simple web application that is a mini-LMS focused on code grading, and a frontend for integrating with your LMS. But INGInious is also a library, that can be used in other applications to remotely grade code using Docker and the containers made for INGInious.

Features


Common features

  • Simple and easy-to-use interface
  • Customized environments, easy to create
  • Customized grading scripts
  • Simple but powerful API for grading
  • Fully customized feedback
  • Code box questions
  • Multiple choice questions
  • File upload questions
  • Syntax highlighting
  • Submission storage
  • Distant Docker instances
  • Repartition of charge among multiple Docker instances

Web App

  • Registration with and without password
  • Access Control List
  • Classrooms and groups of students
  • Statistics for your tasks and students
  • Plug-in system
  • REST API
  • Studio to create new tasks in your browser
  • BlueJ plug-in

LMS Integration

  • Supports LTI 1.1
  • Able to upload the grade of the task to your LMS
  • Compatible and tested with edX, Moodle, and many other LMSs

Made with at Université catholique de Louvain

Used by more than 10 on-site courses

The INGInious Web App is currently in use in 11 on-site courses, that sums up to more than 180 tasks and 500 students.

This includes courses that use lightweight tasks in Java, such as Computer Science 1, to course with really heavy tasks such as Advanced algorithms for optimization (in Scala) and Artificial Intelligence. The course Computer systems I grades low-level C code with INGInious.

Tried and approved by more than 7.000 MOOC students

INGInious is also used on the computer science MOOCs that the UCL runs on edX:

Used since 2014, INGInious has successfully ran the exercises from the 7000 students that followed the courses. These courses use an exotic language made for learning called Oz.

Download and install INGInious

Free and open-source

INGInious is completely free and open-source, under the AGPL license.

GitHub repository