Discrete Mathematics for Computing by J. Ian Munro (University of Waterloo, Ontario, Canada)
This text aims to cover all the needed materials for a first course in its subject, yet it assumes no prior knowledge of computing. The book is written to show how discrete mathematics relates to program design. This computer science orientation stresses the importance of logic and proof, recursion, trees, algorithm correctness and formal specifications of problems and algorithms. All algorithms are written in pseudocode to allow integration into any computer science course. The development of precise specifications for algorithms is emphasized. The text discusses why and how topics are important. More advanced materials on the importance of software verification and the use Z-notation in formal specifications are also included.