Being able to learn the necessary background information in time is also an ability. I just wanted to point out that it's probably a bad idea to start a project where most of us will first have to read three books and 20 papers in order to be able to talk about it, let alone implementing the stuff.
Things like e.g. dynamic runtime optimization will be much harder if you're already having trouble implementing SSSP algorithms for graphs.
I'm not saying that nobody should have to learn new things during the process. I just want to make sure that everyone will be able to catch up in time. If the project turns out to be too easy, it will be done quickly and we can soon advance to more complex topics.
Greets,
Philip