One programming book you should read

If you are a computer science student, one classic book you should read is “Algorithms + data Structures = Programs“, by Niklaus Wirth (Prentice Hall, 1976). Old books you may ask – well, they are often extremely well written, and still highly relevant today. Although the examples are shown using Pascal notation, it should not take any competent programmer long to translate the code into any high-level language. The book covers five core areas:

  1. Fundamental Data Structures – an overview of arrays, records, and sets
  2. Sorting – sorting algorithms for arrays, and sequential files
  3. Recursive Algorithms – backtracking and classic problems including the 8-Queens, and a rationale for when *not* to use recursion.
  4. Dynamic Information Structures – linked lists, trees, and hashing.
  5. Language Structures and Compilers – the basics of compiler construction.

While Sec.5 may not be as relevant today, the remainder of the book is as relevant today, as 40 years ago when it was first published (although Wirth does provide the code for a basic compiler in 11 pages of Pascal code – which may be interesting to decipher). The section on recursion is one of the few which bypasses the traditional use of Towers of Hanoi to illustrate recursion, opting for the use of more visual algorithms such as Hilbert and Sierpinski curves.


You can find copies at most libraries, or buy a copy from Abebooks.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s