Teaching code made easy

Table of Contents

How to make early beginners learning programming easier?

The goal for our international team is to enhance learning with in-browser open-source coding tools, providing easy onboarding and a rich learning experience for learners. Using a variety of tools, we aim to facilitate active learning style computer science teaching and learning. We began with the assumption that it is impossible to learn how to program with multiple choice assessments. Thus, we designed tools and assessments that allow students to learn by programming, via interactive and intuitive tools.

3 innovative tools implemented in MOOCs to enhance teaching and learning of C programming with Linux:


How to overcome the barrier that a programming screencast video tutorial is not interactive? How to better teach and explain to learners basics of computer programming such as pointers, memory allocation or matrices in an online environment at large scale?

Any CS educator has to explain sooner or later a portion of code or a structured text to learners. The Codecast tool has been specially designed by CS educators and developed for MOOCs to replace non-interactive screencasts.


Taskgrader is an automated grader to assess code submissions at scale, providing customized feedback, embedded in the platform with LTI. In these courses, we developed tasks within the Taskgrader platform to provide hands-on coding challenges in which learners apply knowledge presented in the codecasts by the instructor. The learner writes and submits a program and then receives detailed feedback and a score within seconds. To promote mastery learning, students can request hints and receive unlimited attempts. Learners can edit and resubmit until they complete the task. This setup is made to support motivation and learner engagement.


Teaching Linux in an online environment brings challenges. One of them is to provide a easy onboarding experience for learners. How to make Linux available easily to users who might not be able to download large files on their own device or be skilled enough to install a Linux OS on their own device? The Weblinux tool provides a Linux OS fully in the browser and solves the inconvenient problem  of having to install an ISO disc image or provide access to a virtual machine.

Some of my use cases

Demos in conferences

Project contributors

  • Rémi Sharrock (Télécom ParisTech)
  • 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 (Independent researcher)
  • Baptiste Gaultier (IMT Atlantique)
  • Petra Bonfert-Taylor (Dartmouth College)
  • Michael Goudzwaard (Dartmouth College)
  • Chris Miller (Dartmouth College)
  • Gérard Memmi (Télécom ParisTech)

Project made by

With the support of

Researcher & Associate Professor of Distributed Systems

My research interests include distributed computing & human learning at scale.