Author: Pierre Audibert Publisher: WileyBlackwell, 2010 Pages: 944 ISBN:9781848211964 Aimed at: Playful programmers Rating: 4 Pros: A real world approach, makes combinatorics fun Cons: If you want a pure math approach you may disapprove Reviewed by: Mike James
With its coverage confined to matters combinatoric and the related probability theory, does this book's novel approach work?
Author: Pierre Audibert Publisher: WileyBlackwell, 2010 Pages: 944 ISBN:9781848211964 Aimed at: Practical algorithmic programmers Rating: 4 Pros: A real world approach, makes combinatorics fun Cons: If you want a pure math approach you may disapprove Reviewed by: Mike James
There isn't much scope for new books on the mathematics of computer science  or so you might have thought. In fact there are few coherent accounts to choose from and they all have their particular emphasis that makes them incomplete. So it is with this relatively new work. It has just short or 1000 pages yet its coverage is confined to matters combinatoric and the related probability theory. As long as this is what you are looking for it is a worthwhile addition to your bookshelf.
It is divided into three parts  Combinatorics, Probability and Graphs prefaced by a with a nice historical introduction to the sorts of problems and solutions that led up to the modern maths of algorithms. Then we get started on combinatorics proper. It really does start off from the very beginnings of the subject with a look at Pascal's triangle and the combinations that are related to it. From here the emphasis falls on combinatorics that arise naturally from the considerations of algorithms. Chapter 3 deals with enumerations in alphabetical order, then Chapter 4 deals with enumerations that result from tree structures. Chapter 5 looks at generating functions and recurrences. Chapter 6 is about routes in a square grid and Chapter 7 deals with arrangements and combinations with repetition including anagrams and lots of detailed algorithmic applications. Then we have sieve formulae and two chapters on "mountain ranges"  arrangements of line segments corresponding to up/down  which is the bracket nesting problem in thin disguise. Then we have some example applications, Burnside's formula, matrices and circulations on a graph, parts and partitions of a set, partitions of a number, flags, walls with stacks, tiling and permutations, This brings us to the end of the first part and as you can tell by the number of topics each chapter is quite short.
Part 2 is about probability and it starts off with a revision on discrete probabilities and then a chapter on implementing some basic probability processes on a computer. Chapter 22 introduces the idea of a continuous distribution but the main focus of the book is on discrete distributions so this is no more than an aside. Chapter 23 deals with generating functions, then we have graphs and matrices, repeated games of headsortails, random routes on a graph, repetitive draws until a condition is satisfied, and some exercises. This is not a book on the theory of probability or advanced methods such as Monte Carlo simulation or Markov chains. It's mostly the application of basic ideas and the presentation of results.
The final part of the book is about graph theory. Chapter 29 introduces the basic ideas. Then we have a look at different types of exploration of a graph, then trees with numbered nodes, binary trees, weighted graphs including shortest path and minimum spanning tree  all classic computer science and algorithms. Chapter 34 is about Eulerian paths, then we have the enumeration of spanning trees, enumeration of Eulerian paths and finally Hamiltonian Paths. The book ends with two appendixes on linear algebra and determinants.
This is not a deeply theoretical book. You won't find any discussion of measure theory or NP hard problems. In the main it takes very simple algebraic methods and applies them relentlessly to problems expressed in real world terms. For example, instead of repeated Bernoulii trials the topic is called "repeated games of headsortails". In many ways the book reads more like a title on recreational mathematics than pure math. As a result there are some with a leaning to pure math who are going to see the book as unnecessary and naive in its approach and certainly if you prefer stochastic differential equations and Markov chain Monte Carlo then the chances that you will approve of this book are low.
On the other hand if you are looking for an approach to combinatorics that is routed in applications and with lots of exercises then this is the book for you. Yes, dare I say it, it's fun.
Zero Bugs and Program Faster
Author: Kate Thompson Publisher: Kate Thompson Books Pages: 180 ISBN:9780996193306 Print: 0996193308 Audience: All programmers Rating: 4.5 Reviewer: Ian Stirk
This book aims to show you how to become a better programmer. How does it fare?

C Primer Plus (6th Ed)
Author: Stephen Prata Publisher: Addison Wesley Pages: 1080 ISBN: 9780321928429 Audience: Beginners Rating: 4 Reviewer: Mike James
C is still a language worth learning and knowing about.
 More Reviews 
