Computing Reviews

Guide to competitive programming :learning and improving algorithms through contests
Laaksonen A., Springer International Publishing,New York, NY,2017. 283 pp.Type:Book
Date Reviewed: 10/30/18

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)

Reproduction in whole or in part without permission is prohibited.   Copyright 2024 ComputingReviews.com™
Terms of Use
| Privacy Policy