Every year Microsoft runs a worldwide student coding contest called The Imagine Cup. (Yes, there is actually a real cup involved just like in many sports.) The competitions kick off with regional events held in many countries and culminate in a final event which will be held in Seoul, Korea this year. I've had the opportunity to meet several of the finalists for the past few years and it's truly amazing to see the types of solutions which get developed during this competition.
Students who are interested in competing should visit www.imaginecup.com to find out how to get started in your region. For the U.S. and Canada, the North American Software Design Invitational rules are described here: http://www.imaginecup.us/ContestInfo.aspx.
I'm actually pretty jealous that I am not eligible to compete - the competition looks like it is going to be a good challenge! From the Web site:
"Each round of the competition will provide a series of Challenges that you will need to solve. Every Challenge includes a specification, which is a reference document that defines the properties, methods, and events that your class library must implement. Specifications will be provided in the Microsoft HTML Help format and follow the template used by MSDN Help. Your responsibility is to implement your class library exactly as it is defined in the HTML Help specification. In other words, think of the HTML Help specification as the complete documentation of your class library."
I used to love these sorts of challenges back in school. If you happen to be a student reading this I would strongly encourage you to look into the competition. Who knows - you may find yourself on the way to Seuol? The worst that could happen is you participate and pick up valuable skills which can land you a killer job.