black farmed eyeglasses in front of laptop computer
COMPETITIVE PROGRAMMING AS A SPORTS by vichitr gandas nitk

Many of us face problems in competitive coding. Although we have good programming skills, only the format doesn’t suit us. So if we tackle competitive programming as a sport, we will be feeling happier and less tired in solving these problems. We all have an equal amount of intelligence. No extra intelligence is required in this.

People enjoy playing sports like Cricket, Football, Badminton etc., but there is a community of programmers who enjoy playing with their codes. This sport is called Competitive Coding/Programming. The difference between other sports and competitive coding is that you don’t require much physical activity in competitive coding. Nowadays, coding is used in almost every field of work directly or indirectly. It’s not just the need for tech companies, but of each and every business. From accountants using spreadsheets to artist and designers using graphics software, everyone needs coding in some way. All major tech companies like Google, Facebook etc., hire top coders. Coding is one of the most demanded skills today. Competitive coding is a form of coding as a sport. Many people do it just for fun, to enjoy it, while others do it to get a good-paying job in the tech industry.

In competitive coding, participate-e breaks even some problems to solve and are requ, unite, and write its code in any acceptable programming language. The problems are generally logical or mathematical. However, participants may require the knowledge of algorithms, data structures, number theory, geometry, graph theory or any other related topic to solve the problems. Competitive coding has a huge community, including school and college students. It is all about thinking quickly to understand the problem and break down into the most optimal way possible and write the code in a programming language. In the very beginning, people get demotivated when they don’t get their solution accepted. But believe me, don’t let yourself down and keep trying; you will start feeling the pleasure of accepted solutions. Many people like me do it just for the satisfaction of getting their solution accepted. In my opinion, this is the best sport everyone should at least try.

Why should one try competitive coding? Competitive coding may not be the ultimate coding practice to write good and well-documented code, make optimum use of memory and other resources and work in an organizational environment. But if you are good at it, learning other things will be a piece of cake for you. You can easily crack standard coding interviews, and you can easily solve a programming problem or puzzle given during an interview. In the sport of competitive coding, you get the habit of solving challenging problems, and you do not give up easily. Also, competitive coding improves your debugging skills. If your code fails to get accepted, you need to think about where it went wrong. This also improves your thinking skills. While participating as a team, you also learn to think, code and debug as a team which is the most important skill required today. Although competitive coding does not involve any other aspects of programming like Networking, Cryptography, Artificial Intelligence, Machine Learning etc., it improves your knowledge of algorithms and data structures tremendously and develops your thinking, logical and analytical skills which are otherwise hard to instil. You can also win prizes like t-shirts or goodies or even cash in the contests.

The most prestigious coding contests are ACM-ICPC, Google Code Jam, Facebook Hacker Cup, TopCoder Open, Codechef SnackDown and IOI. IOI (The International Olympiad in Informatics) is an annual international competitive programming contest for secondary school students while ACM-ICPC is an annual international competitive programming contest for collegiate students. These competitions are usually held on online judges. Some popular online judges who conduct contests regularly are – Codeforces, Codechef, HackerEarth, AtCoder, TopCoder, Hackerrank. To compete in coding contests, you need good knowledge of a particul language, preferably C++/Java/Python. C++ is the choice of most competitive programmers as it is fast and has a nice STL tool. I will describe some of the platforms mentioned above.

Codeforces:

cp_codeforces.png

This is the best available competitive coding platform today. It conducts 2-3 contests every week. It is known for regular contests. All code forces contests contain outstanding problems. Mostly all contests are balanced on Codeforces. It also conducts Codeforces Educational Rounds. The goal of such rounds is to practice and educate rather than to compete.

Codechef:

cp_codechef.png

Codechef is also a good platform to learn and compete in competitive coding. It conducts three contests each month – Long challenge, Lunchtime, Cook-off. Long challenge is meant to learn a lot of new concepts as it’s a 10-day long contest. Codechef problems mostly require very much thinking and debugging. It would be best if you kept trying.

HackerEarth:

cp_hackerearth.png

HackerEarth also conducts three contests every month – Easy, HourStorm and Circuits. HackerEarth problems are damn good if you want to learn. But most of the times, problem statements are not clear. Circuits is an 8-day long contest so you can learn and try.

Hackerrank:

cp_hackerrank.png

If you want to start coding then this is best platform to start with. Hackerrank problems are usually easy and simple. It conducts HourRank every month. And two other contests – Week of Code, Codesprint are held over a period of 2 to 3 months.

AtCoder:

cp_atcoder.png

This is a famous Japanese judge. AtCoder problems are usually mathematical. It conducts three contests – ABC(AtCoder Beginner Contest), ARC(AtCoder Regular Contest) and AGC(AtCoder Grand Contest). AGC is held once a month. ABC and ARC are held 2-3 times every month.

TopCoder:

cp_topcoder.jpg

Topcoder is not a cup of tea for everyone. As its design is very confusing, participants must atat dot doClass and Method to solve amanytead of the whole code. But its problems are outstanding. Most topcoder problems are DP (Dynamic Programming) problems, so if you want to master DP, try to topcoder. It conducts 2-3 SRMs every month.

Except for these, CS Academy is also a good platform to compete. It conducts 1 contest per month hardly. But academy problem statements are concise and clear without any story. Other than these, some platforms which does not conduct contests but have a lot of good problems to try and learn are – SPOJ, UVa Judge.

SPOJ: It’s a problem Archive (recommended for all beginners). Start with problems having maximum submissions. Solve the first few problems (may be 20). Build some confidence. Then start solving problems topic wise. Never get stuck for too long in the initial period. Google out your doubts and try to sort them out, or you can discuss with someone (only in the beginning).

These are some topics to start with –

  • Arrays, Strings
  • Basic math operations (addition, subtraction, multiplication, division, exponentiation)
  • Bitwise operations
  • Searching (Linear and Binary) and Sorting
  • Basic Recursion
  • Euclid’s GCD algorithm
  • Sqrt(n) primality testing
  • Greedy algorithms
  • Basic data structures – Stack, Queue
  • Prime Numbers, divisibility of numbers, factorization of a number

Some advanced topics are –

  • Sieve of Eratosthenes
  • Modular Arithmetic – division, inverse
  • Divide and Conquer
  • Dynamic Programming
  • Heaps
  • Segment Tree
  • Binary Indexed Tree
  • Disjoint Set Union
  • Suffix Arrays
  • Trie
  • Tree traversal
  • Lowest Common Ancestor (LCA)
  • DFS, BFS
  • Shortest path algorithms – Dijkstra, Bellman-Ford, Floyd-Warshall
  • Minimum Spanning Tree – Prim’s and Kruskal’s algorithms
  • Biconnectivity in undirected graphs – articulation points and bridges
  • Strongly connected components in directed graphs
  • Topological sorting
  • Euler path/tour/cycle

Once you have a good catch and confidence, dive into the world of competitive coding and start participating in regular contests on Codechef, Codeforces etc.

close up photography of colored pencils
UPSC Preparation Tips: Why is the selection of candidates of Hindi language in the IAS exam becoming less?

IAS Preparation Tips: The Union Public Service Commission (UPSC) should be asked that if it can tell the number of students appearing in the main examination on the basis of language, then why does it not tell which of these- How many students of which language were successful.
Especially for the last eight years, whenever the final results of the Civil Services Examination come, a tremendous sense of disappointment arises in the minds of the non-English speaking candidates. The obvious reason for this is the steadily declining number of youths who have cleared the Civil Services Examination through other regional languages ​​including Hindi. This can also be clearly seen in the data released by the Commission in its annual report.

One has to choose the medium of language in the main examination itself. In 2009, 42 percent of the total number of examinees, while in 2010, 35 percent of the total candidates opted for Hindi. It is to be noted that in the very next year in 2011, this percentage fell from 16 percent to 16 percent. The rate of decline has reached 8 percent till now. Obviously, if the percentage of candidates appearing in the main examination will be less, then how can the number of candidates who are finally successful be more.

Surprisingly, the Commission has not paid any attention to these figures so far. Even the Commission does not release the table of candidates who are finally successful on linguistic basis. The Commission should be asked that if it can tell the number of students appearing in the main examination on the basis of language, then why does it not tell how many students of these languages ​​were successful. This step of the Commission creates a doubt in the mind here.

Now we come to the point that what happened in 2011 after that the number of students of Hindi medium fell to 20 percent as compared to earlier. In 2011, there was a lot of change in the question papers of the Civil Services Examination. The biggest anti-Indian language change in this was the introduction of C-set paper. This paper was completely in favor of the students of science, especially engineering. Since most of the candidates who make Hindi their medium are from the background of arts, it was impossible for them to compete with science students in the C-set paper.
This was a partisan step taken by the Commission. Surprisingly, out of the total 80 questions in this paper, 10 questions were of English Comprehension. It is a simple matter that its clear objective was to exclude non-English languages ​​from the purview of civil service.

There was a movement against it. As a result, in 2015, C-set paper was converted into qualifying paper. For this it is mandatory to bring 33 percent marks. But this did not work. The Commission then inadvertently devised a measure to keep non-English speakers away from this important service at their subconscious level, which continues till now.

He figured out – by making the translation unintelligible. Civil service papers are basically prepared in English. They are later translated into Hindi. Not only the C-Set paper, but also the general knowledge and all the papers of the Main Examination, the kind of Hindi words used as a translation, and the complex sentences which are made, to read and read. After this, the best scholar of Hindi will be surprised.

In such a situation, where the difference of 0.1 percent number can influence 500 places on the rank of a candidate, how can a Hindi-speaking student solve such language questions. And that too when 80 to 100 questions have to be solved in two hours. Have you heard or read the word ‘Swapak’ for example? It is better that you try to find the meaning yourself. Now it has been unquestionably accepted that the Commission gets the translation done through Google. There is no attempt to see that translation again. And its brunt of the Hindi language is going to suffer. Will the Commission consider this issue sensitively?