This project can involve anything,
It's generaly easier to use Java for a project like this.
So in other words, someone told you Java was easier to use for everything. I smell fanboyism!
But in any case, how about trying to combine elements from two different ideas? That's how good ideas generally come. For instance, you mention fractals and the game of life - what would they look like together? Perhaps a game of life simulation warped around on a fractal surface, for interesting and unique visuals? Another idea: snake and... pacman? Snake with enemies? Not exactly unique, I admit, but it's getting better. Now if you need sophistication, how about a fully 3D fluid simulation? You can also create some gameplay to go with it, too.
Whatever you end up doing, it will always - always - be derived from something you've already seen or heard about. That's how the human brain works. That's also why sitting around thinking about game ideas rarely yields anything of interest. You need to look around, and manufacture innovative gameplay by connecting ideas together.
Here is a last one to really get you going: a four dimensional maze game. You could write about how humans have difficulties navigating such environments, and show how it can give rise to interesting gameplay, you could also experiment with the use of ambient music and atmosphere and its impact on the problem solving skills of the average human being, if that's your thing (psychology student, maybe). I'm guessing there's a lot to write about here.
And finally, if you are really passionate about an idea, you won't have any trouble writing 5000 words on it, so I wouldn't sweat the final report since it should not be a problem if you chose something you find really interesting.
There was an inspirational usenet post somewhere but I can't dig it up
The slowsort algorithm is a perfect illustration of the multiply and surrender paradigm, which is perhaps the single most important paradigm in the development of reluctant algorithms. The basic multiply and surrender strategy consists in replacing the problem at hand by two or more subproblems, each slightly simpler than the original, and continue multiplying subproblems and subsubproblems recursively in this fashion as long as possible. At some point the subproblems will all become so simple that their solution can no longer be postponed, and we will have to surrender. Experience shows that, in most cases, by the time this point is reached the total work will be substantially higher than what could have been wasted by a more direct approach.
- Pessimal Algorithms and Simplexity Analysis