CodeChef
  • PRACTICE
    • Code, Compile & Run
    • Beginner
    • Easy
    • Medium
    • Hard
    • Challenge
    • Peer
  • COMPETE
  • DISCUSS
    • Forums
    • Blog
    • Wiki
    • Facebook
    • Twitter
  • COMMUNITY
    • Host Your Contest
    • Go for Gold
    • Campus Chapters
  • HELP
    • Frequently Asked Questions
    • FAQ for Problem Setters
    • Problem Setting
    • Tutorials
    • Long Contest Ranks
    • Short Contest Ranks
    • Lunchtime Ranks (all)
    • Lunchtime Ranks (school)
    • Event Calendar
    • Top Contributors on Discuss
  • ABOUT
    • About CodeChef
    • Team CodeChef
    • Press Room
    • CodeChef Financials
    • CEO's Corner
    • Contact Us
    • About Directi

Karan Saxena takes CodeChef to his School

Posted by karan on November 21st, 2013 Filed in Schools, Tech Talks, Volunteers View Comments

17/10, morning assembly time at City Montessori School (CMS), Lucknow, Gomti Nagar branch: A group of five hundred students from grade XI and XII gathered in the main auditorium. I go up on stage to explain all these budding students the concept of competitive programming. “Hello juniors” “Well, any guesses as to why I called you all as juniors?”… “Hmmm… as many of you might have guessed it, yes, I gave my ISC board examinations in this very same auditorium this year only”. “Now coming to a formal introduction, I am Karan Saxena, a First year Computer Science student at Sir MVIT, Bangalore. I am the Technology Head at Google Students Club and a freelancer at JAR (Just Android Resources) – India’s first all Android magazine.”

I then go on to ask them the next question- “What is a code?” I am expecting some enthusiastic answers but my hopes are soon dashed to the ground as only two hands go up. Nevertheless, I call one of them up on stage to answer. “Code is a small part of a program” “Correct. But don’t you think that’s a very dull kind of a description?” I then give them an intuitive definition of ‘code’- “Code is Logic. It means understanding the process and making it simpler. It is converting simple day to day tasks into mathematical terms and symbols”, I explain. I then show them the video created by CodeChef. Next, the obvious question is ‘Why should I code?’ or ‘What kind of people should learn coding?’ For the answer, I show them the 5min version of Code.org video.

After these two videos, I go for an example of ‘Binary search’. Over the next few minutes, I explain them ‘Binary Search’ from grass-root level with the help of a presentation. Then I announce that I have a twitter sticker and whosoever will give the correct complexity of binary search will get it. In the intermediate time, I explain them the definition of complexity. A student comes up and gives a correct answer as O(log N). I see a puzzled expression on the faces of students. I then intuitively explain them how log N came and that log is with base 2 and not 10 or ‘e’. Over the next few minutes, I go on to explain them that how India is technologically progressing but it is nowhere when it comes to competitive coding. I tell them that the only solution of this problem is to start early, and the way to start early is to practice and participate as much as possible. I then explain them what is ZIO/ZCO, IOI and ICPC. I tell them that nobody has ever achieved a gold medal in IOI. I explain them about ‘CodeChef Go for Gold’ initiative and ‘CodeChef Lunchtime’ programming series and that they should start participating in it as early as possible.

Watch the video of the assembly here: Karan Saxena, introduces CodeChef to students from City Montessori School, Lucknow, India

Wrapping up the session, I invite the interested students to the computer lab where they can have a hands-on session and ask their doubts. About 30 students turn up in the computer lab and have conversation with me over the next one hour. It was nice to see the enthusiasm with which they put forward their queries. All of them left with a sense of satisfaction and eagerness to participate in the upcoming ZIO/ZCO.

Overall, I felt very satisfied with the session. It was small yet effective step towards promoting programming culture. I’ve done my class XI and XII from CMS only. It’s an outstanding academic institution and is counted among premier institutions in the country, but the thing I noticed during my time is that there is very less focus on programming, specifically competitive programming. Students are extremely brilliant here but only focus on science subjects and study computers only with point of view of examinations. I wanted to change this and hence approached the principal, Ms. Manjit Batra, who, gave me permission to conduct this session for the betterment of the students. She also allowed me to act as a mentor to the students and help them with their doubts and also to keep them updated with the contests happening. I’ve created a group on facebook where all the class XI and XII students can discuss their programming problems and solutions with other students from the same institution. All of them have my number and are welcome to call me anytime they feel necessary. I’m constantly in touch with all of them via the group. Many of them are participating in this year’s ZIO/ZCO and I’m hoping to get a good result from these students.

Lastly, I would like to thank the whole of CodeChef team for taking up this one of its kind initiative which will prove to be very useful for budding young programmers. I wish them a grand success in this endeavor.

Best,
Karan Saxena

  • Share/Bookmark

ACM ICPC IIT KGP online round goof-up. We are sorry

Posted by anup on November 6th, 2013 Filed in Tutorials View Comments

Dear CodeCheffers,

As the time nears the declaration of the selected list of teams for the onsite, we think we must own up the mistake and issue an apology. We understand that there were some problems with the online round for ACM ICPC 2013 IIT KGP regionals. For those who missed it:

  • Despite a few days of frantic optimising and working hard, we still experienced some issues during the last few minutes of the contest. This was due to heavy load on our database server which was unexpected given that we had fixed all such issues long back and had not experienced anything like this in any recent contest. There were multiple complaints of people not being able to access the site towards the end of the contest.
  • The problem statement of the problem EDITLIST was slightly ambiguous and to make matters worse, at 49th minute into the contest, we answered to a query in a haste making a comment that changed the problem specification and made the problem much easier to solve, but led to getting WA for many who tried to solve it in this way. Quite a few of you were not affected by it and were able to still get the solution accepted. Well done. For others, this led to a lot of frustration.

For the first issue, we investigated and found out that it was caused due to an un-optimised query that fetches you all the submissions of a particular problem in the practice section! We are in the process of fixing it, but we thought we should at least tell you what the reason is while the fix happens. To make up for it, we had extended the contest by another 10 minutes. We also eliminated all penalties for those who were affected by the slowness and ended up submitting the same solution multiple times.

The second issue impacted users much more. And we realised that we had goofed up, only after the contest. At this stage, we sat down and evaluated all the options to salvage the situation. We knew that we could not be fair to everyone from that point. No matter what we did from there, there would be one section who would be affected by this mistake of ours. Considering every possible scenario (including a re-contest), here’s what we decided to do:

Change the test data such that the solutions which solved the problem without sorting the output list also passes. This essentially also meant that the problem no longer required a DP solution to pass and became easier than what it was intended to be. We rejudged all the solutions which had not passed during the contest for this problem with the new test data, leaving aside those that had passed. This resulted in more teams now solving the problem.

Some of you are bound to feel (especially those who wasted a lot of time on this problem) that this isn’t fair. We know it, but there is not much that we can do about it. We screwed up, and we’re really sorry. Here are the other options and an explanation of why we took this approach:

  • Do nothing – Everyone had access to the same problem statement and the same comment, right or wrong. Many teams were able to solve it based on that. So why not do nothing about it and ignore the mistake. We almost did this, but then we felt it was just not right. There were also teams who read the comment made by us and kept trying to solve this seemingly new version of the problem without any success. And we had guided them towards this. So it was important for us to correct our mistake and acknowledge their effort at the very least.
  • A re-contest – Those affected have called for this, and though this may seem to be a fair solution, it is not and there are many factors that makes it almost impossible for us to do so. The execution of each contest (including this one) involves just about as many man hours of work on the problem setter’s / testers end as the number of man hours extended by the participants when the contest runs. And then finding the right schedule for all the people to participate is also not trivial. A re-contest would also waste the time of so many more people. And most importantly, it will be unfair to those teams who have already done very well in this contest and deserve to be there onsite.
  • Re-judge EDITLIST, altering the test data to accept both solutions – This is what we did. As mentioned earlier, it was not fair to everyone. It was specially unfair on those who spent more time in solving the DP version of the problem and not the new easier version. And also to those who got stuck at solving this one problem. But it did allow us to be fair to those who got misguided by our comment and acknowledge their effort.

While we acknowledge that we have goofed up and we regret it beyond what we can put across, we also think, that not being stuck on a problem, you are unable to solve, is among the many things that can propel your team to be a good ICPC team. A team of three wasting all their time on a single problem can cause a lot of frustration, but then that should not warrant wasting the time of so many other teams that have done well and also learnt to deal with such situations and got more efficient.

Some people will undoubtably feel like we should’ve taken one of the other approaches listed above. We’re sorry, we cannot do that. Don’t hate us. We know we have goofed up. And we did try our best to be as fair as we possibly can in the given circumstances. We wanted a good fair contest as much as you all did. We did receive some positive feedback on the problems being good as well. We have also published the editorials for the problems. We did try to do as much as we can.

For those who will not be able to make it to the onsites due to this mistake of ours, we sincerely apologise. We know, nothing can make up for it. But there is only so much we can do. Please do not get demotivated and do not give up. Please practice hard for next year. We will be around to help you all in your preparations. We assure you, that we will be extra careful next time around. We are sorry.

Anup

  • Share/Bookmark

Recent Posts

  • Sidhant’s Remarkable IOI Journey
  • ICYMI: Here’s our Recap of CodeChef’s July CookOff
  • ICYMI: Here’s our Recap of CodeChef’s July Long Challenge
  • ICYMI: Here’s our Recap of CodeChef’s June Lunchtime
  • ICYMI: Here’s our Recap of CodeChef’s June CookOff

Categories

  • About (14)
  • ACM ICPC (23)
  • Announcement (304)
  • API (2)
  • Campus Chapters (7)
  • CCDSAP (4)
  • CCDSAP Stories (5)
  • Certification (6)
  • College Contests (9)
  • Contests (279)
  • Events (54)
  • FAQ (1)
  • Features (52)
  • Interviews (25)
  • Languages (1)
  • Meetup (4)
  • Open Source (1)
  • Practice Problems (8)
  • Prizes (20)
  • Problems (15)
  • ProblemSetting (1)
  • Programmer of the Month (34)
  • Schools (13)
  • SnackDown (2)
  • Tech Talks (23)
  • Tutorials (34)
  • Uncategorized (1)
  • Volunteers (4)
  • Winners (122)

Recent Comments

  • alip.web.id on ICYMI: Here’s our Recap of CodeChef’s July Long Challenge
  • alip.web.id on ICYMI: Here’s our Recap of CodeChef’s July Long Challenge
  • Ankita Sahu on Is Your Institution on CodeChef?
  • arsal on SnackDown19 Live Contest Updates
  • Simran Gujrati on Tutorial for problem “Paying Up”

Recent Pictures

Blogroll

  • Documentation
  • Plugins
  • Suggest Ideas
  • Support Forum
  • Themes
  • WordPress Blog
  • WordPress Planet

Archives

  • September 2019
  • July 2019
  • June 2019
  • May 2019
  • March 2019
  • February 2019
  • January 2019
  • December 2018
  • November 2018
  • October 2018
  • September 2018
  • August 2018
  • July 2018
  • June 2018
  • April 2018
  • March 2018
  • February 2018
  • January 2018
  • December 2017
  • November 2017
  • September 2017
  • August 2017
  • July 2017
  • June 2017
  • March 2017
  • February 2017
  • January 2017
  • December 2016
  • November 2016
  • October 2016
  • September 2016
  • August 2016
  • July 2016
  • June 2016
  • May 2016
  • April 2016
  • March 2016
  • February 2016
  • January 2016
  • December 2015
  • November 2015
  • October 2015
  • September 2015
  • August 2015
  • July 2015
  • June 2015
  • May 2015
  • April 2015
  • March 2015
  • February 2015
  • January 2015
  • December 2014
  • November 2014
  • September 2014
  • August 2014
  • July 2014
  • June 2014
  • May 2014
  • April 2014
  • March 2014
  • January 2014
  • December 2013
  • November 2013
  • October 2013
  • September 2013
  • August 2013
  • July 2013
  • June 2013
  • May 2013
  • April 2013
  • March 2013
  • February 2013
  • January 2013
  • December 2012
  • October 2012
  • September 2012
  • August 2012
  • July 2012
  • June 2012
  • May 2012
  • April 2012
  • March 2012
  • February 2012
  • January 2012
  • December 2011
  • November 2011
  • October 2011
  • September 2011
  • August 2011
  • July 2011
  • June 2011
  • May 2011
  • April 2011
  • March 2011
  • February 2011
  • January 2011
  • December 2010
  • November 2010
  • October 2010
  • September 2010
  • August 2010
  • July 2010
  • June 2010
  • May 2010
  • April 2010
  • March 2010
  • February 2010
  • January 2010
  • December 2009
  • November 2009
  • October 2009
  • September 2009
  • August 2009
  • July 2009
  • June 2009
  • May 2009
  • April 2009
  • March 2009
  • February 2009
  • January 2009

  • About CodeChef
  • CEO's Corner
  • CodeChef Campus Chapters
  • Blogger Community Program
  • User Group Outreach Program