The PAG Experience : Part 1

And how I got there.

Vinay Aggarwal
Programming and Algorithms, IITR
6 min readDec 26, 2017

--

I was one of the many aspirants who wanted to clear IITJEE and get the opportunity to study in one of the “prestigious institutions” in India. My school was affiliated to CBSE and I had Computer Science as one of my subjects. At that time, the IITJEE preparation was more than enough to keep me occupied and I didn’t get the time to delve into the field of programming. I was taught C++in school and I was doing a pretty good job as far as my scores was concerned. I came to know about competitive programming and sites such as Codechef from my batchmates at coaching. That was around the time when JEE(Advanced) exam was approaching. After JEE, I tried to solve some of the easiest problems and that was when I got my first correct submission. I can tell you one thing for sure - seeing your first green tick will give you chills for sure. After that, the results of the entrance exams were declared and I landed CSE branch at IIT Roorkee.

Eat. Sleep. Code. Repeat.

Many of my friends had started competitive programming by the end of the first month. I, along with my friends, met seniors and they were more than happy to guide us regarding how to pursue it. We started participating in Codechef’s monthly Long Challenge which really aided us in improving our skills. I got to know about Programming and Algorithms Group (PAG) during the Intro Talk in late August. After that, I thought to myself that I wanted to be a part of this. In the end of September, PAG conducted online contests for recruiting first year students (on Erdős and CodeVillage). The top three contestants were to get direct entry to the interview round. I was not among the top contestants (which was something I had anticipated). Then there was a written test. It was based completely on mathematical and logical reasoning. More than 250 students wrote that test and fortunately, I got selected for further rounds. The next round was a one-on-one interview comprising of brainstorming puzzles and some more logical questions. It was a long interview but not stressful at all. We had unreserved discussions with the seniors about the problem. It was followed by another one-on-one interview round but this time the questions were based on programming problems (although we were not supposed to write any code). It was followed by a general interview. The selection was not based on how good coding skills you had but how much you were willing to learn and contribute to the group. The results were announced late at night and I was thrilled to see my name on the list. That was the beginning of an amazing journey for me.

Erdős is an application for Math enthusiasts developed by SDSLabs, IIT Roorkee

In PAG, I met some of the most brilliant seniors and coders of our country. Competitive programming is a sport. But there is one difference. In football, if you are good, the chances of you playing against Messi or Ronaldo are pretty slim. But here, you get the opportunity to compete with the best all around the globe. You can judge yourself and rate yourself by considering your performances. I came to know about ACM-ICPC, a world wide contest which is organized yearly and is equivalent to the world cup event. It consists of three rounds, first being an online round followed by onsite round and then the prestigious World Finals. It’s a dream for coding enthusiasts to go for the World Finals. Since 2013, one team of PAG members has represented IITR at the World Finals, 2017 being the only exception. Team Triangulation is currently a strong contender for the World Finals 2018.

Being a member of PAG cultivates a spirit in you to outperform yourself in each contest. Competing with other adroit coders in the group motivated me to continuously enhance my skills. Giving more contests is directly proportional to improvement in your skills. Seniors at PAG conducted a series of lectures introducing us to a vast multitude of topics and techniques required to do well in contests. Number theory, bit manipulation, string manipulation, standard template library etc., were some of the basic topics. Then we covered segment trees, dynamic programming, graph algorithms like bfs and dfs. They asked us for our feedback and asked for suggestions of topics which we would want to learn. When you solve problems, you might face difficulty in tackling a particular set of problems. We were given the opportunity to ask for a lecture on that topic. The facebook group provided a platform for posting our doubts. Someone was always there to clear the queries. Contests on codevillage and QOTW etc. immensely benefited us. And amidst all this, we reached the end of our first year.

Trying to find the most optimal solution

Now there used to be a rule (read tradition) in PAG to expel all the first yearites after the completion of first year and again recruit students in the second year. This ensures that only those who really want to continue programming stay in the group (but this will be discontinued now as the seniors say it is “not in the best interests of the group”). As a consequence, we were removed from the slack channel, but not before the seniors gave us suggestions on how to utilize the summer vacation.

After coming back for third sem, I was excited and followed the Facebook page to stay updated regarding the recruitment of second year. There was no test this time but we were shortlisted for interviews based on our programming profiles .Additionally, a contest was held on CodeVillage which was mandatory for all aspirants and top 4 were again selected directly. This times the problems were rigorous programming problems rather than logical ones. After that, we were asked to give our suggestions on what can be done to further improve the group and how do we plan to contribute to the same. The results were announced the next day. Some of the students chosen in the first year couldn’t make it this time. Also, a lot of new faces were chosen because of their passion towards CP and how well they were doing in contests. How regular you were in giving contests was another factor responsible for your selection.

Life is full of ups and downs!

The guidance I received as a member of PAG changed my way of approaching a problem. As a second year member, you get to contribute and when you prepare to teach, your grasp on that topic shoots up. Thinking about the best way to make others understand a concept increases your understanding of it considerably. I have enjoyed my time here. But it is not that we only code all day. We have our fair share of fun and a lot of people are involved in other campus activities as well. The annual trip and frequent chapos are surely not to be missed(Chapo is IITR lingo for Treat). You meet new people and your social network is strengthened. Getting stuck on a problem and thinking how to solve it during lectures, discussing how to solve the same problem in different ways with your friends, skipping dinner at mess cause you were busy giving contests and once you are adept, making new problems and discussing them with your friends and seniors : these are some of the best experiences I, and I believe most people in the group, have had. To conclude, I would like to say that my time at PAG has been enriching and overall, a great learning curve.

Vinay Aggarwal is a 2nd year Computer Science and Engineering(CSE) student at IIT, Roorkee. He is currently a member of PAG and has been with us since October, 2016. You can find him on Codeforces here.

This is the first in the line of stories of our members. Follow us for more such stories!

Programming and Algorithms Group, commonly known as PAG, is a student run group that fosters competitive programming under the Software Development Section at IIT, Roorkee. We have a forum open to all doubts pertaining to competitive programming for everyone.

--

--