Teaching with the Dojo in the Programming class

Posted 21-02-2024 13:00:00 by Orestis Malaspinas ‐ 4 min read

This blog post will give a review on the different observations made while using the Dojo to teach in the C programming class.


In this post we will talk about the experience acquired by using the Dojo in the C programming class in HEPIA. The class is given during the first year in the computer science program.

There are no pre-requisites to follow this class. In particular students have no top limited C knowledge, to make, to git, and to the Linux command line. Most of them were not familiar with Linux prior to this class where they were made to install a dual boot with Linux on their laptop machines.


The reception is mixed. While some acknowledge the usefulness of the dojo, others saw it more negatively since "a simple git repository would be as useful".

Some students complained that it was another thing to learn when the dojo was introduced. Some students where interested and providing regular feedback through Issues in the Gitlab repositories of the project. Some even provided merge requests which is very positive.


The Dojo CLI

There is a struggle to use the Dojo in CLI mode to perform the exercises. In fact the output of commands such as

dojo exercise run --verbose

contains often too many useless details and a simpler approach would probably be appreciated. For example, in the guidelines of the exercise, a word about how to compile the code and run the tests would be a better approach I think. We could even think about a way to produce these guidelines directly from the Dojo CLI.

Possible errors in C

In some exercises, the .c files are given but function implementations are missing. Students struggle to understand the problem. While they should be able to read the error message (the linker is unhappy) they find themselves stuck. There are two possible approaches for them.

  1. Comment the tests using the functions that are defined but not implemented.
  2. Make blank implementations of the functions.

From our point of view it has some pedagogical value that they are confronted with this particular error message, but we do not want them to be stuck too long neither. Maybe some kind of FAQ could be nice. Maybe we could provide a CLI command to open an issue on the assignment (or exercise). This is to be discussed.

Unexpected experience


We did not anticipate how long it would take to install docker on each student's machines. It took about two hours to have all installations done and the dojo installed as well. In particular the post-install part took a lot of time.

Multiple exercise creation

Many students created a lot of exercises for each assignment (about 10). We do not know yet why this happened and we are investigating with them to understand why they thought it was necessary. To mitigate this phenomenon we limited the exercise creation to two by student.

Students leaving the exercise repository

Some students left the exercise repository through the Gitlab interface which we did not anticipate. When this happens there is a discrepancy between the dojo database and the Gitlab repositories:

Students that have left:

  • cannot clone the repository with the exercise anymore,
  • the repository still exists but has only the dojo user as owner,
  • their count towards the number of exercise is artificially elevated.

To mitigate this issue we plan on checking periodically any discrepancy between the data base and the Gitlab instance and reassign students that have left the repository. Then an e-mail notification is sent to the student which ask if the action to leave the repository was on purpose and if yes to use the appropriate dojo command to erase the exercise.