The components that need to be fast — grep and Perl — are very fast, indeed, and the algorithm and display code stays out of the wayenough to keep things fast.
The teachers must be free to teach in their own way — the curriculum should be flexible enough so that they can use their individual talents to achieve the goals of the course.