Well, to be fair, he's not asking for your old work, stripped down. He's asking for new work, the same he expects of everyone else. If you could hand in work you've already done, it wouldn't be fair to the other students, nor would it be a particularly good showing of how well you understand or retain the material currently -- that is, it doesn't say much that you were able to recycle some code you wrote last year over the course of perhaps weeks, compared to the other students who wrote their code last week in a few hours. College isn't about rubber-stamping you for knowing certain things, its also about vetting your ability to work to requirements, meet deadlines, and to some degree determine your performance relative to your peers.
And just to be additionally clear, there probably are plenty of reason you might want to do MVP in your shader -- for instance, if you do instanced rendering, V changes for each instance, possibly M, but probably not P. If you have a lot of instances, its probably more efficient to do it in the shader. You could precalculate the entire array if instance MVPs on the CPU and pass them up to the shader, but maybe its less efficient, or maybe you're CPU-bound, but not GPU-bound. Or, maybe you're re-deriving M, V, or P from a compressed form to save space in your constant buffers.