Turing Machine
“Turing Machine” is a coding team from IIIT-H, which comprises of three enthusiasts – Nadeem Moidu, Kunal Jain and Anish Shankar. They have qualified for this year’s ACM-ICPC World Finals, to be held in May. A casual rendezvous with the trio revealed their success mantra.
How did you guys come together?
Nadeem: Actually, the 1st team was Rahul Gautam, Yash and me in my 1st year. Then Yash, Kunal and me were together for some time in my 2nd year. We participated in Codechef-Snackdown and won there. Though we were not that good, we just won it luckily. Then when I came to my third year, Yash, Anish and I came together. That’s when we started the good part of our journey. Last year, we went to ACM world finals and won many other Indian contests. I knew Anish beforehand. Now as Yash has left, we have taken in Kunal.
Anish: I met Nadeem in IOI. When I participated, Nadeem was there as a coach, so we knew each other before coming here.
When and how were you first introduced to the world of Computers ?
Anish: I used to be afraid of computers long ago. That time I used to use computers just for gaming or browsing, that too from class 8 onwards. I started coding properly in class 11. So, programming is all quite recent. I participated in IOI in both class 11 and 12 but got through only in 12th.
Nadeem: I did some basic coding in the language BASIC in 8th or something — simple loops without algorithms. Later I had some basic C++ course which was twice a week in school. I did some graphics with it. After class 11, I too went to IOI training camp just like Anish. In this, 20 to 30 people are selected from all over India and are trained in the camp for around 2 weeks.
Kunal: I was introduced to computers when I was around 2 (laughs). I had always seen my father doing stuff and I tried to emulate him. He used to create software in Visual Basic which I was fond of. So, I read the books on my own, learnt from them, made software and sold some. In summer vacations, I would join in with my dad and try to help him. I made two softwares which were later sold. In class 11th and 12th I did nothing. I heard about algorithmic programming only after I came to IIIT. So, that’s where it all started.
How was the ACM-ICPC experience, from registration to Regional followed by the World-Final?
It all started in the beginning of the previous academic year. We used to take part in a lot of online programming contests hosted by different Indian universities. We ended up winning many of them too. That time we realized that we were better than most of the Indian teams. So, we knew we had a good chance.
Then two months before the competition, it got serious. We would practice 3-5 hours a day solving problems, including previous years’ contest problems. It was as if a real contest was happening. Preparation time used to be a lot of fun. We used to crack many jokes, discuss a lot of bizarre things and then we would to fight on who should code.
Coding is boring and is the least fun part of programming. Its finding the algorithm which is fun and followed by that, debugging is fun too.
Before going to the Kanpur Regional, we spent more than a month solving problems daily. In Kanpur we managed to solve seven problems. The last hour of Kanpur Regional was pretty interesting as we were confused about which problem to solve. So, we simultaneously started solving 3 problems and had two solutions. The fun part though was when couldn’t debug any of them. Finally we ended up solving none of them! We finished second.
Next was Egypt in February, 2011. There were 2 more months to go and at first we thought there was a lot of time. It then got postponed to May due to the Egypt riots. Hence, we stopped practicing. April was taken up by end-sems, meaning that we couldn’t practice then either. In this way, we kept procrastinating. Subsequently we had to go home for vacations or internships and returned just one week before the Finals.
Therefore, I don’t believe we got to practice as much we wanted to (laughs). Moreover, there was some issue with the tickets in that week.
We ended up getting our tickets one week later than planned and thus just reached in time. When we reached there one team commented that all teams got more time to practice. We were laughing inside that we didn’t even practice. Though they were a strong team, we did eventually beat them. They solved three problems and we managed four.
Honestly though, we were lucky in the world finals. 42 was a good rank as compared to how much we practiced for it.
You are in this year’s World-final too. What are you expecting this time?
The next world-final will be held in mid-May in Warsaw, Poland. It is one of the most competitive places for programming, where any random person will be better than the best in India. According to Top-coder rating there are around 20 coders who are ranked better than the top ranker from India.
Where did the name ‘Turing Machine’ come from?
The names mostly have nothing to do with coding. We tried different names since we knew we’d have to register. So until the last day of registration we hadn’t decided. In the end, we stuck with ‘Turing Machine’. It’s a prototype of a computer.
How often do you code?
We are supposed to code but we don’t. Top-coder has a contest like almost every week. SPOJ doesn’t have contests. It only has a huge archive of problems. We usually take part in Top Coder and practice on it sincerely. There is 1:30 hrs time for three problems. So, you get the time pressure. This pressure is what makes us work.
Q- Who is your Inspiration/Motivation?
Kunal: When I came here I met some of my seniors like Ajay and Anshuman who were high on SPOJ. They helped me a lot. Sometimes you just try, try and try and you don’t get anything. You don’t do anything for the next two weeks. You do everything other than this coding and then when you come back something happens. So, it is in phases. There will have to be some problem in between or else you will get saturated. After that when you let it go and come again, you’ll have some idea.
Nadeem: I usually don’t do problems alone. I either do during contest or as a team. Doing as a team is always fun. That’s a good part of a team, you don’t really get bored. On the other hand, if you take-up some problem and sit for it, you don’t get so easily. Instead you get demotivated. The longer you keep sitting on the same problem you get stuck on the same problem. Just getting stuck and not doing anything is of no use. So, try problems which are tough for you but it shouldn’t be unsolvable for you. That doesn’t really help.
Anish: Usually while debugging I go through it line by line. Sometimes it helps, sometimes it doesn’t. Sometimes you have just forgotten to put a semi-colon, put an extra semi-colon, or your whole algorithm could be wrong. Taking a break usually helps. There are some common-errors for which we carry a list.
Who is your role-model?
Anish: I don’t have a role-model really. There are people I admire – like Petr Mitrichev and Gennady Korotkevich but I don’t have any role-model as such.
Nadeem: There’s this guy – Gennady Korotkevich. He’s 17 years old now. The IOI competition which I mentioned before has participants who are very brilliant in programming. Some of them are from class 10th itself. So, the medal cut-off is such that around 25 get gold, 50 get silver and 100 get bronze. Hence getting a gold is pretty tough. When Gennady was in class 6th, he came very close to a gold. And after that, he has been a champion gold winner all along.
Kunal: Even I don’t have any role-model. But I do admire a lot of people. My seniors like Anshuman Singh were a motivating factor for me.
What are your views on Open-Source Coding?
Kunal: It is hard to start. I tried but I couldn’t really do much. Moreover, there is no one really to guide you. It is not easy to find bugs. Even if you download the whole source-code, there are million lines of code you have to go through. Over that they don’t have good resources where one can read up and proceed further. If you want to do it, you should really be into it. I tried Android too but couldn’t do it.
How much does software engineering involves algorithmic problem-solving?
Kunal: There isn’t much relation between the two. When I was an internee at Google, there were people who were doing algorithmic problem-solving and had also participated in the world finals. But now all they do is write for loops, nothing else. So it is not related as such, but it does help you when companies come to hire you. They test your analytical skills on your problem-solving aptitude, to determine how you arrive at solutions to different problems.
Nadeem: It helps in the way you think. If you want to write a software, and you are good at problem solving, it’ll help you write a better piece of code. Either way, the level of questions they ask while hiring is something any IIITian can match up to. Our assignment questions are really tough. Eventually problem solving isn’t what most of us end up with while at our jobs, but fortunately for us , while hiring they rate us based on our problem-solving ability!
What other aspects of CS you like?
Anish: I generally like tweaking with stuff on Operating Systems. I like to find out the inner working of the system and making small script-based stuff.
What are your future plans?
Nadeem: Obviously software engineering pays a lot, so I would like to try it out for some time, but not for long. I don’t want to sit and code all my life. Later, I would like to enter into academics or probably research.
Anish: I plan to enter the software engineering world but after that I just want to see what I really like – whether it is coding or something else. So, I would decide after a few years.
Kunal: I think I’ll quit the coding job sometime soon. And probably I will venture into start-up or some business. I already have an offer from Facebook but I am not really planning to stay in US for long. So I’ll come back to India and see what I can do.
And how has been your CGPA’s been ?
Anish: Well I am not a person who is interested in having a really high CGPA, I just like to maintain an average grade.
Kunal (laughs): Well, all I would say is that if the course is interesting, you don’t really have to study for it.
Anish : Yes. I agree with Kunal. Otherwise it is usually the last-minute study.
What are your hobbies?
Kunal: I watch a lot of TV shows. It is relaxing. I sometimes read novels which people suggest to me.
Anish: I watch a lot of movies and TV shows. I also like gaming.
Nadeem: I play football and small computer games.
Any piece of advice for the students?
Nadeem: Work in groups for any activity, especially coding. If you have a team, it is much more fun. You have people around to motivate you.