Our objective in writing this book is similar with the ICPC vision: To further improve humanity by training current students to be more competitive in programming contests. The possible long term effect is future Computer Science researchers who are well versed in problem solving skills.

Target audience: The reader must have some background knowledge in basic data structures,
algorithms, and programming languages. Typically, a 2nd year Computer
Science students in a University (who have passed a kind of "programming
methodology" and "basic data structures and algorithms" modules) or
selected high school students who are preparing for National or
International Olympiad in Informatics (and thus have done self-study on year-1 University CS curriculum) should have the necessary
background. We use both C++ and Java
code to illustrate the algorithmic concepts, i.e. we dislike vague pseudo-code commonly found in many other Computer Science textbooks.

"Competitive Programming is a unique resource that I recommend to any
student interested in raising their algorithmic programming skills to
the next level. It is packed with insightful tips and techniques that
are hard to find elsewhere, and remarkably thorough in its use of
examples and references to sample problems." -- Brian C. Dean, Associate Director, USA Computing Olympiad.