How many twin prime pairs can you find within a given range? How many anagrams can a certain word generate? Given an array of ciphers, can you generate the corresponding plain text?
These are a few basic questions posed to students at the prelims of almost every inter-school coding competition. And these days almost every school is hosting coding tournaments, usually as part of their annual festivals. Participants from various schools gather — sometimes in teams, at other times alone — to go through a series of rounds, which test their intelligence, capacity and, most important, their passion for programming.
It doesn’t matter if the participants aren’t aware of what certain algorithms are called or what certain theorems say. They only need to be efficient in the language they are coding in, and have the ability to understand and interpret the problem. A driving factor that sets a competitor apart from the rest is speed — how fast can you make your computer generate the desired result? And a lot of reading can help with that.
One of the most intriguing books I have ever read is The Code Book by Simon Singh. It highlights the journey of cryptographic systems from ancient times to today’s quantum algorithms. Years later, it helped me gain precious time at the semi-final round of a college-level coding competition.
The question had a series of texts in English and their corresponding secret messages. We had to identify the key and write an algorithm that would generate equivalent cipher codes. Thanks to Singh’s book, I could identify that the required algorithm followed the Vigenère cipher method. This helped me write the corresponding code immediately. I could have manually worked out the necessary mathematics to solve this problem, but it would have taken time. While at every competition you have the luxury to get to know a problem from its basic units, a little study is often helpful.
This brings us to the question — how much do the computer courses taught in school help a budding coder? Let us put it this way: coding as a concept is redefined with every new update in computer systems. Can something as static as a standardised exam syllabus help a student evolve in the dynamic domain of technology? (Bonus points for identifying the technical puns.)
Priyanka Shaw, a Class XII student of Calcutta Girls’ High School and a regular at coding competitions, feels, “While the school syllabus gives us the basic knowledge, it does not prepare us for these competitions. That requires further thinking.”
Websites such as CodeChef, Topcoder and HackerRank provide a platform for passionate coders to get hands-on experience in real-world problems, participate in competitions, and interact with peers from around the world. That helps you understand how the small segments of code you have to practise in your school lab are building blocks to a greater, bigger enterprise.
Says Sujitha Jayaraj, a graduate of the National Institute of Technology in Rourkela, “Challenges from websites such as HackerRank helped me gain a better understanding of languages and computation. This helped me adapt easily at my workplace.” She currently works at AltSpace, a digital marketing solutions provider based in Chennai.
A group of high school students in Ohio developed an application called “Smart-Pantry” that helps needy families track food pantries nearest to them. Three Indian students from the Bharati Vidyapeeth College of Engineering in Delhi built an app that identifies air pollution levels by measuring the air quality index from pictures taken on mobile cameras. This is what those blocks of code can do — bring positive change in this world.
This is why it is important for students to venture into technology fairs and workshops, where, rather than asking you to print “Hello, World” in a programming language, you would have to build a working prototype of a real-world system. Rather than making your codes and functions behave a certain way, you will be encouraged to explore the reason why they behave that way.
Sandeep Chakravorty, senior manager at Apple — based in San Jose in California — believes, “While interns and new college graduates are good coders, they have seldom been in touch with the industry. However, that gives them a fresh perspective which we, at Silicon Valley, California, find interesting.” He mentions that he has been very happy with the dedication and hard work shown by interns he recruited.
Lately, one of the biggest concerns of student coders is how programming languages, focussed specially on machine learning and data mining, are not being explored enough by colleges and schools. Big data is a booming industry, finding its use in medicine, sports, literature and almost every other sector. However, institutions are updating themselves. The CBSE board has included the Python programming language in its syllabi. One might imagine the education system itself to be a machine-learning platform that is registering changes in its behaviour, thanks to young coders and developers.
Coming back to coding competitions, there will always be certain things your institution will never be able to teach you, especially because they are expected to be a product of your instinct. Coding, in its essence, is just that — an instinct that translates into a solution, provided it doesn’t get trapped in a dreaded infinite loop on the way.
WEB WATCH
Top coding competitions
- Google Code Jam
- Facebook Hacker Cup
- International Collegiate Programming Contest (ICPC)
- AI Challenge (by University of Waterloo)
- TechGig Geek Goddess (for female coders)
TOP CODING SITES
- Topcoder
- CodeChef
- HackerRank
- Coderbyte
- TechGig