Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Guide to competitive programming : learning and improving algorithms through contests
Laaksonen A., Springer International Publishing, New York, NY, 2017. 283 pp.  Type: Book (978-3-319725-46-8)
Date Reviewed: Oct 30 2018

Competitive programming is not new, but is now widely available through different online competitions. As Laaksonen notes, competitive programming provides opportunities for practice and helps to bridge the gap between theory and practice by forcing programmers to invent new algorithms, or apply known ones, to specific problems. In many cases, the authors of problem statements do not know an optimal solution. This aligns to the experience of developers and engineers in industry, where problems are not clear-cut and often do not suggest the application of a particular algorithm or solution.

The book begins with an introduction to competitive programming in general and basic programming techniques that are useful across a range of problems. The book focuses on the C++ language, which translates well to other C-style languages like Java and C#, but may be challenging for readers who are used to working in high-level languages like Python. The subsequent chapters discuss efficiency, sorting and searching, and data structures. The information presented in these chapters is not advanced, but it would not be helpful to readers with no prior exposure to these topics or at least access to another more detailed treatment of this information.

The remainder of the book works through different topics in both existing algorithms and techniques for combining approaches and designing algorithms to solve more intractable problems. The topics include dynamic programming, graph algorithms, tree algorithms, geometric techniques, and applications of mathematics and algorithm design techniques.

In general, the chapters are more or less standalone. That makes this small volume a helpful reference for additional information or review of known algorithms and programming techniques. Given its practical intent, as well as the breadth of examples and references offered, this is a useful book for any practicing software engineer or developer. It would also be helpful as a supplementary text in an undergraduate programming or algorithms course.

More reviews about this item: Amazon

Reviewer:  Nathan Carlson Review #: CR146299 (1901-0001)
Bookmark and Share
  Editor Recommended
General (D.1.0 )
Reference (A.2 )
Would you recommend this review?
Other reviews under "General": Date
iMapReduce: a distributed computing framework for iterative computation
Zhang Y., Gao Q., Gao L., Wang C.  Journal of Grid Computing 10(1): 47-68, 2020. Type: Article
Sep 28 2021
Soft computing: techniques in engineering science
Ram M., Singh S.,  DE GRUYTER, Berlin, Germany, 2020. 230 pp. Type: Book (978-3-110625-60-8)
Apr 22 2021
Search-based program synthesis
Alur R., Singh R., Fisman D., Solar-Lezama A.  Communications of the ACM 61(12): 84-93, 2018. Type: Article
Mar 19 2019

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright © 2000-2021 ThinkLoud, Inc.
Terms of Use
| Privacy Policy