We believe that competition scales very well. And we consider competitive programming to be a very good way to reach out and promote programming amongst students as it has certain advantages over other traditional methods.
- It teaches a student to write code adhering to specifications.
- It enforces one to write code optimised for time as well as memory.
- It helps learn faster.
- It scales better.
This initiative, aims to make it easier for students to start coding at a young age. And, for that, we have chosen competitive programming to be the path to reach out to the middle and high school students in India as well as across the world. And, doing this will involve addressing a few core issues that we have identified:
Computer education is still not accessible to a vast majority of students in India. And more importantly algorithms and problem solving rarely come up in any middle/high school computer science curriculum.
We need to provide a platform to the students which is easily accessible and can help them learn programming, practice solving programming problems and compete with international programmers while having fun. Having a community of programmers around them to help them out, will also facilitate self learning. The CodeChef platform, which is available to all the students having an internet connection, will be modified to have more content targeted towards this objective.
Enter LunchTime - the CodeChef Junior Programming Series. We are launching a new programming contest series aimed at providing a fun contest to the students of middle/high school. The specifications of this contest are:
- Open to all the students in high school and middle school from across the globe. There will be separate prizes to be won by the Indian students. There will be prizes for top global students as well.
- To be conducted on the last Saturday of every month.
- 3 hour duration starting at 1930 Hrs IST.
- It will have 4 problems of varying difficulty having partial scoring for each problem.
We need to reach out to different schools and students and make them understand the significance of programming along with the benefits and the opportunities that it brings. For this we will need your help. Please read more about how you can contribute to be a part of this initiative.
Students who perform well should be recognized for their talent, effort and performance. They should be given constant motivation to do better. For doing just this we proudly announce the extension of our Go For Gold Program to schools. As a part of this program, we want an Indian student to win the Gold medal at the International Olympiads in Informatics. We realize that that change won't happen overnight, so our plan is to support learning and reward improvement. We will be providing ongoing scholarship, incentives, promotion, tech assistance for Indian students. Read more about the program here.
While we have revelled in our IT revolution, the stark reality tells us something else. There is reason for us to be happy, but we should also be cautious. In spite of the vast amount of intellectual talent available in the country, our performance has not been top notch if competitive programming is anything to go by.
Global competitive programming is mostly centered around the ACM Inter Collegiate Programming Contest, which is considered to be the Olympics of programming across colleges. Students from all over the globe participate and strive hard to perform well. The highest rank of an Indian team at the ICPC has been 18 which was achieved last year.
Since its inception, CodeChef has been working towards improving this scenario in India. There have been various initiatives to achieve this:
To an extent, we have been successful in playing a part in spreading awareness about competitive programming. However, the problem still lies at the roots. A vast majority of the college students still remain unaware and unenthusiastic. To find the solution, we have been talking to various people including the ICPC world finalists from India and also the people in industry about what can be done to bring a change in the way Indian students become aware of and perceive programming. The problem is deeper than what we think. Almost all of our initiatives are primarily benefitting the college and university students, while the reality is that by the time they get to know about competitive programming, it gets too late for them to prepare and excel at it.
We came to know that countries like China have a culture of students being taught algorithms from middle and high school and they are made to take part competitively at the IOI, or the International Olympiad in Informatics. IOI is to schools what ICPC is to colleges. Unlike ICPC, IOI is an individual event where a contingent of 4 individuals represent their country.
This is where we got the idea. Catch 'em young. We need to give the Indian students more time to prepare and make the competition fair for themselves; but "how" is the question? - By going to schools.
The idea was endorsed by the ACM ICPC world finalists from India, who also believe that if there was a culture of Indian school students taking part at the IOI, they would be exposed to programming for a longer duration and eventually their ICPC performance will also improve and bring India to the top. More importantly, it gives a taste of algorithms to a student at a much younger age and opens his options drastically to make a career into the world of programming.
Prof Madhavan of the IARCS, the institute which is responsible for selecting the four candidates in India at school level for IOI, talks about the problem. His concerns include that at school level the students are not very well motivated. In India, programming is just another optional subject, the primary ones being Physics, Chemistry, Mathematics, and Biology, which would enable them to secure a seat in a University and help define their career. This, coupled with a lack of recognition and awareness about competitive programming among school students provides no encouragement.
While in China and in some countries in Europe, the students are taught algorithms as a part of their school curriculum, in the US there are sites like USACO which promote IOI by providing a platform to students who can solve related problems. Also, recognition in the form of getting an admission into a university by performance in the Olympiads is quite prevalent amongst these countries.
In India, clearly there is no platform that encourages school students to take competitive programming seriously. And more importantly there is this lack of awareness. Very very few students know of the existence of such a field and the opportunity that exists at their doorsteps. Though there are a few colleges like the CMI and IIIT Hyderabad that do provide admission based on their Olympiad performances too,students do not know about it. These colleges produce the best talent in academia as well as the software industry. They also do not know that there is this Software Industry that respects the value of competitive programming and will want to make them a part of itself on nothing else but their ability to solve hard programming problems.
Something has to be done about it, something substantial.