ICLF: An Immersive Code Learning Framework based on Git for Teaching and Evaluating Student Programming Projects
Pierre Schaus, Guillaume Derval, Augustin Delecluse
TL;DR
The paper addresses scalable teaching and evaluation of programming projects in settings like MOOCs by introducing the Immersive Code Learning Framework (ICLF). ICLF leverages a Git-centric, template-stripping pipeline in which students start from a pre-existing codebase, collaborate on private forks, and receive continuous feedback as the teacher updates the template via a hidden solution repository. Key contributions include a detailed architectural description, a JavaGrader-based automated grading mechanism with secure test execution, and practical demonstrations in a Discrete Optimization course and an edX Constraint Programming MOOC. The work reduces dependence on grading platforms, supports plagiarism detection and progress tracking, and aligns classroom workflows with real-world software development, with positive student evaluations.
Abstract
Programming projects are essential in computer science education for bridging theory with practice and introducing students to tools like Git, IDEs, and debuggers. However, designing and evaluating these projects (especially in MOOCs)can be challenging. We propose the Immersive Code Learning Framework (ICLF), a scalable Git-based organizational pipeline for managing and evaluating student programming project. Students begin with an existing code base, a practice that is crucial for mirroring real-world software development. Students then iteratively complete tasks that pass predefined tests. The instructor only manages a hidden parent repository containing solutions, which is used to generate an intermediate public repository with these solutions removed via a templating system. Students are invited collaborators on private forks of this intermediate repository, possibly updated throughout the semester whenever the teacher changes the parent repository. This approach reduces grading platform dependency, supports automated feedback, and allows the project to evolve without disrupting student work. Successfully tested over several years, including in an edX MOOC, this organizational pipeline provides transparent evaluation, plagiarism detection, and continuous progress tracking for each student.
