Exorciser: Automatic Generation And Interactive Grading Of Structured Excercises In The Theory Of Computation