u Debug 2 0 Connecting the Competitive Programming
u. Debug 2. 0: Connecting the Competitive Programming Community Vinit Shah Founder
Connecting Programmers u. Debug is [a] really good place for programmers. [Just as] Facebook [is] connecting people. . . u. Debug [is] connecting programmers. 2
What Is u. Debug? u. Debug is an engaged community of competitive programmers who help each other by answering questions on chat, providing hints and solutions to problems from several online judges, furnishing test input and sharing feedback. 3
Agenda • • • u. Debug 1. 0 A Brief History of u. Debug Limitations of u. Debug 1. 0 Uber Users The Evolution Revolution – u. Debug 2. 0 • Toward a Truly Global Platform 4
Squaring a Sequence of Integers Given a sequence of integers, compute the square of each integer. Input: -1, 0, 2, 10 Correct Output: 1, 0, 4, 100 Incorrect Output: 1, 0, -2, -10 5
What Service Does u. Debug Render? On u. Debug, a user can select a program for which a solution has been coded, provide test input and get the “correct” output. 6
Verifying the “Correctness” of a Program • How “correct” a program is depends on what kind of input it’s being tested with. Input: -1, 0 Output: 1, 0 • Important to test the program with sufficiently many cases. 7
Accepted vs. Correct • All programs on u. Debug have been “accepted” by online judges. • The goal is to have both “accepted” and “correct” programs. 8
u. Debug in a Nutshell u. Debug is an online repository that contains solutions to more than 8, 000 problems from several online judges including UVa Online Judge, ACM-ICPC Live Archive, Google Code Jam and Facebook Hacker Cup. 9
Of Ladies and Bugs Ada, the ladybird! I am told she is clever — I hope not! But above all, I hope she is not poetical; the price paid for such advantages, if advantages they be, is such as to make me pray that my child may escape them. – Lord Byron 10
Anatomy of u. Debug 1. 0 <Demo> 11
A Brief History of u. Debug • Heard of competitive programming in 2010 while in grad school at Brown. Abhiram Natarajan 12
A Brief History of u. Debug • Wrote an Android app in 2013 but realized it was too bloated. Took up solving UVa problems to get better. • Made it a point to solve at least one problem every day to become a more “efficient” programmer. • Loved supporting nature of the competitive programming community. • Noticed two big floating populations: newbies or people with a specific aim to do well on programming interviews. 13
A Brief History of u. Debug • Goal of u. Debug: To be an online platform where people help themselves by learning to think creatively. • u. Debug was launched on August 15, 2014, and is proud to be community-powered. • Grateful to Professor Revilla and the UVa team for this pivotal support. 14
Some Limitations of u. Debug 1. 0 • A person landing on the home page had no clue what the site was about. • There was no way to find out what judges were supported. • User Input 15
Some Limitations of u. Debug 1. 0 • There existed only 2 kinds of input: Random Input and Critical Input. • u. Debug 1. 0 was viewed mostly as a “service” for providing “accepted” output to problems. • Realized that competitive programming is a sport and that it would be nice to have a platform that helps competitive programmers train. 16
Uber Users Hypothesis: The stronger a competitive programmer is, the more helpful they are. 17
UVa World Ranklist (1 -50) 18
UVa World Ranklist (50 -100) 19
Mohammad Samiul Islam Bangladesh 20
Samiul • Received an e-mail titled “I have 1, 000+ Solutions”. • Samiul has contributed 1, 143 solutions to u. Debug! 21
Miloslav Brožek Czech Republic • Miloslav is known as the “Mightiest Wizard”. • Solved 800 problems in 5 months. • Is a big contributor to u. Debug with over 350 RIGs. 22
Miloslav and Co. 23
Junsung Ko Korea 24
Junsung • Very humble and says solving ~1, 500 problems is no big deal. • Played a key role during the development of u. Debug 2. 0. 25
Evolution Revolution – u. Debug 2. 0 <Demo> 26
Toward a Truly Global Platform u. Debug is not only an amazing community for people learning programming and algorithms, it is also the perfect complement to UVa Online Judge. I have been waiting years for such a platform in order to fix faulty problem descriptions, correct wrong data sets and strengthen weak ones. In the case of ACM-ICPC Live Archive, it is now also possible to obtain data sets for problems that don’t have any. Before u. Debug this was merely wishful thinking! Now, this is a reality. – Professor Miguel Angel Revilla 27
Some Universities that Link to u. Debug • • Czech Technical University (Czech Republic) École Normale Supérieure de Lyon (France) Télécom Paris. Tech (France) Technical University of Munich (Germany) University of Tsukuba (Japan) Gustavus Adolphos College (USA) James Madison University (USA) 28
ACM-ICPC Student Participation Source: ICPC Fact Sheet 2016 29
u. Debug 2. 0 A Global Competitive Programming Platform https: //youtu. be/f-w. S 9 b. YJwpg 30
Thank You! Questions? 31
- Slides: 31