Exercise Manager

The Exercise Manager generates HTML pages from exercise specifications and solutions defined by the instructor.

The specifications are provided as HTML files (eg hello-world.html), and the solutions as Lisp files (eg hello-world.lisp). Meta-information for the exercises is given in a separate data.lisp file using the defex macro defined in exercises.lisp. The Exercise Manager provides HTML output in a number of different forms:

  • as a single page per exercise (both with and without solutions)
  • as an index page for the above exercises (also, both with and without solutions)
  • as a single page for all the exercises (again, both with and without solutions)

The Exercise Manager code itself is used by the Dynamic Learning Center to manage the Programming Exercises section of the site.

This sample uses the HTML Generator sample. A copy of the code - htout.lisp - is included with this sample.

Source Files

The Exercise Manager consists of the following source files: Click on the above links to browse the source or use your browser to save the files to your local machine. Alternatively, you can download all the source code as a single gzip'd archive.

Quick Start

Download and extract the source code above, start Lisp, change the current directory to the extracted exercise-manager directory, and load load.lisp.

From the Lisp prompt execute each of:

  • (in-package :cl-user)
  • (output-all-exercises-standalone-html)
  • (output-all-exercise-indices)
  • (output-all-exercises-one-file)
The Exercise Manager produces the following HTML files:

You can make configuration changes in exercises.lisp or create your own exercise specifications and solutions in the data directory, remembering to update data.lisp accordingly. You should also browse the source code and take a look at Using the Exercise Manager which goes into greater detail on how to write good exercises.