Friday, March 5, 2010

The Best Programming Experience Ever..

So finally 2 days after the "State Level Programming Contest Final @ Infosys Bhubaneswar DC on 3rd March"  I have got some time to write about our experience in the same. I may not have the same excitement and feeling now that I had just after we (Rajesh Patidar,Mamta Sinha and me) were declared the winner at the state level but the experience that I have got from this contest is really amazing, one of the best ever and is really worth sharing with you.

So here it goes:-
For those who don't know about Aspiration-2020, it is a programming contest being organized by Infosys every year starting from 2008-09.In year 2008-09 (won by our own Anurag Sharma & team) the journey ended with state level finals and there were no national finals but this year there is one and it is the 5th and final round of the contest(we are in it :) ).As it usually happens in any contest, in this contest also life gets tougher and tougher as you move in next rounds.The intensity level of competition can be guessed just from the fact that for the state level finals only 6 best teams were selected from 80 colleges in 5 states  or better say 6*3=18 students from 26,000 registered students.(As said by infosys)

Now the story of State finals begins:-
---------------------
We reached infosys BBSR DC by auto around 8:00 AM for registration and for some pre-work and were welcomed with nice breakfast.The contest was to start from 10:00 AM so we discussed our strategy to approach programming problems.Initially we thought that we will distribute all 3 problems among us and start solving simultaneously.
But from my previous experience I felt that this is not good because:-

 1)We were given a single PC (not three) so at a time a single person can read a problem properly and switching among problems consumes a lot of time and it also also create a lot of disturbance.

 2)When a single person writes his/her code there is more probability to commit mistakes as compared to the case in  which one person writes code and rest of 2  follow him/her whether he is committing some syntax error.

 3)When three persons develop an algorithm then there are less chances of missing corner cases or some special test cases by the proposed algorithm.

  With these kind of thoughts I suggested my team mates that it will be good if we solve a single problem at a time in the order of increasing difficulty and they accepted it.
 
  The contest started at 10:00 AM and as per our strategy we picked up the easy level problem and it hardly took us 5-7 minutes to successfully solve it.We were happy and with an improved confidence we picked up middle level problem.This was a standard Dynamic Programming problem and we came up with an efficient algorithm and coded it very fast but when we submitted, some test cases failed.We checked the logic several times but were not able find it and the signs of frustration started appearing on our faces except Mamta's who was still looking confident.
 
  We had no alternative other than to leave the middle level problem and to move on to the difficult one which involved a huge mathematical calculations.It took us some time to understand the problem properly and then we developed a recursive algorithm for it.But this time again some invalid test case failed and now those signs of frustration, tiredness started rocking.
 
  It was hardly 11:30AM and still one and half hour was left.I and Patidar thought about leaving the contest with a hope that with full points from one problem and some partial scores from rest two we have some chances of qualifying for national finals.But Mamta stopped us and said we should give it some time.We sat but for nothing but to talk and gossip right in Lab where other teams were solving their problems.
 
  After 15-20 minutes of gossiping when we looked at the middle level problem,we saw a ray of hope.As we Organized "The Codiac Programming Contest" in our college on same platform so we had a little bit idea about the format of the test-case file that was being used by server to check the validity of the submitted program.Using that idea we reorganized our code keeping the algorithm intact and submitted and guess what, it was successful. :)
 
  Now it was the time for those signs of frustration,pain,tiredness etc to fade away at least for that day because with 2 successful submissions we were bit safe. But the story was to be a bit better as with the  confidence level at its peak we picked up the difficult problem again,came up with a invalid test condition,wrote it and submitted successfully.

By 12:30 we finished the contest and left the lab with smiles and brightness on our faces thinking and discussing  that we will be winner today and we will qualify for national level final and that happened.

After some photo session there was prize ceremony. Winning at The State Level was great but for me the experience that I had was equally important because through this state final round I realized the importance of some of the best human values which I had read or heard but never felt much in real life.
Some of these values which I find that helped us or we used to win this contest are:-

--*--Team work:- In previous rounds we solved maximum 2 problems but this time we changed the strategy and solved all 3. The only difference was that this time we were working as a team.

--*--Never Give Up:-As you read if we would have given up after one and half hour we would not have been winner.Credit goes to Mamta.So try again and again to achieve what you want.

--*--Doing something may award you with some intangible skills  :-Just because we organized Codiac Programming contest we were able to solve one problem otherwise we would have stood runner-up instead of Winner.

--*--Diversity:-Diversity in a team can help in generating new and different ideas that is a theory but diversity in team can make you winner is practical.Mamta is not big coder but she played an important role in winning this round.

            Ab jaan loge kya, kitne point pe point banwawoge,thode se baith kar khudh se bhi bana dalo aur comment mein de dena so that other people can have a look on them.
            Ab apni kahani khatm karte hain aur agar sab thik thaak raha to after National Level Finals (on 19th March @ Hyderabad) I will tell you another story because that will be the ultimate test of what we have learnt  till now.
           
            Hope, we will make it. :)