|Top Computing Theory Book Choices|
|Written by Kay Ewbank|
|Monday, 23 March 2020|
Page 1 of 3
It's one thing to learn to program in a particular language, but quite a different skill to learn the theory that underpins programming and computer science more generally.
The books in this collection in their own way all provide a grounding on the theory of computation - the ideas that you need to be able to reason about a programming problem, concepts of what can be computed, and the theory of what a computer language the way it is.
If you make a book purchase accessing Amazon via a link to it on IProgrammer we are credited with a few cents - so thanks to all of you who support us in this way.
Author: Donald E. Knuth
If you are waiting for the later volumes in Donald Knuth's The Art of Computer Programming then the slim "fascicles" are all you can get at the moment. These are essentially pre-prints of bits of the work that Knuth has finished. Think of them as proof that the project is still on going, is Mike James' advice, who gave this one a maximum five star rating. The topic covered is bitwise techniques and binary decision diagrams, which Mike says might tempt you to believe that you knew everything there was to know about both subjects. However, he says don't be fooled, you will find much that you had no idea existed in the first part of this book.
It is worth noting that there isn't very much to this already thin book when you take away the exercises and the solutions to the exercises - about 70 pages. All worth tackling, however, and if you like puzzles of any sort the book is also great fun to read.
Author: Tom Stuart
This is a book for Ruby enthusiasts who want to know more about computer science, according to Mike James, who gave the book 4 stars. He says the clue to the subject matter of the book is the subtitle: From Simple Machines to Impossible Programs, and that the book is about the hierarchy of theoretical computational machines and things like the halting problem.
Mike says this isn't the most logically organized approach to the subject and it certainly doesn't follow a textbook approach. While the chapters hang together to tell a story, it's not complete and you won't find out about complexity classes, for example, so no P and NP. However, overall this is a book Mike enjoyed reading and, as long as you can accept the book's omissions and defects, you might do the same.
Author: Nell Dale & John Lewis
This book is a gentle introduction to computer science, says Mike James, and worth a four star rating. Since we reviewed the book there's a newer edition with new material on cloud computing and big data among other topics. Both editions start off with a slow-paced look at computing in a social context and then work their way though number systems, data representation, gates and logic and the overall design of a computer. The pace is slow, but it's about right if you are new to the material.
Mike's conclusion was that if you read this book from cover to cover then you will have a good grounding in computing. You will even have a brief look at academic computer science - Turing machines and computability - but only in the final chapter. You also don't really get to learn to program as part of the course but this is supposed to be about computer science.
As the basis for a course on the topic of computing it would make an excellent choice. It's also suitable for self study apart from its high price. It is, however, well written, well produced and well supported.
Author: Dr Mike James
As its subtitle "Great ideas explained" suggests, this book sets out to present the fundamental ideas of computer science in an informal and yet informative way. I-Programmer's own Mike James, whose PhD is in Computer Science, explores the concepts that underpin modern computer use, and shows how they provide ways to reason about information and randomness that are understandable without the need to resort to abstract math.
Topics covered in the book range from Turing Machines, the Halting Problem and Finite State machines, through lower-level concerns such as Boolean logic, information theory and error correction, to deeper dives into computational complexity. All are covered in a very approachable, and even entertaining way.
|Last Updated ( Tuesday, 24 March 2020 )|