It could be beneficial to take source code written for one language level (e.g. beginner) and generate the equivalent code that is required at the next language level (e.g. intermediate). This way, students could use the code they have already written to study the changes from one language level to the next.