/refactor-tutor

A tutoring system that lets students practice with improving small programs that are already functionally correct.

Primary LanguageHaskellApache License 2.0Apache-2.0

Refactor Tutor

Build status Github tag Docker version

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:

Getting started

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.

Developing

Instruction on how to setup a development environment are available on the wiki. Instructions for building and releasing can also be found there.

Credits

The Refactor Tutor was developed by Hieke Keuning (h.w.keuning@uu.nl), in collaboration with Bastiaan Heeren and Johan Jeuring. Several improvements have been made by Stephan Stanisic.