Codecast, Taskgrader, WebLinux

How do we make learning to program easier for absolute beginners?

The goal for our international team is to enhance learning with in-browser, open-source coding tools that provide easy onboarding and a rich learning experience. We started from a simple assumption: it is impossible to learn how to program through multiple-choice questions. So we designed tools and assessments that let students learn by programming, with interactive and intuitive interfaces.

Three tools came out of that work, all three deployed in MOOCs that together reached several hundred thousand learners.

Codecast

How do you get past the fact that a screencast video tutorial is not interactive? How do you explain pointers, memory allocation or matrices online, at scale?

Any computer science educator has to explain a piece of code or a structured text sooner or later. Codecast was designed by CS educators, and developed specifically for MOOCs, to replace non-interactive screencasts: it records interactive tutorials, synchronised with audio, with step-by-step visualisation of the execution — memory, pointers, variables — that the learner can pause, replay and edit.

Taskgrader

Taskgrader is an automated grader that assesses code submissions at scale, provides customised feedback, and embeds into the learning platform through LTI.

In our courses, we built tasks inside Taskgrader to give learners hands-on coding challenges applying the knowledge presented in the codecasts. The learner writes and submits a program, then receives detailed feedback and a score within seconds. To support mastery learning, students can request hints and get unlimited attempts: they edit and resubmit until the task is complete. The whole setup is designed to sustain motivation and engagement.

WebLinux

Teaching Linux online brings its own problem: onboarding. How do you make Linux available to learners who cannot download large files on their own device, or who are not skilled enough to install a Linux operating system themselves?

WebLinux provides a full Linux OS running inside the browser, entirely client-side — no ISO image to download, no virtual machine to provision, no server-side hosting. Which also means it scales essentially for free.

Where they are used

  • Two MOOCs on FUN-MOOC, the French national Open edX instance
  • Seven MOOCs on edX.org in the C Programming with Linux professional certificate
  • The Python and Open Source Masterclass series
  • On-site, in hybrid mode, at the Institut Villebon — Georges Charpak

Demos and papers

  • ACM Learning@Scale 2017, MIT, Cambridge — Codecast: an innovative technology to facilitate teaching and learning computer programming in a C language online course. ACM DL
  • ACM SIGCSE 2018, Baltimore — workshop Coding tutorials for any programming language. ACM DL
  • Open edX Conference 2018, Université de Montréal — demo presentation
  • ACM Learning@Scale 2018, London — WebLinux: a scalable in-browser and client-side Linux and IDE. ACM DL
  • ACM Learning@Scale 2019, Chicago — Teaching C programming interactively at scale using Taskgrader
  • ACM Learning@Scale 2022Teaching and learning programming with Linux using in-browser client-side web technologies

Contributors

Rémi Sharrock (Télécom Paris) · Mathias Hiron (France-IOI) · Sébastien Carlier (Epixode) · Michel Blockelet (France-IOI) · Elie Roux (France-IOI) · Lawrence Angrave (University of Illinois at Urbana-Champaign) · Ella Hamonic · Baptiste Gaultier (IMT Atlantique) · Petra Bonfert-Taylor (Dartmouth College) · Michael Goudzwaard (Dartmouth College) · Chris Miller (Dartmouth College) · Gérard Memmi (Télécom Paris)

A project of IMT, Télécom Paris and France-IOI, with the support of the Mines-Télécom Foundation.