Q: What is ACM/ICPC?

A: ACM International Collegiate Programming Contest (abbreviated as ACM-ICPC or just ICPC) is an annual multi-tiered competitive programming competition among the universities of the world. ICPC is organized by ACM, Association for Computing Machinery. Besides ICPC, ACM hosts many other important events in computer science, e.g., every year ACM will select a Turning Award Winner.

Q: What is the benefit of participating programming contests?

A: Many. IT companies, and some best trading companies and hedge funds in finance, prefer students that are competitive in algorithms, programming, and math. Many students who have experience in ICPC get the best offers from Google, Facebook, and Microsoft. The skills learned in programming contests not only help you find a good job, but also make you technically component in all areas that are related to computers. Most importantly, solving programming problems is fun.

Q: How to enter HKUST ACM Programming Team?

A: In middle September every year, we have a team selection contest. Any student in UST can participate this team selection contest. At least six students will be selected as the ACM programming team.

Q: When is this year's team selection contest?

A: The team selection contest of the year has over, it was held on 13 Sep 2014.

Q: What would the team selection contest be like?

A: The contestant will be asked to solve 6-8 programming problems within 5 hours, using C++ or Java (Pascal is also allowed, but talk to yinz@ust.hk first). You may want to read problem sets in past years. ("Local Contest" section of http://www.cse.ust.hk/acm/)

Q: How to prepare team selection contest?

A: Solve problems at Online Judges. 1. USACO Training Gateway, for starters. 2. Codeforces, Topcoder, and POJ to practice on more problems. Coderforces and Topcoder also have solutions to their problems.

Q: What is COMP 3071 Honors Competitive Programming?

A: This is a training course reserved for the programming team. It is offered in every Spring semester. Only team members who have participated in our weekly training sessions for at least semester and have got a ranking above the 30th in at least one of ACM-ICPC Asia Regional Contests are eligible to enroll. The grade will depend on their performance in the ACM-ICPC contests, but will be at least A-.

Q: Books to read.

A: Algorithm design is the most important skill in programming contests. Many contestants use Introduction to algorithms 2nd/3rd edition. The problems and exercises in textbooks are usually different from the actual contest problems. Textbook is more focused on rigorous thinking, i.e., mathematically proving your algorithm is correct. On the other hand, the programming contest focuses on the tricky and imaginative use of algorithm design techniques, e.g. dynamic programming. Many contestants find books like CLRS too easy for preparing programming contests. This is not true. A good coder not only knows how to solve the problem, but also can quickly reason the correctness of his solution. The sense of "Probably correct" and stopping thinking at this stage is the biggest enemy for intermediate problem solvers to advance. Reading a book like CLRS will train your reasoning ability on the running time and correctness of your algorithms to hard problems.

There are also books specifically on contests. An English book is Competitive Programming . Two VERY good books in Chinese are: Link one and Link two. I highly recommend these two books!

Q: Have more questions?

A: Send emails to Mr Minhao Jiang(mjiangac@cse.ust.hk)

© Copyright 1993-2015, HKUST ACM Programming Team,
The Department of Computer Science and Engineering,
The Hong Kong University of Science and Technology.