The most common advice is to think about pain points: what in your day to day life or the life of those around you is an annoyance and how could you code something to fix it? The main problem with this approach is that the fix might not be worth a significant amount of money to people. Assuming this is only for a school project that aspect shouldn't matter and you might find some great ideas. A couple resources that might help: http://blog.penelopetrunk.com/2010/08/05/how-to-get-good-ide... and http://ycombinator.com/ideas.html