One of the joys I experience as a bit building professor (aka computer science professor), is taking teams of students to intercollegiate programming contests. Asked once what these events were liked, I said imagine a huge multi player chess game and then take away the chess board! In other words, very mentally challenging, but definitely not a spectator sport.
However the preparation for such a contest is in some ways similar to that of any other physical sport – practice, practice, practice. So how does one practice for such a competition? By writing computer programs to solves as many problems as one can in as short a time as possible. And being good computational thinkers, we know how to take advantage of the computer to help us!
Meet the UVa Online Judge, web-based tool to which you can submit your computer programming solution to a specific problem and the judge will almost instantly tell you RIGHT or WRONG. And this is precisely the feedback you are given during a contest. Very rewarding when you get it right, very frustrating when you have it wrong. You are not told why it is wrong. It is just wrong! Thus begins the arduous process of trouble shooting, trial and error, to try and determine why your solution doesn’t completely solve the given problem.
Here are some suggested “simple” problems in the UVA problem set to get started with.
- the 3n+1 problem
- back to high school physics
- kindergarten counting game
- the decoder
- ecological premium
- above average
- ecological bin packing
- train swapping
- skew binary
- clock hands
- power crisis
- combinations
These competitions prove to be some of the most engaging mental, problem solving activity the human mind can engage in!
Ready to get started? Here’s all you need to do
- register for a free account on UVa Online Judge
- pick on of the above problems and solve using C, C++, Java or Pascal
- submit your results to the Online Judge
- track your progress and get suggestions for other problems to solve based upon your performance here
For more information about the programming contests available to enter, check out these
- TopCoder – earn money in this one!
- Google - be invited to work for Google!
- ACM International Programming Contest – this is one of the ones I take my students to
- List of programming contests
- Teamwork comments from current and former team members