Visualising the world of
Competitive Programming
Anuj Menta
–<random_senior>
“Learn something other than Python. It won’t fetch
you a job”
‱ more commonly known as algorithmic programming.
‱ Popular among Computer Science graduates across all
universities (:P)
‱ Optimizing different operations using complex data
structures and algorithms like Binary Trees, Dynamic
Programming etc
‱ Common websites to practice: Codechef, Hackerrank,
Codeforces, Hackerearth, SPOJ etc.
Then why Codeforces?
‱ Only has programming contests hosted on a weekly basis.
‱ The most important thing : Every participants code is
public
‱ A unique user rating system(A bit similar to the elo rating
system)
‱ Very diverse in terms of programming languages and
types of problems.
–Anuj Menta
“All the numbers depicted might have a confidence
interval of about 90%. The study does not mean to
undermine or promote any website”
Number of questions
Just to start off with a small comparison
0
1000
2000
3000
4000
Codeforces Hackerrank Codechef Hackerearth
Hackerrank and Hackerearth have
problem sets on other topics like
Artificial Intelligence, Math etc (+10
points :P)
Number of questions | Category-wise
Categories: Sorting - Dynamic Programming
0
1
Codeforces Hackerrank Codechef Hackerearth
Number of submissions
Total number of submissions made for existing
problem sets
0
1
Codeforces Hackerrank Codechef Hackerearth
And finally
.
(drumroll)
Comparison of Programming Languages
A comparison on all the four websites on 10
languages
0
1
–Some C++ stud
“Competitive programming is independent of
programming language”
But still..
How far can you possibly go if you
only know Python?
Broad Categories of Questions
‱ Simple Implementation
‱ Sorting
‱ Search
‱ Trees
‱ Linked Lists/Heaps/Queues/Stacks/Heaps
‱ Graph Theory
‱ Greedy algorithms
‱ Dynamic Programming
‱ Recursion
‱ NP Complete
‱ Advanced Data Structures
Proportion of Python submissions
The percentage of python submissions for different
categories of questions
0
0.25
0.5
0.75
1
Implementation
Sorting
Search
Trees
Comparisons to be added:
‱ Performance : Python vs. others
‱ Computation time: Python vs. others
‱ Number of chars/lines of code : Python vs. others
‱ Programming style : High rated coders vs. Low rated
coders
‱ Users churn rate( classified by programming language)

Visualising the world of competitive programming with Python (Codeforces)

  • 1.
    Visualising the worldof Competitive Programming Anuj Menta
  • 2.
    –<random_senior> “Learn something otherthan Python. It won’t fetch you a job”
  • 3.
    ‱ more commonlyknown as algorithmic programming. ‱ Popular among Computer Science graduates across all universities (:P) ‱ Optimizing different operations using complex data structures and algorithms like Binary Trees, Dynamic Programming etc ‱ Common websites to practice: Codechef, Hackerrank, Codeforces, Hackerearth, SPOJ etc.
  • 4.
    Then why Codeforces? ‱Only has programming contests hosted on a weekly basis. ‱ The most important thing : Every participants code is public ‱ A unique user rating system(A bit similar to the elo rating system) ‱ Very diverse in terms of programming languages and types of problems.
  • 5.
    –Anuj Menta “All thenumbers depicted might have a confidence interval of about 90%. The study does not mean to undermine or promote any website”
  • 6.
    Number of questions Justto start off with a small comparison 0 1000 2000 3000 4000 Codeforces Hackerrank Codechef Hackerearth
  • 7.
    Hackerrank and Hackerearthhave problem sets on other topics like Artificial Intelligence, Math etc (+10 points :P)
  • 8.
    Number of questions| Category-wise Categories: Sorting - Dynamic Programming 0 1 Codeforces Hackerrank Codechef Hackerearth
  • 9.
    Number of submissions Totalnumber of submissions made for existing problem sets 0 1 Codeforces Hackerrank Codechef Hackerearth
  • 10.
  • 11.
    Comparison of ProgrammingLanguages A comparison on all the four websites on 10 languages 0 1
  • 12.
    –Some C++ stud “Competitiveprogramming is independent of programming language”
  • 13.
    But still.. How farcan you possibly go if you only know Python?
  • 14.
    Broad Categories ofQuestions ‱ Simple Implementation ‱ Sorting ‱ Search ‱ Trees ‱ Linked Lists/Heaps/Queues/Stacks/Heaps ‱ Graph Theory ‱ Greedy algorithms ‱ Dynamic Programming ‱ Recursion ‱ NP Complete ‱ Advanced Data Structures
  • 15.
    Proportion of Pythonsubmissions The percentage of python submissions for different categories of questions 0 0.25 0.5 0.75 1 Implementation Sorting Search Trees
  • 16.
    Comparisons to beadded: ‱ Performance : Python vs. others ‱ Computation time: Python vs. others ‱ Number of chars/lines of code : Python vs. others ‱ Programming style : High rated coders vs. Low rated coders ‱ Users churn rate( classified by programming language)