26 August 2010 2 Comments

ACM-ICPC How to get started?

by Chua Hock-Chuan (ehchua@ntu.edu.sg)

To know more about ICPC, read the ICPC mother site (@ http://icpc.baylor.edu/icpc/) or Wiki “ICPC”. To summarize, ICPC is the programming contest for the university students (just like the IOI – International Olympiad in Informatics – is the programming contest for high school students). The ICPC contest rules are:

  • Each team consists of THREE students
  • Each team is given only ONE computer
  • Each team is given 5 hours to solve 8-10 problems (in C, C++, Java and possibly Pascal)
  • The team who solves the most number of questions in the shortest time is the winner
  • There are two stages for the contest: Regional’s and the Grand Final. Winners of each regional contest proceed to the Grand Final

PREPARATION…

Step 0.1 – Read, Read, Read: on programming, data structures, algorithms, and object-oriented programming.

Step 0.2 – Pick your Language: Pick a programming language that you are comfortable, either C++ or Java or both (but not C nor Pascal as they lack advanced libraries).

Step 0.3 – Gather Programming Resources: Gather programming books and materials, especially online references and resources.

Step 0.4 – Setup your Programming Workbench: If you can afford a laptop, get one (so that you can program at the Starbucks and in the train).

Depending on the host, the contest could be run on Linux (most likely) or Windows or any other exotic machines.

For Java programmers
Use JDK 1.5 and above, which greatly simplifies the IO processing. The Java IDE of choice is certainly eclipse – an open-source IDE supported by IBM (the official sponsor of the contest), and it runs on both Linux and Windows. For newcomers, read “How to install Eclipse“, “writing your first Java program in Eclipse“, and “debugging Java program in Eclipse“.

For C/C++ programmers
It is harder to decide because you have a few options:

Important for All Programmers

  • You should be familiar with the use of graphical debugger to improve your programming efficiency and productivity.
  • You should be familiar with the libraries, such as Java’s API and C++ STL.
  • [TODO] more

Step 0.5 – Online Judges and Training Sites: There are many “online practice sites” called online judge, that archive hundreds (or even thousands) of past contest problems. You could try the problems at your own time and own target, and submit your solutions online. You program will be automatically compiled and run with a carefully-designed set of test inputs. The status of the run, such as “accepted”, “wrong answer”,”compile error”, “presentation error”, “time limit exceeded”, “memory limited exceed”, “output limit exceed” will then be shown to you. In the case of compilation error, some of the sites may also show you the compilation error messages.

These are the sites that I frequently used (google or wiki “icpc”, “online judge” to get the full list).

  • Peking University Online Judge (PKU): This site support many languages, including Java (JDK 1.5), GNU’s GCC/G++ (for C/C++) and Visual C/C++ version 6.
  • Universidad de Valladolid Online Judge (UVA): This is the most reputable site, with a good forum (equipped with search). The support for C++ is excellent, however, the support for Java is mediocre (no JDK 1.5).
  • USA Computing Olympiad (USACO) Training Program: This is the training site for IOI (International Olympiad in Informatics for high school students) instead of ICPC. However, it provides a very systematic training on the algorithms frequently encountered in contests, e.g., shortest path, greedy, dynamic programming, heuristic search, minimum spanning tree, and etc. It supports C, C++ and JDK 1.5.

[...]

22 July 2010 Comments Off

There Must be Contest

We improve ourselves by victories over ourselves. There must be contest, and we must win.

—Edward Gibbon

Have you ever competed in a programming contest? If not, you must have deliberately rejected the opportunity, because there is an amazing number and variety of competitions for programmers—more, it seems, than for just about any other (nonsports) professional.

If you haven’t competed, you may not be aware that it’s possible to make a six-figure income purely from contests—or that there are companies whose entire business model consists of running programming contests as the sole means of producing commercial software. There’s a whole subculture of competitive software development within the industry, and it has many parallels with professional sports. (Except that nobody in competitive programming is talking about banning the use of performance-enhancing caffeinated beverages.)
[...]

5 July 2010 Comments Off

Story of a few “Fellow ACMers” – I

Story of a few “Fellow ACMers” – I
By Ahmed Shamsul Arefin

Hello programmers, after “A Virtual Meeting with Worlds ACM-ICPC Programmers” [1] again I am back to the readers with the stories of a few people who are dedicatedly working for the development of ACM/ICPC spirit around the world. Some of us have already met with following people, so I guess I can take an opportunity to tell a brief story about these wonderful people whose enthusiasm have made a prestigious class of people called “ACM Programmers”.

Dr. William B. Poucher

Dr. Poucher is an ACM Fellow and Professor of Computer Science, Baylor University. He has got his Ph. D in from Mathematics of Computing (Combinatorics), Auburn University, M.S. in Mathematics and B.S. in Mathematics Music, Auburn University.

[...]

5 July 2010 2 Comments

Obstacles in Programming Contest : Bangladesh perspective

Obstacles  in Programming Contest : Bangladesh perspective

Though Bangladesh is a third world country, we have many limitations here but we are doing well in programming contest the majestic competition of wit and wisdom. We have done well not only in online contests but also in the ICPC or real-time contests. But it is centralized (conceptually and geometrically (in the map)) in one area – *Dhaka*. Only few university students from capital city are doing well. All are renowned Public or Private Institutes (especially BUET, DU, NSU, EWU, AIUB, SEU) and under extreme facilities than the other universities all over Bangladesh. Good teachers, rich library, better students from all over the country are the main factors of doing well in contests. What about the institutions or universities situated in a rural area and about miles away from the main town. You may wonder! In many public universities outside the towns do not have adequate internet connection for its computer science students. Some of our students come to town and browse in the cyber-cafes and submit problems. Don’t think that it is cheap; it is costly for the students. The students from outside the town don’t get extra money from their parents to do programming contest like extra curriculum. They do these things by saving money by working as a private tutor in the town. No coach, no good new books, no internet or communication facilities are making this meritorious students just a lay man! But recently some universities out-side of Dhaka (like SUST, CUET,RU-one/two teams) are doing better, it is only because of their students’ own effort.

[...]

Tags: ,