Online Judge, uHunt and uDebug
You will make use of the Online Judge archive of contest problems and its automated judging system. While Online Judge is the name of a wonderful university, we will normally equate the name "Online Judge" with the online resources they provide for contest preparation.
Online Judge has an archive of thousands of problems from previous contests with judge data. After registering for an account via their online judge, you can submit source code in C, C++, Java and Pascal to attempt to solve any of these problems.
Online Judge will keep track of all of your submissions. Each time you visit a problem listing page from the archive it will highlight the any problems you have solved as green and any tried but unsolved in purple. Each problem will provide bar graphs to show number of users that have submitted this problem (and how many solved it) along with how many total submissions and the percentage of correct. When you first start, you might want to make sure you pick problems that show high levels of success.
Online Judge also maintains a worldwide ranking for you (over 12 million registered users at Online Judge). As you solve problems you can watch yourself climb the world ranking. This is great way to watch your progress over your college career.
Online Judge also tracks runtime of submissions and maintains an ordered list. When you solve a problem, you can see how your runtime compares to other folks. You can use this information to determine how efficient your solution is. If you submit additional solutions that are faster, Online Judge moves you up the list.
Online Judge also provides a forum where problems, approaches and sample data can be discussed. This is a great resource if you are stumped on a problem.
Online Judge Links of interest:
- Online Judge
- Statistics for the currently logged in user
- Problem Archive
- ACM WFs
- Yearly submission statistics
- Steven and Felix Halim's Competitve Programming Book
- Skiena/Revilla Programming Challenges
- Prominent Problemsetters
- Problem Setter Credit - by problem, who wrote it
uHunt provides a dashboard into Online Judge. This dashboard shows the following items:
- Chat window
- Live submission window (near realtime display of current submissions)
- Your submissions/statistics
- List of all problems you have solved
- List of all problems you have tried but not solved
- Analysis of your progress in solving problems recommended by his book
- List of recommended problems to solve next
- Your spot on the world ranklist
- Links to API info so you can develop your own custom portal
You will want to take advantage of the next to solve lists to help you choose problems that are challenging but also within your reach. If you choose to purchase his book, the charts showing your progress through his recommended problems are very useful.
uDebug is a relatively new resource. uDebug provides a web interface to allow you to try sample data against many of the Online Judge problems. You search for the problem you are working on. Once there, paste your sample data into the input box and click Go!. After a delay, the output window will display the "correct" output for the provided input for that problem. Behind the scenes a solution that was judged correct is used to process your input.
Having the ability to test an input file ans make sure that the answer you are getting matches a verified answer is very useful.
For select problems, uDebug provides "critical data". When you click this button, it puts a saved input file into the input window. This is data that the uDebug folks believe will help you ensure that you are covering the important cases. You can then click Go! and see the correct answer for this input.