Well, i might get half of this forum angry, but i think IVANOV in Java might work, for a simple reason: there are way more people that are actually good at Java than C++, and thus can make decent add-ons, changes, etc... for IVANOV.
Not that C++ is that hard, but it's easier, quicker and more comfortable to make changes to a language like Java when you know it well enough.
If you lost interest in the project halfway, you get at least the experience, which will certainly help in getting trough your exams
About the fact that, for instance, another level generator, should be 'unfaithful' to IVAN: is there ANY mod that IS faithful to the original game? Every mod has is good and bad points, and no mod will ever exactly look like the original, since in that case it would BE the original. the purpose of modding and reprogramming is to be unfaithfull.
Again, i appreciate the fact that C++ might be better than Java in many aspects, but that doesn't mean programming IVAN in Java has no advantages at all. I think the advantages more than make up for the "slower", "harder" and "more flexible" way of programming...