Recommended Informatics (CS) Literature
In association with
Amazon.com
(Statement of Intent)
[ Search Amazon.com Books by:
Author/Title/Subject
|
ISBN
|
Publisher/Date
|
Boolean Expression
]
Of course, it is also recommended that you read books on
other disciplines.
A nice and gentle introduction into the world of computers is
(also see book review by Peter G. Neumann in
ACM SIGSOFT Software Engineering Notes
10(2):23-27 (April 1985)):
A smooth introduction to computer science,
including programming, is
- Introductory Computer Science:
Bits of Theory and Bytes of Practice.
A. K. Dewdney.
Computer Science Press, 1996.
[See this book at Amazon.com]
The next three books give a good impression of the
breadth of the computing field.
These books make excellent reading material.
They are neither real textbooks
(though some courses have been taught from them)
nor real reference works
(though you can easily find a lot of basic things in them).
They show the ``real thing'' and do require a persistent mind.
There are not many
bundles of programming problems in the IOI style.
The following book collects 112 of the
the most fun, exciting and interesting problems from the
Universidad de Valladolid (UVa)
programming contest judge.
These problems are organized by topic, with complete tutorial material
in the relevant algorithmics and mathematics to give you a better
chance to solve them.
You can also submit solution at
a dedicated website.
- Programming Challenges: The Programming Contest Training Manual.
Steven Skiena and Miguel Revilla.
Springer-Verlag, 2003.
[See this book at Amazon.com]
The following book presents the problems (and solutions) that were devised
for a series of high-school competitions held from 1977 to 1987 in Slovenia.
- Problems in Programming: Experience through Practice.
Andrej Vitek, Iztok Tvrdy, Robert Reinhardt, Bojan Mohar, Marc Martinec,
Tomi Dolenc and Vladimir Batagelj.
John Wiley & Sons, 1991.
The preface of this book explains that
``[these] competitions culminated in the
International Computer Science Olympiad,
held for the first time in Nova Gorica, Slovenia in 1988,
(and since in Münster, Germany, and Varna, Bulgaria).''
(Andrej Brodnik provides more details.)
A bundle of 965 problems on the design, verification, and analysis of
algorithms is:
A good introductory textbook on algorithms is:
A modern but less comprehensive introduction is:
An excellent overview of practical algorithms and their design is:
This book explains fundamental algorithm design techniques,
illustrated by practical examples
(including some enlightening War Stories),
and it provides a catalog of algorithmic problems
together with efficient solutions.
There are numerous challenging exercises that make good preparation material
for programming contests.
The book includes a CD-ROM with a complete hypertext version of the book
(great for following the many cross references),
implementations (such as the entire
Stony Brook Algorithm Repository), and 30 hours of audio lectures on algorithms.
A concise, to-the-point book that addresses
IOI-like programming issues in a way hardly found elsewhere:
The Practice of Programming.
----- ----- NEW RECOMMENDATION
Brian W. Kernighan, Rob Pike.
Addison-Wesley, 1999.
[See this book at Amazon.com]
Somewhat older, but quite practical, algorithm textbooks are
-
The Design and Analysis of Computer Algorithms.
Alfred V. Aho, John E. Hopcroft, and Jeffrey D. Ullman.
Addison-Wesley, 1974.
[See this book at Amazon.com]
- Data Structures and Algorithms.
Alfred V. Aho, John E. Hopcroft, and Jeffrey D. Ullman.
Addison-Wesley, 1983.
[See this book at Amazon.com]
- Fundamentals of Computer Algorithms.
Ellis Horowitz and Sartaj Sahni.
Computer Science Press, 1978.
- Algorithms.
Robert Sedgewick.
Addison-Wesley, 1988 (2nd edition).
[See this book at Amazon.com]
Also available for C Parts 1-4 (Fundamentals,
Data Structures, Sorting, Searching; 3rd edition, 1997),
[See this book at Amazon.com]
Part 5 (Graph Algorithms; 3rd edition, 2002),
[See this book at Amazon.com]
C++ (3rd edition, 1999),
[See this book at Amazon.com]
Modula-3
[See this book at Amazon.com]
Java
[See this book at Amazon.com]
- Algorithms + Data Structures = Programs.
Niklaus Wirth.
Prentice-Hall, 1976.
[See this book at Amazon.com]
Of course, the bible of computer programming still is
- The Art of Computer Programming.
Donald E. Knuth.
Addison-Wesley,
- Volume 1: Fundamental Algorithms,
3rd edition, 1997.
[See this book at Amazon.com]
- Volume 2: Semi-Numerical Algorithms,
2nd edition, 1981,
[See this book at Amazon.com]
3rd edition, 1997,
[See this book at Amazon.com]
- Volume 3: Sorting and Searching,
1973.
[See this book at Amazon.com]
2nd edition, 1998,
[See this book at Amazon.com]
- Errata
These volumes are highly recommended to people putting together problem sets.
[ Book review of The Art of Computer Programming ]
Some more specialized, but easily accessible, programming books are:
A book that invites you to have fun with graphs:
The programs and files from The Stanford GraphBase book are
available for anonymous ftp.
`Bedside' Informatics Literature
Here follow some references to books that may not directly
improve performance at the IOI,
but that put informatics and its players into a broader perspective.
(The references are ordered alphabetically on author.)
- ACM Turing Award Lectures. The First Twenty Years: 1966-1985.
ACM Press, 1987.
[See this book at Amazon.com]
- The Mythical Man-Month: Essays on Software Engineering.
Frederick P. Brooks Jr.
Addison-Wesley, 1975, 1982, new edition 1995.
[See this book at Amazon.com]
- The Elements of
Friendly Software Design.
Paul Heckel.
Sybex, 2nd edition, 1991.
[See this book at Amazon.com]
- Alan Turing: The Enigma.
Andrew Hodges.
Simon and Schuster, 1983.
[See this book at Amazon.com]
- Gödel, Escher, Bach: An Eternal Golden Braid.
Douglas R. Hofstadter.
Basic Books, 1979.
[See this book at Amazon.com]
- The Soul of a New Machine.
Tracy Kidder.
Little, Brown and Company, 1981.
[See this book at Amazon.com]
- Literate Programming.
Donald E. Knuth.
Center for the Study of Language and Information, 1992.
[See this book at Amazon.com]
- Being Digital.
Nicholas P. Negroponte.
Knopf, 1995, ISBN 0-679-43919-6.
[See this book at Amazon.com]
- Mindstorms: Children, Computers and Powerful Ideas.
Seymour Papert.
Harvester Press, 1980, 2nd edition 1993.
[See this book at Amazon.com]
- One Jump Ahead: Challenging Human Supremacy in Checkers.
Jonathan Schaeffer. ----- ----- ----- ----- NEW RECOMMENDATION
Springer-Verlag, 1997.
[See this book at Amazon.com]
- The Cuckoo's Egg: Tracking a Spy Through the Maze of Computer Espionage.
Clifford Stoll. ----- ----- ----- ----- ----- NEW RECOMMENDATION
Pocket Books, Simon & Schuster, 1989.
[See this book at Amazon.com]
- Computer Power and Human Reason:
From Judgment to Calculation.
Joseph Weizenbaum.
Freeman, 1976.
[See this book at Amazon.com]
Strictly speaking the following books are not about informatics at all.
But they are written with inspiring enthusiasm about interesting topics,
and informatics does play a role.
- The Evolution of Cooperation.
Robert Axelrod.
Basic Books, 1984.
[See this book at Amazon.com]
- The Blind Watchmaker:
Why the Evidence of Evolution Reveals a Universe Without Design.
Richard Dawkins.
Longman, 1986; Reissue Edition: Norton 1996.
[See this book at Amazon.com]
IOI Secretariat /
ioi-secretariat@win.tue.nl
Internet service provided by