Basically, Scheme-robo takes as input a solution to an exercise (usually written by a student and submitted to the system in some way) and some exercise-specific configuration. Scheme-robo does various kinds of tests (e.g., test runs) on the solution and returns a number of points and a set of comments to be given to the student.
Not very exciting (but seems like a useful thing to have around...)
Scheme-robo executes student code in a metacircular Scheme interpreter. Thus, test runs are specified as Scheme procedure calls, and the actual return value is usually compared to a set of correct solutions. The comparison is usually done with a standard equality predicate. Thus, there is no need for student code to read input or print out values, and we avoid the problem of parsing output written by student code. The metacircular interpreter also gives us a ``sandbox'' where student code can be safely executed: the interpreter does not include potentially dangerous features such as file I/O.
Another use for metacircular interpreters. Nice.
Posted to teaching/learning by Ehud Lamm on 4/23/02; 7:16:12 AM