|I'm not sure if these are names he came up for by himself ...|
Did you try googling the term? (with software or similar, to avoid all the car driver stuff.)
A test driver is a program whose purpose it to call a function (or set of functions) for test purposes. So it will usually be pretty boring: just enough user interation to get data for the required parameters; data is used to call function(s) you want to test; the app checks and outputs results. And that's it.
In general, "app" is just for application, which is just another name for a program (e.g. "console app"). In the past I would have said application suggested the program was more complicated than a basic utility (e.g. Word rather than grep.) But nowadays "an app" can also mean a small-scale application of the kind you download from "an app store" for your phone, tablet, or even Windows 8.
I assume you prof means apps in the general sense (he or she wants you to write something more interesting than a test driver.) Writing apps of the kind you get from an app store is actually quite tricky.
You will also come across the term test harness, which is a more complicated, and usually automated, variant of a test driver.