Assalamualaikum everyone. Welcome to the first ever post from iiumicpcteam.com. In this post I will be giving an introduction on what is ACM ICPC.
ACM ICPC is basically a programming competition. Actually its more like a problem solving competition rather than a programming competition because programming skill is not the most important skill. Most solution will not be more than 200 lines of code. However, the algorithm used will be complex. At least at a higher level. The nature of programming in this competition is mostly algorithmic. Or in another word, you make algorithms. Not interface, not thousands of line of interconnecting codes. That said, that is the opposite of what most programmers will do.
A web programmer for example, will deal with HTML, the interface and the server side code, which mostly does CRUD (Create Read Update Delete). A web programmer will repeat this hundreds of time. So in another word, lots of simple code. In contrast, the codes in the ACM ICPC are small but highly complex. It involves things like tree and graph and binary search. Things that most professional programmer will never code, but actually use indirectly.
Look at tree for example. In data structure, a tree is a connected graph in which every two node have a unique path. Website will most likely uses some sort of Database. And most database internally uses, a structure called a B-Tree which is a form of search tree. A web programmer only need to know SQL to interface with the database. But the database will use complex algorithm. These algorithm are important, because lots of website depends on it. Therefore, the algorithm need to be performed in a fast and efficient manner.
Some say that, ACM ICPC do not have much practical benefit. I would say, “kinda”. It is true that most of the time we will never have to deal with these kind of algorithm. However, eventually you will reach a point where you have to deal with this kind of complex instruction. And when that time come, you will be glad that you actually learn something from this competition. Most of the time, this competition is a sport. Look at football for example, its just a bunch of people kicking ball into a rectangle box at their opponent’s place. How many times will you do so in real life? Compare to that, ACM ICPC is far more practical.
Even though in real life, we will most likely won’t use the algorithm in this programming competition, ACM ICPC contestant are very much wanted by big corporation. Any contestant that reached the ACM ICPC World Level will be given a guaranteed job at IBM. However, other companies like Facebook, Microsoft and Google will probably take them first. Do you know that Google interns are paid about $10,000 a month? Big companies are looking for people who specialize in such complex algorithm because they have big complex problem and they can save a lot by finding a solution for it. For example, Facebook infrastructure is built using PHP. But they want more performance than a normal PHP interpreter can give, so they make a program called HHVM which is several time faster than normal PHP interpreter. By building it, they can save a lot of money because their server need is now reduced. But making such software is not what normal programmer would do. It need better programmer. It need programmers who compete in this programming competition.
Even if you did not reach a significant level, competing in such competition is great for your CV. Thats because anyone who participate in this competition are known to be very good programmer and fast learner. You need to be one to compete. Plus, it really improve your programming skills, much like playing football can improve your health.
In Malaysia, the ACM ICPC competition is called the Al-Khawarizmi programming challange. IIUM is one of the founder of this programming competition in Malaysia. In national level, IIUM teams are generally ranked quite high. In 2012 one of IIUM ICPC team manage to qualify for world final. Until today, IIUM is the only university in Malaysia that manage to enter the world final. IIUM also hosted the 2014 and 2010 ACM ICPC Asia regional level, and in 2011, the World Final.
However, that is all in the past. Nowadays, IIUM still compete quite well in national level. In 2014, three of IIUM team manage to rank in the top 10 for the national level. One of the team won the third place. Beyond that however, our performance are lacking compared to other regional level teams. That is why we need you! We need talented people to train and compete together and be the next IIUM ICPC Team. If you are interested in such programming contest, or just want to have another way of filling up your free time competitive programming is an excellent hobby. Through this website, we will try our best to update any event that has/will happen in IIUM which is related to ACM ICPC. So what do you guys think? Drop down your comment down below.