How to improve the competitive programming scenario in India

Hi CodeCheffers,

We want your feedback regarding how to improve the competitive programming scenario in India. The feedback is required for improving not also the levels of lower skilled/rated programmers, but also high rated programmers. In other words, how we can improve both the lower bound and upper bounds of the skills of programmers.

The purpose of taking this feedback is to identify the areas in which we can improve the competitive programming skill levels of people.

It will be great if you can share what sort of issues do you face, and what can be possibly done in order to address such issue/s. The suggestion can be hard to implement/could even be quite impractical/might require a heavy investment of resources like time and money, still, it’ll be a good idea to at least know about them.

Please feel free to suggest your views about what can be possibly done in this regard. We will go through all the suggestions and find some concrete steps/tasks that can be possibly worked out. If the manner of your suggestion is public, then you can leave it as a comment here. If it is of personal nature, you can leave your feedback here .

Please contribute!!

Thanks,
Praveen

25 Likes

nice initiative @admin :diamonds::diamonds: .

We always see that in almost every programming contest Russians are among the top in the rank list. This is because competitive programming is an integral part of their education system right from an early age. That’s not the case in India. In my case I came to know about competitive programming in my college and I liked it very much. But I feel like if I’d have known about it in my 8th or 9th standard in my school I would have built a great foundation. My school didn’t have any competitive programming society or something barely related to it. So I was completely unaware about competitive programming. So, to sum it up we should make competitive programming a part of school system in India.

5 Likes

For improving the scenario you need to know why is India behind in this aspect of computer science.

  • Lack of awareness- Very little school children know about CP. Courses like ICSE, ISC focus more on Object Oriented Programming with languages like JAVA etc. It is also another side of CS and we cannot do anything about this. Whats sad is that, most of students believe that “computer does stuff infinitely fast” and have no knowledge about time complexities, or any other fundamental basics of CP. I assume that codechef is already trying to tackle this issue.
  • Extremely bulky academics- This applies for school as well as college students. In school, class 10th has boards (and at least 10 subjects whose exams he has to give). In class 11th and 12th, theres JEE. Again, extremely heavy academics. Further, the fact is that if someone screws up entrance exams like JEE, he wont get CS. We live in a country where knowing molecular structure of Benzene determines if you will get to study CS in college or not. In college, you cannot take many extra curriculars without risking your grades. Harsh truth :frowning: . I dont think we can do anything about system as of now.
  • Time consuming nature of CP- CP requires dedication and time to excel. Just the mere satisfaction of solving a problem wont attract many people here. Its good that regular contests and prizes take care of this aspect, we can explore more here. If a little more fraction of users can be given rewards, even if extremely minor, it will exponentially increase motivation.
  • Solution for above: In long contest, one of the early things I came across was "Are laddus given to Top 300 people by formula “Laddus=320-rank”. I suggest that, each long, Top 100/150/200/300 (any suitable number) users be given 10/15/20/25 (any suitable number) laddus. Even if its not much, the fact that he “earned” something with his CP skills will strive many people to improve and consistently do better. This will further increase participation (and popularity) of CodeChef as well.
  • A HUGE list of topics to cover- “Where to start?” has got many,many people stranded is what I know from the mails I get. Initiatives like “A problem a day” and “An algorithm a week” should be taken by facebook and twitter pages. Links to blogs and video resources will help coders in making and successfully achieving a daily goal of doing something productive. (Thanks to one of my friend @saisurya027 because of whom this came to my mind while going through CodeChef’s FB and twitter pages :slight_smile: ) Because, do you know whats better than memes? Yeah, MEMES + THINGS TO BOAST MY CP SKILLS <3 . I am already trying to co-ordinate in this aspect with one of the admins. :slight_smile:
41 Likes

I think point 2 is the most important. There is absolutely no incentive for school students to study computer science. Even if a student wants to enter a technical stream and even if that stream is CS, only his knowledge of physics, chemistry and maths is used to judge his capabilities.

9 Likes

It is not there in the grassroots of our education system , that is the main cause of failure, possible awareness is not there.
Without looking far , i can give you my example , i came to know about coding and all in 1st year , which is late as compared to other countries where they start from primary levels , moreover there is CS in primary education , and more emphasis is given on how to bring marks rather then applications and such competitiveness with others.

And when you come to the low level programmers , i should not term them as that , probably one of the biggest issue is if you solve 2 out of 5 problems , users do not have the proper guide to look back and say “lets know how to do the rest 3” , the resources are far too minimal in this case, and moreover i do not think every college or a school has a senior who has done all the 5. And the editorials , be it codeforces or here at codechef are too concise to understand if a beginner fails to solve a problem , i hope a better solution is when someone explains it , if you can create video editorials , then the development will be at a far rapid speed , as someone explaining is more preferable and most of them understand , a 2 liner editorial , from a 6* or 7* is only suited to them who could not solve it by just a minimal margin. For someone who is trying to be big , its tough for him to make that transition from low to high , there is a huge gap between low and high in India , whereas in other countries , there is just a gap of speed , people are able to solve most problems , but here in India both the problem exists.

That was my view, and more awareness should be created at primary levels, that will help more people to get in to such zones.

4 Likes

Yes, it is the BIGGEST hindrance, yet we cannot do anything about it :frowning: . Of course, some admissions are offered on basis of excellent performance in CP (Like direct admission in IIIT-H if you get _____ in IOI or perhaps something like that?) but those options are very limited, and risky. Any parent would want his child to study PCM for a secure future.

And I think I didnt even got to the fact that how “placement” is sometimes the only reason one starts CP in college- we need to work on how user can appreciate it.

1 Like

Lack of awareness, no proper guidance and if their very first solution gets wrong answer people tend to get demotivated and decide not to do it further. Keeping all above fact in mind there should be one more program to guide new users how to progress in competitive like we have launched for data structure.
This is my point of view towards your question and in the beginning i had faced same problems though i am still a beginner.

1 Like

One thing I would like to request codechef is to hold events like Indian Programming Camp multiple times in a year. Instead of having one camp in a year , we can have 2-3 of them in the summer breaks and 1-2 in winter breaks with additional constraint that one person can participate only once in a year.

In the current scenario , IPC only benefits those who are already well versed with cp. It will be a great help if relatively weaker people can be selected for the camp. I whole heartedly wanted to be in the camp but sadly I knew that I will not be able to make it. If more people become good in this sport , it will surely shoot up its popularity.

I seriously hope that I will be eligible next year .

2 Likes

Most of my friends are in 3 tier engineering college they don’t know anything about competitive programming.
Becuase there is no environment of it so they completely neglect it, even I came to know about competitive programming in my college during my first year. I wish i would have started it earlier.
And one more thing Our engineering syllabus is very much complex we are studying economics,physics and all sorts of rubbish subjects which doesn’t hold any value in an engineer’s life.
And if we are losing with our grades then we will not be allowed to sit for our campus placement due to this thing i am forced to focus more on academics than on competitive programming .

2 Likes

My problem is **from where to start ???and which topics to learn in what order???and sometimes if my solution is not accepted it is frustrating and loses motivation for cp!! **

@admin If you want to improve the level of all coders then you need them to compete with the best coders in the world and for that treat every coder as equal, don’t give more rewards to Indians even if they are getting poor ranks, set a lower bound. Like codeforces is a russian oj but it doesn’t give extra privileges to Russian coders.

1 Like

Rewards are only given to Top 10/20 coders. I fail to see how removing reward for those top people going to “motivate” the other thousands of coders behind them.

You are greatly exaggerating it when you say that it is “integral part of education system” in Russia.

Most of children don’t face it at all during their school years, except of those who attend one of the very few specialized schools which put it into their course (and to me it feels like there are maybe 10 such schools over whole country), or they are doing it on their own.

I’m from Ukraine, and situation here is generally similar. I didn’t know about competitive programming almost till the end of 10th grade - so I discovered it a bit over a year before finishing school.

6 Likes

And in my case the reason was not education system, but huge effort on popularization of this activity by guys from the university which I later enrolled - they were ICPC Gold medalists a year before that and they did their best to promote competitive programming.

1 Like

Hi, My answer is going to be quite long, so please hold up.

How to improve CP in India (both in terms of lower and upper bound) ? The answer to this question lies in the question : Why should one do competitive programming ? What are the profits ?

Is it learning only ? If it is only learning then why make it “Competitive” ? Why should a person submitting a solution by knowing and implementing the same algorithm be ranked after a person who just submitted 5 minutes before him ? How does this competitive nature improve the quality of education ?

So I guess it isn’t just learning , it’s also about winning and losing . Okay , even if it is so , What are we wining or losing for ? There are thousands of candidates for ACM ICPC every year from India , Out of which , few of students get selected to represent their Universities in World Finals. It is a plus point, to get yourself recruited. But what about the other candidates . Ohh yes, they have gained some good knowledge about algorithms , problem solving and teamwork .

But are they even ever asked ? Would these companies who look for “problem solving” capabilities visit their campus . No, I m not talking about IITs, NITs or BITs , all other colleges except these ? Few service based companies visit our campus and they hardly care , because they come to recruit mere mechanics than engineers.
My point is that why should one do CP when there isnt a fair chance for employment. Take the case of Directi .
As I knew , Directi only visits IITs, but from this year onwards , all of us will be getting the fair chance to get ourselves interviewed by Directi through Codechef CCDSAP certification Program . And I thank all of you for this.

MY point : "Give people the reason to do CP . "

Moreover the success rate of CP from a Tier-3 college is so low that it doesn’t even interests student. There are 5-star and 6-star rated coders from Tier-3 colleges and they don’t even get interviewed by the companies who look for “problem solving capabilities” .

My advice : Please include more companies for CCDSAP certification program so that each year 300-500 students get recruited through this. This will give motivation to students who are in college . And I do believe that Motivation is the Key . Many good coders start during their first years but leave saying “there aren’t much opportunities for me.”. Trust me, for a Tier-3 student, doing CP by learning programming in 1st year takes a lot of his time. At the end he becomes good with problem solving and algorithms. He needs a platform .
( HackerEarth isn’t one , most of the companies on HE are looking for candidates with experience. and even if few companies give open challenges, there is this whole community looking to grab this one opportunity (the same students who got recruited bcoz of ACM ICPC gets recruited again :slight_smile: …) and at the end the strive for learning becomes the source of depression. )

Please Don’t get me wrong I just wanted to say that, If you believe that CP is the key to increase the potential of a Software Engg/Dev , then why so less are recruited through these open challenges (while more recruitments are done through other channels )?

4 Likes

Mate, it’s still better than India. I got to know about arrays at the end of 12th grade!!. I still wish i had got to know about competitive programming earlier.

I’ll write an answer as a person who have never been to India, so it may be that my perception is completely wrong (I’m definitely going into some kind of guessing in a few places) - sorry in advance.

One thing which has been pointed in other answers already is coverage. I believe there are quite a lot of people who may find problem solving interesting and enjoyable, yet they are not aware of it. I am from Ukraine, and I discovered competitive programming in 10th grade because of folks from ICPC team Scorpions which represented Lviv National University at ICPC 2008 and got gold there. These guys were doing their best to promote this activity, and they just gave some promo speech about it at some local olympiad (I’m not even sure if it was informatics or not), showing how cool it is and giving link to local online judge.

Still my first motivation was to simply get diploma at national competition because back then prize place at national competition in any discipline guaranteed university enrollment :slight_smile:

Making people know about it while they are still in school is a good idea; generally you don’t really need to have competitive programming as a school subject on national level - it is not like that in Ukraine, Russia etc. :slight_smile: But having something related in some specialized schools is a good idea.

Generally you need some way to reach out children to show them what competitive programming is and why it may be cool - even cheap trash like “it’s a way to get job at Google” may work, but I’d prefer being more honest on it and putting different priorities there :slight_smile: So these who find it interesting will give it a try, and they’ll enter university with better background and enough time to reach higher levels.

Having some training groups / classes / volountary courses at least at schools with stronger students should also help to both increase coverage and find those who are interested and can do well.

I don’t know how many people in India are doing competitive programming at any serious level. I believe that doing it actively for 4 years should be quite enough to reach red ratings starting from scratch, so India not having many red contestants may be not about starting late (which may be the case for not having elite level contestants) but about not having many people doing it actively. I know how training of the team who won ICPC Finals this year looked like - that’s about having 3-4 team contests per week plus multiple training camps for several years, and then increasing intensity to basically having a training each day (with some exceptions) for last half a year before finals. In case there are teams in India who do 200+ team contests per year plus upsolving plus individual practice for several years in a row, and they can’t reach some decent level - I don’t know what’s wrong and how to help them, because I really believe that intense practice should give results even if it is done not so properly.

These “where to start” and “in which order to learn stuff” things don’t make much sense to me - at least on the upper part of the scale. There are always some exceptions, but I personally wouldn’t expect much from people who aren’t even able to use Google. I mean - show them what competitive programming is, show them how Google works, and that’s enough. Developing community may matter a lot though. For a lot of people having somebody to discuss stuff with / to compete against is helpful or motivating. In Russia strong teams nowadays are attending at least 4-5 training camps per year (often even more). When I moved to Russia for a year to participate in ICPC over a course of 10 months I participated in 5 training camps - as far as I remember :slight_smile: I tried to recall it now, and these 5 are only camps which I recall, but I’m not even sure that there were no other camps in between :slight_smile: I don’t know how many training camps are there in India, but probably it is not like that.

Giving more motivation by increasing number of ways to get prizes, number of different contests/camps etc. should work. Also, emphasizing some stuff during promotion may matter. People believe that in tier-3 college they have no chance? OK, pick a few guys from such colleges who reached good results and use them as an example. I bet if you’ll take some guy from company like Google, who finished tier-3 university and he’ll visit some “not-so-good” college and tell his story - some people may get interested or even motivated.

Imagine this story: “I finished university X - just like your, it’s not so well-known. It’s not like one of these top universities where you have 10 big companies coming for placements - nobody knew about mine, and I’d probably have hard time getting noticed by Google or Microsoft. During my time there I started doing competitive programming, and I got rather well in it. It turned out to be interesting, thrilling experience; after I got decent rank in GCJ competition, Google contacted me and asked if I’m interested in internship/full-time job. I send them my CV and they scheduled interview. Tasks which I was solving during my CP years were somewhat similar to some of the tasks you have to do during interviews, so it was making things easier to me. Also, during my university years I attended several international competitions, including ICPC World Finals where you have to compete against best contestants from all over the world, and I met a lot of smart, interesting people there. Now if you want to give it a try - check sites like A and B, and maybe you’ll also enjoy it; Internet contains everything you need for preparation, so don’t worry about guys from top colleges having better lecturers. Just check it - maybe you’ll find it boring or complicated, but there is also a chance that you’ll enjoy it and turn it into way to get noticed by big companies, meet a lot of interesting people and learn a lot of interesting things.” You know, I think sometimes such stories may work.

33 Likes

@vijju123 I clearly emphasized on giving equal privileges to coders of all countries, so as to attract best coders to increase competition, and those 10-20 coders most of the times goes upto rank 80-100, and indian users coming in top-10 in codechef will not even come in top-50 if the good coders start competing at codechef as you can see from codeforces standings of any competition, none of them makes in the top-50.

As a person from outside India I can say that what you pointed out isn’t among important reasons why a lot of strong contestants from outside India don’t participate in CodeChef contests.

3 Likes