The Refactor Tutor is a tutoring system that lets students practice with improving small programs that are already functionally correct. The system is based on rules that are extracted from input by teachers, a subset of rules taken from professional tools, and other literature. Rules define how a code construct can be rewritten into a better variant, without changing its functionality. The student can ask for hints and feedback at each step.
A screenshot of the refactor tutor, showing partially expanded feedback.
You can read more about the tutor in the following papers:
- A Tutoring System to Learn Code Refactoring. Hieke Keuning, Bastiaan Heeren and Johan Jeuring. Proceedings of the SIGCSE Technical Symposium on Computer Science Education 2021.
- Student Refactoring Behaviour in a Programming Tutor. Hieke Keuning, Bastiaan Heeren and Johan Jeuring. Proceedings of the Koli Calling Conference on Computing Education Research 2020.
If you want to try out the tutor, you can use the online version.
To create your own exercises you will have to self host the tutoring system. Instructions how to do so are available for Docker and Apache 2.
Instruction on how to setup a development environment are available on the wiki. Instructions for building and releasing can also be found there.
The Refactor Tutor was developed by Hieke Keuning ([email protected]), in collaboration with Bastiaan Heeren and Johan Jeuring. Several improvements have been made by Stephan Stanisic.