Skip to main content

Hackinscience

HackInScience is a free and open source learning website focused on practice. Each exercise gives students automated feedback, so that they can understand their own errors, correct them, and continue learning. Around this core idea we implemented a few things to help teachers in classrooms. Centred around the notion of "teams," we allow a teacher to name a group of students in the platform, thus allowing the teacher to follow their progress in real time. The initiative aids teachers of schools and universities by providing them with an "admin" panel that helps to track their students’ progress. It is also aimed at learners by providing them with incentives inspired by gamification, like a leaderboard, teams, and a team ranking page.

The core idea is to provide a correction bot along with each exercise. The bot works closely like unit tests, but instead of just returning "Failure" or "Success" messages, the bot explains the mistakes, in addition to giving hints and pointers, so that learners are never stuck in their learning path.

While implemented in Python, and while HackInScience only exposes Python exercises, the system is language agnostic – it has been used to correct C and Rust code. But it could host exercises for virtually anything, as long as the teacher can write a "correction bot" in Python to check answers. Executing the student’s answer, while a typical step, is not technically mandatory for the bots to test an exercise, which means it could even work with non-programming exercises.

Most of the work focuses on cleaning the learning path by enhancing tirelessly the “error messages” displayed to the students when they make a mistake. It takes a lot of monitoring – reading student-submitted answers along with the provided feedback – for a “blocked” student to enhance the message for each identified case. 

The exercises are corrected in a sandbox in a pool of dedicated machines, and it is easy to add machines to the correction pool. Overall, the project scales less than client-side corrections, but this prevents cheating, which is a useful feature for the global leaderboard. The project is about 8 years old, and it currently helps around 800 people per month train on Python. Altogether, they solve around 10,000 exercises per month. A single machine would be enough for this load, but we use two just in case. We have used the platform as teachers to groups from 6 to 70 students without issues.

Hackinscience logo
Type icon

Type

Solution

Organisation icon

Organisation
AFPy

Country icon

Country
France