Competitive/Collaborative Programming Class

ICPC Computer Programming Contest Prep

Problem Solving in Computer Science

Spring 2021 -- CSC 2700 Section 01 (100 Tureaud Hall, 6:30 PM - 8:20 PM)

Online Judge, uHunt and uDebug

Online Judge, uHunt and uDebug are great resources that you will find useful. Here is a little more information about each:

Online Judge

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.

In this context, Online Judge refers to the Online Judge. Now is a great time to say thank you to Online Judge for hosting and maintaining this wonderful resource.

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:

uHunt

uHunt is provided by Felix Halim in conjunction with Online Judge. Felix has been very active in competitive/collaborative learning. He has published 3 editions of his book Competitive Programming.

uHunt provides a dashboard into Online Judge. This dashboard shows the following items:

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

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.