Artem Iuminov
Lead maintainer
Students submit code and receive instant verdicts. Teachers track attempts and results in a clear dashboard. Problem statements are available in English, Spanish, and Russian. There's no need to configure workers to testing/run participants' solutions, as with the VPL (Virtual Programming Lab) and CodeRunner plugins.
If you've ever wanted TopCoder, LeetCode, or Codeforces in Moodle, this plugin is for you!
Demo
Try it here: https://bacs.sybon.org/
Key features
Instant auto-judging — per-test verdicts with execution time and memory; pretest input/output visible to students
Live real-time monitor — the standings update as solutions are judged, no page reloads
Analytics — a leader "race" chart, task-activity dynamics, score graphs, and a difficulty analysis that predicts how many students can actually solve each task.
Clear attempts history and grading for teachers
Works for practice lessons, labs, and contests
Scales to large cohorts and multiple courses
External checking via the Sybon service, no extra server setup
400+ problems with multilingual statements: EN, ES, RU
Compatibility
Supported Moodle versions: 3.11 to 5.2
Starter course archives
Installation
Copy the module code to moodleroot/mod/bacs.
Go to http://your-moodle/admin (Site administration ' Notifications) to start installation.
Replace NoDefaultKey with your Sybon API key to access task collections. Configure other defaults if needed.
Configure scheduled tasks at /admin/tool/task/scheduledtasks.php to sync available languages, tasks, and solution checks.
By default, submissions are sent for judging and results are fetched every minute.
Add cronjob * * * * * /usr/bin/flock -n /var/lock/moodle-adhoc.lock /usr/bin/php <MOODLE_SITE_DIR>/admin/cli/adhoc_task.php --execute --keep-alive=49 >> <MOODLE_DATA_DIR>/moodle-adhoc.log 2>&1
This ensures that submissions receive verdicts as soon as they are sent to Moodle.
Add the activity to any course and start using it.
Public key
YWhwwXtyF0edYR5mWrvQvQ.Details
Supported languages: C (C11), C++11, C++17, C++20, C# (.NET 8.0, Mono), Free Pascal, Python 2, Python 3, Java 11, Java 17, Kotlin, Go, Ruby, JavaScript (Node.js), TypeScript (Bun), Rust
Submissions include execution time and memory for all tests, plus input and output for pretests (visible to participants)
Contest scoreboard summarizing results across all tasks and participants
Time windows for contests, upsolving, and practice
Multiple scoring systems: IOI, ICPC, General
Per-task scoring and the ability to change the scoring system, task set, task order, and scores at any time, even during or after a contest
Group support for student cohorts
Virtual contests so each student can participate at an independent time
Tools to rejudge, recalculate points, reject, or update submission results
Contact
We are open to collaboration: istupo@gmail.com
Video tutorial
https://vimeo.com/1065646678