Although not apparently real-world, I've had an idea for a good source of projects that are at least finishable, and probably something you should be motivated to do (then again, you should floss every day :p).
For reviewing and testing understanding, implement various algorithms you've learned as part of your CS education. Some projects:
- implement a finite state automaton library, with language membership testing, product construction, and brzozowski minimization.
- implement max flow, min cost flow and a linear program solver.
- implement reductions between select NP-complete problems, polynomial time approximations and brute-force solvers.
- write your own implementation of cryptographic algorithms (but don't use them :D)
IIRC, mona is a finite state automaton thingie used to verify the correctness of an electrical circuit; ISTR my lecturer talking about the applications of linear programming in economics, and gcc does register allocation (which is graph coloring, which is NP-complete). Crypto of course secures all credit card transactions on-line. So it's not completely unreal-world :)