CUPS has two mechanisms for on-the-fly-PPD generation to avoid the wasting of disk space by thousands of uncompressed (or slightly compressed) PPD files. One is to put an executable file into the /usr/lib/cups/driver/ directory which lists and generates PPD files on request, the other is using *.drv files in /usr/share/cups/drv, which contain the data for the PPDs in a simpler and more compact format.
The former method is deprecated upstream and can be removed in a future release of CUPS, especially also because the executables can get slow in some cases.
The latter is not yet supported by Foomatic and letting Foomatic support it is subject of this project idea.
The student's task is to create a utility which generates *.drv files from the whole database and/or from selected, printers, manufacturers, drivers, groups, …, depending on what the user requests.
Till Kamppeter, Project Leader OpenPrinting (till at linux dot com)
Perl programming, perhaps also MySQL