In our computer programming course, we expose students to specific C programming language concepts and algorithmic aspects. Mastering the C language requires a deep understanding of memory management, a key skill that every computer scientist must acquire. For that purpose, one chapter of the course is dedicated to pointers (i.e., variables storing the memory address of another variable as its value). Compared to the other key concepts in Computer Science, this topic appears among the most difficult ones for students. Therefore, in our class, in addition to traditional theoretical and exercise sessions, students have the opportunity to practice pointers through an online homework that is automatically corrected with feedback and feedforward within CAFÉ 2.0.
We believe each student must have the possibility to practice as often as wanted, each of them solving a new statement instance. However, manually creating such statements, correcting them, and quickly providing feedback does not scale, particularly for a large audience.

We address those challenges with auTomAtic C pointeR statemenT generAtoR with fEedback (TARTARE). TARTARE is able to
- Providing students with the ability to practice as much as they want by automatically generating statements (“statement generation” on the figure above).
- Supporting student improvement through feedback provided after an automatic correction of students’ answers (“feedback generation” on the figure above). This feedback must help students to identify and understand their mistakes, so that they are not repeated.
- Reducing the possibility of cheating by giving each student a different set of statements of the same difficulty level.
- Reducing the workload of the supervisors by defining a scalable system.