Wednesday, July 31, 2013

Review: Engines of Logic: Mathematicians and the Origin of the Computer

Review: Engines of Logic: Mathematicians and the Origin of the Computer


Engines of Logic: Mathematicians and the Origin of the Computer

Posted:

Engines of Logic: Mathematicians and the Origin of the Computer (Paperback)
By Martin Davis

It may be initially hard to connect Leibniz's series or George Cantor's quest for infinite numbers to the modern computer, but Dr. Davis does a masterful job of showing this logical progression. The progression continues to Godel and Turing, and from Turing to the modern computer.

Combining clear discussions of mathematical concepts with short biographical sketches, the intensity of some of these logical debates becomes clear. For the 20th century figures, Davis offers first hand accounts, such as seeing Godel and Einstein walking together at Princeton (and this picture is included in the book), or his own 1954 computer program of a mathematical proof.

On the question of who invented the computer, Dr. Davis sides toward Turing and the influence of Turing on von Nuemann (contrast with Herman Goldstine: the Computer from Pascal to von Neumann). Davis points out that the difference in architecture between Turing and von Nuemann is still evident today in the difference between RISC and full instruction set computers. In the final chapter, Davis debates John Searle's understanding of the mind and consciousness. I hope Davis writes a book about the logical connections after Turing. These include Maurice's Karnaugh's method of minimizing boolean expressions, Jay Forester's memory and Industrial Dynamics, and perhaps Ted Codd and C.J. Dates database thinking.



Pin It Now!

Tuesday, July 30, 2013

Review: Computability: An Introduction to Recursive Function Theory

Review: Computability: An Introduction to Recursive Function Theory


Computability: An Introduction to Recursive Function Theory

Posted:

Computability: An Introduction to Recursive Function Theory (Paperback)
By Nigel Cutland

This is a well-written book, and gives a satisfying account of the field of recursion theory. It covers basic aspects of recursion theory, Godel numbering, the structure of recursive and recursively enumerable sets, and even a brief (and quite sketchy) foray into complexity results at the end. It is, however, worth deciding whether you are in the target audience before making a purchase.

If you are trying to make a first transition over into theory topics from, say, a career of practical software development tasks, then this is the wrong book. Try Sipser's Introduction to the Theory of Computation instead. Sipser is more willing to spend time on demonstrating the intuitive picture, and relies less on formal mathematical arguments. This book can come later to fill in some of the mathematical properties.

On the opposite end of the spectrum, this is a passable but mediocre reference book for recursion theory. It omits major topics, such as the arithmetic hierarchy. It deviates considerably from other traditional treatments. These decisions will get annoying if you plan to read bits and pieces rather than learn in sequence according to the author's presentation. A better reference is Hartley Rogers' Theory of Recursive Functions and Effective Computability.

Buy this book if you are in the middle. It's a great book if you've seen some decidability results, but not a formal mathematical treatment; and if you intend to follow the book and learn what it decides rather than look up specific topics. In that situation, it's hard to see how you could do better.


Pin It Now!

Monday, July 29, 2013

Review: Introduction to Algorithms

Review: Introduction to Algorithms


Introduction to Algorithms

Posted:

Introduction to Algorithms (Hardcover)
By Thomas H. Cormen

First of all, this is the quintessential book on algorithms. If you want to learn, this is the book to get. The information in the book is awesome and it can make an excellent reference.

Students will need a very strong mathematical background and a strong arm to even think about picking up this book because the it is heavy (both physically and metaphorically). Mastery of discrete math is a must, graph theory, programming, and, combinatorics will also help.

With that said, this book falls short in one MAJOR area, explanations. Too often explanations are left out and left as exercises and there are no solutions to the exercises! Or details are replaced by ambiguous statements such as of "cleary, this works", or "it is easy to see that this ...". I get the concept of learning by doing, really I do, but there should be some kind of solutions so the student can CHECK his/her understanding of the material and sometimes the exercises are not about advanced aspects of a concept, sometimes it is the core material. Even if the solution manual only contained a simple answer without the work. Not only would it help tremendously but the purpose of doing the exercises would be preserved; that is the student getting his/her "hands dirty" and working out a problem.

For the love everything good and pure in this universe, I really wish writers of mathematical books would stop using statements like "clearly this works" or "it is easy to see", "it is obvious" etc. While that may be true for you and your brilliant circle of colleagues, everything is not always clear and obvious to your readers. Save all of that ambiguity for your research paper.

A great book should deliver in two areas; it should challenge and it should inform. The challenge is there, no doubt.
...


Pin It Now!

Sunday, July 28, 2013

Review: Engines of Logic: Mathematicians and the Origin of the Computer

Review: Engines of Logic: Mathematicians and the Origin of the Computer


Engines of Logic: Mathematicians and the Origin of the Computer

Posted:

Engines of Logic: Mathematicians and the Origin of the Computer (Paperback)
By Martin Davis

It may be initially hard to connect Leibniz's series or George Cantor's quest for infinite numbers to the modern computer, but Dr. Davis does a masterful job of showing this logical progression. The progression continues to Godel and Turing, and from Turing to the modern computer.

Combining clear discussions of mathematical concepts with short biographical sketches, the intensity of some of these logical debates becomes clear. For the 20th century figures, Davis offers first hand accounts, such as seeing Godel and Einstein walking together at Princeton (and this picture is included in the book), or his own 1954 computer program of a mathematical proof.

On the question of who invented the computer, Dr. Davis sides toward Turing and the influence of Turing on von Nuemann (contrast with Herman Goldstine: the Computer from Pascal to von Neumann). Davis points out that the difference in architecture between Turing and von Nuemann is still evident today in the difference between RISC and full instruction set computers. In the final chapter, Davis debates John Searle's understanding of the mind and consciousness. I hope Davis writes a book about the logical connections after Turing. These include Maurice's Karnaugh's method of minimizing boolean expressions, Jay Forester's memory and Industrial Dynamics, and perhaps Ted Codd and C.J. Dates database thinking.



Pin It Now!

Saturday, July 27, 2013

Review: The Linux Programmer's Toolbox

Review: The Linux Programmer's Toolbox


The Linux Programmer's Toolbox

Posted:

The Linux Programmer's Toolbox (Paperback)
By John Fusco

This book is aimed at the person who has learned his way around Linux at the user level and now wants to look under the covers. It's extremely comprehensive - from how to add a Linux application that wasn't in your your initial distribution - whether you can use the binary or need to rebuild it from source - through basic facts on the kernel, devices and their drivers, processes and debugging tools. There has been a need for a book that addresses readers who do know something about computers, but not much Linux. This book fills that need extremely well.


Pin It Now!

Friday, July 26, 2013

Review: Computability: An Introduction to Recursive Function Theory

Review: Computability: An Introduction to Recursive Function Theory


Computability: An Introduction to Recursive Function Theory

Posted:

Computability: An Introduction to Recursive Function Theory (Paperback)
By Nigel Cutland

This is a well-written book, and gives a satisfying account of the field of recursion theory. It covers basic aspects of recursion theory, Godel numbering, the structure of recursive and recursively enumerable sets, and even a brief (and quite sketchy) foray into complexity results at the end. It is, however, worth deciding whether you are in the target audience before making a purchase.

If you are trying to make a first transition over into theory topics from, say, a career of practical software development tasks, then this is the wrong book. Try Sipser's Introduction to the Theory of Computation instead. Sipser is more willing to spend time on demonstrating the intuitive picture, and relies less on formal mathematical arguments. This book can come later to fill in some of the mathematical properties.

On the opposite end of the spectrum, this is a passable but mediocre reference book for recursion theory. It omits major topics, such as the arithmetic hierarchy. It deviates considerably from other traditional treatments. These decisions will get annoying if you plan to read bits and pieces rather than learn in sequence according to the author's presentation. A better reference is Hartley Rogers' Theory of Recursive Functions and Effective Computability.

Buy this book if you are in the middle. It's a great book if you've seen some decidability results, but not a formal mathematical treatment; and if you intend to follow the book and learn what it decides rather than look up specific topics. In that situation, it's hard to see how you could do better.


Pin It Now!

Thursday, July 25, 2013

Review: Introduction to the Theory of Computation

Review: Introduction to the Theory of Computation


Introduction to the Theory of Computation

Posted:

Introduction to the Theory of Computation (Hardcover)
By Michael Sipser

When I picked up this book I thought, "You have to be kidding me." This book is very thin, and then a fair chunk of it is mathematics review for some of the formal arguments the book is going to be making later on. One wouldn't think there was much in this book.

One would be wrong. This book goes into rather impressive depth on some rather abstract concepts of computer science without dabbling for too long in the details. It does the best job I've ever seen of explaining the Turing machine and how it relates to computability and decidablity.

The exercises are both easy and insanely difficult - so you can basically chose your level and then go through the book, some of the problems are very hard, some are trivially easy, a great mix makes for great homework assignments.

The "Proof Idea:" sections before every proof give you the underlying concepts in plain english that are about to be stated formally so you have a clue what's happening when the formal definitions start flying. These are priceless and should be included in every other book that uses formal proof techniques.

The book reads fairly well on its own, or makes for a great class text book, which I used it for. As my professor said, "This is a good book because it doesn't have any extra words." but you don't seem to mind as you read it. Probably the best work on the science of computation in the world, certainly the best I've ever seen.



Pin It Now!

Wednesday, July 24, 2013

Review: Art of Computer Programming, The, Volumes 1-3 Boxed Set

Review: Art of Computer Programming, The, Volumes 1-3 Boxed Set


Art of Computer Programming, The, Volumes 1-3 Boxed Set

Posted:

Art of Computer Programming, The, Volumes 1-3 Boxed Set (3rd Edition) (Vol 1-3) (Hardcover)
By Donald E. Knuth

As Knuth himself says, it is impossible for any one person to keep up with all the research in computer science, but these 3 volumes do a remarkably good job of distilling the most important results and explaining them with mathematical rigor.

Each volume contains 2 chapters. Ch. 1, Basic Concepts: mathematical foundations and a description of MIX, a hypothetical machine (now available in software emulations). Ch. 2, Information Structures: lists, trees, memory allocation, garbage collection. Ch. 3, Random Numbers: how to produce series of "random" numbers and test their statistical properties. Ch. 4, Arithmetic: algorithms for integer and floating-point arithmetic. Ch. 5, Sorting: both in memory and on disks or tapes. Ch. 6, Searching: sequential, binary, hashing.

Despite the detailed coverage of the topics, which often involves esoteric mathematical notation, the author's lively style makes the algorithms and the main theoretical results relatively easy to grasp. If all you care about is getting a program to run, buy another book; but if you really want to understand how and why software works, there's nothing quite like this.



Pin It Now!

Tuesday, July 23, 2013

Review: Tutorial on Neural Systems Modeling

Review: Tutorial on Neural Systems Modeling


Tutorial on Neural Systems Modeling

Posted:

Tutorial on Neural Systems Modeling (Hardcover)
By Thomas J. Anastasio

We used this book for the upper-level undergraduate students in an interdisciplinary computational neuroscience course at a small liberal arts college. This is a fine, well-written book. One of the strengths of this book is that it starts with very basic programming in Matlab, so that the students without programming backgrounds can easily follow along. The programs in the book are well commented, and they progress slowly and logically in complexity. More advanced math topics are well separated out in Math Boxes. The examples of the neural systems are covered in enough (but not too much) details to be interesting and accessible to the readers. The book is definitely considerate of and sensitive to the wonderfully interdisciplinary nature of this field, so that the materials can be digested by people with different backgrounds. One can not contain all the topics in computational neuroscience in a single book, but this book does a great job of covering many important and interesting ideas/areas (Hebbian learning, Hopfield model, lateral inhibition, adaptation, supervised and unsupervised learning, etc.).

It works very well as an introductory textbook (or tutorial) of the field. The codes and the discussions are clear and simple (not intended as an advanced textbook), and to me, that's the strength and unique quality of this book.

By the way, most of the computer programs listed in the book work well with Octave (as well as Matlab).


Pin It Now!

Monday, July 22, 2013

Review: Concrete Mathematics: A Foundation for Computer Science

Review: Concrete Mathematics: A Foundation for Computer Science


Concrete Mathematics: A Foundation for Computer Science

Posted:

Concrete Mathematics: A Foundation for Computer Science (2nd Edition) (Hardcover)
By Donald E. Knuth

What is "concrete" math, as opposed to other types of math? The authors explain that the title comes from the blending of CONtinuous and disCRETE math, two branches of math that many seem to like to keep asunder, though each occurs in the foundation of the other. The topics in the book, such as sums, generating functions, and number theory, are actually standard discrete math topics; however, the treatment in this text shows the inherent continuous (read: calculus) undergirding of the topics. Without calculus, generating functions would not have come to mind and their tremendous power could not be put to use in figuring out series.

The smart-aleck marginal notes notwithstanding, this is a serious math book for those who are willing to dot every i and cross every t. Unlike most math texts (esp. graduate math texts), nothing is omitted along the way. Notation is explained (=very= important), common pitfalls are pointed out (as opposed to the usual way students come across them -- by getting back bleeding exams), and what is important and what is =not= as important are indicated.

Still, I cannot leave the marginal notes unremarked; some are serious warnings to the reader. For example, in the introduction, one note remarks "I would advise the casual student to stay away from this course." Notes that advise one to skim, and there are a few, should be taken seriously. All the marginal notes come from the TAs who had to help with the text, and thus have a more nitty-gritty understanding of the difficulties students are likely to face. Still, there are plenty of puns and bad jokes to amuse the text-reader for hours: "The empty set is pointless," "But not Imbesselian," and "John .

...


Pin It Now!

Sunday, July 21, 2013

Review: The Art of Computer Programming, Volumes 1-4A Boxed Set

Review: The Art of Computer Programming, Volumes 1-4A Boxed Set


The Art of Computer Programming, Volumes 1-4A Boxed Set

Posted:

The Art of Computer Programming, Volumes 1-4A Boxed Set (Hardcover)
By Donald E. Knuth

Since reviews of the book content can be found elsewhere, I thought I'd review the actual collection that I bought - these four books and the box that they came in.

They are beautiful, the off-white coloured dust jackets make a pleasing change to the other pure white books that I have on my desk, and the box sets the set apart from everything else.

Also, since purchasing this set, the following things have happened.

1) My IQ increased by 1 point as soon as I placed the box on my bookshelf
2) The Women in my IT department increased their rating of me by 1.5. Apparently I'm now an 8 (9 if I take my glasses off) my colleagues report that this is a 0.5 increase in rating over a non-boxed collection of these books.
3) I have found that taking one book out, opening to a random page and inhaling deeply, when combined with a double-shot coffee, will ensure good spirits and coding karma for at least the next 4 hours.

My only complaint about this set is the fact that they are fairly snugly fit in the box. this requires actually tipping the box forward to select a book, you cannot fit your finger over the top of any one book to pull it out. The exaggerated action of doing this, however invokes jealous looks and dreamy eyes from my male and female/gay colleagues respectively so is worth it.

in short: buy this set!


Pin It Now!

Saturday, July 20, 2013

Review: Artificial Intelligence: Structures and Strategies for Complex Problem Solving

Review: Artificial Intelligence: Structures and Strategies for Complex Problem Solving


Artificial Intelligence: Structures and Strategies for Complex Problem Solving

Posted:

Artificial Intelligence: Structures and Strategies for Complex Problem Solving (4th Edition) (Hardcover)
By George F. Luger

This book is actually a follow up to Luger and Stubblefield's older book "AI and the Design of Expert Systems". Being somewhat dated in both title and content, this book serves as its resurrection. Both books are excellent in providing a basic introduction to AI. They contain a number of problems and provide just enough infromation on each topic to give the reader the general idea and a sense of having learned something substantial (this is always the danger when writing a book that surveys a variety of interrelated fields). Another strength of the book is its ability to make connections between the different areas of AI. For example, when discussing knowledge representation, they make sure to draw connections with it and logic as well as natural language processing.


Pin It Now!

Friday, July 19, 2013

Review: How to Computer Program

Review: How to Computer Program


How to Computer Program

Posted:

How to Computer Program (Kindle Edition)
By Bill Smith

After reading the book and the existing reviews, I can only think the author and most of the existing reviewers really have little or no idea what computer programming is all about.
I don't usually write negative reviews, but just couldn't let this one go.

With a title of "How to computer program" I should have known there would be issues, because I can't imagine anyone that actually knows how, that would state it quite that way. More correctly, it should be something more like "How to learn computer programming" or "How to program computers". Either way, it doesn't matter, because the book doesn't actually provide any real information about how to learn computer programming. Suggesting that someone play with open source applications isn't how to learn to program. There are some fundamental concepts that must be learned first, and knowing the particular syntax rules for the language are important before poking about. Starting out by poking at existing open source applications will more likely discourage a person from learning about programming than to encourage them to learn.

Yes, there are some general statements about various languages and perhaps a bit about the need for programmers, but it reads like a loosely collected series of short articles, or a bunch of first paragraphs spun from Wikipedia. The author throws out a list of words that will have absolutely no meaning for a non-programmer, does nothing to explain the descriptions of each language provided, or why the differences may be significant. For example, there is no information provided about the difference between an interpreted scripting language and a compiled language, nor what any of the other buzzwords mean. The concept of a compiler wasn't even brought up.
...


Pin It Now!

Thursday, July 18, 2013

Review: The Pragmatic Programmer: From Journeyman to Master

Review: The Pragmatic Programmer: From Journeyman to Master


The Pragmatic Programmer: From Journeyman to Master

Posted:

The Pragmatic Programmer: From Journeyman to Master (Paperback)
By Andrew Hunt

I bought this on a friend's recommendation, but expected yet another book rehashing the same standard rules: write comments, don't duplicate code, have plans for your projects, eat your vegetables.

Hunt and Thomas vastly exceeded my expectations. This book is never dry, often humorous, and always educational. They don't always say what you expect them to say (e.g., about commenting code), and I didn't always agree with them, but every sentence is full of thoughtful analysis.

One of the best features is their incredibly practical advice -- while yes, this book does teach philosophy and encourages thought, it also provides many immediately-implementable suggestions.

If you aren't a programmer with 10 years experience, buy it anyway -- it is not just for experienced programmers. While you will absorb less of the book, there is still enough to learn, and it's a great book to keep and re-read.

The book includes a pull-out card of the pithy sayings the authors use to sum up each section. Perhaps my mind just doesn't work the way theirs does, but I didn't find their summations to be helpful all the time -- I found myself frequently having to flip back to the section to remember what a particular phrase meant. But it's still useful.



Pin It Now!

Wednesday, July 17, 2013

Review: The Annotated Turing: A Guided Tour Through Alan Turing's Historic Paper on Computability and the Turing Machine

Review: The Annotated Turing: A Guided Tour Through Alan Turing's Historic Paper on Computability and the Turing Machine


The Annotated Turing: A Guided Tour Through Alan Turing's Historic Paper on Computability and the Turing Machine

Posted:

The Annotated Turing: A Guided Tour Through Alan Turing's Historic Paper on Computability and the Turing Machine (Paperback)
By Charles Petzold

Some books entertain, some inform; some confirm what you already knew, some make you change your mind about something. But then there are some books that just make you think "wow! I wish I'd written that".

For me, Charles Petzold's The Annotated Turing falls into that last category (as well, of course, as the informational category). It's a book worth reading not only for the topic itself but the way it's presented.

Petzold provides the necessary background before working through Turing's famous 1936 paper "On computable numbers, with an application to the Entscheidungsproblem" with rich annotations at every stage, including biographical details.

If you are interested in the foundation of mathematics, computability, Turing's work, or even just ways of explaining mathematics in a historical context, I highly recommend this book.


Pin It Now!

Tuesday, July 16, 2013

Review: The Linux Programmer's Toolbox

Review: The Linux Programmer's Toolbox


The Linux Programmer's Toolbox

Posted:

The Linux Programmer's Toolbox (Paperback)
By John Fusco

This book is aimed at the person who has learned his way around Linux at the user level and now wants to look under the covers. It's extremely comprehensive - from how to add a Linux application that wasn't in your your initial distribution - whether you can use the binary or need to rebuild it from source - through basic facts on the kernel, devices and their drivers, processes and debugging tools. There has been a need for a book that addresses readers who do know something about computers, but not much Linux. This book fills that need extremely well.


Pin It Now!

Monday, July 15, 2013

Review: Artificial Intelligence: Structures and Strategies for Complex Problem Solving

Review: Artificial Intelligence: Structures and Strategies for Complex Problem Solving


Artificial Intelligence: Structures and Strategies for Complex Problem Solving

Posted:

Artificial Intelligence: Structures and Strategies for Complex Problem Solving (4th Edition) (Hardcover)
By George F. Luger

This book is actually a follow up to Luger and Stubblefield's older book "AI and the Design of Expert Systems". Being somewhat dated in both title and content, this book serves as its resurrection. Both books are excellent in providing a basic introduction to AI. They contain a number of problems and provide just enough infromation on each topic to give the reader the general idea and a sense of having learned something substantial (this is always the danger when writing a book that surveys a variety of interrelated fields). Another strength of the book is its ability to make connections between the different areas of AI. For example, when discussing knowledge representation, they make sure to draw connections with it and logic as well as natural language processing.


Pin It Now!

Sunday, July 14, 2013

Review: Engines of Logic: Mathematicians and the Origin of the Computer

Review: Engines of Logic: Mathematicians and the Origin of the Computer


Engines of Logic: Mathematicians and the Origin of the Computer

Posted:

Engines of Logic: Mathematicians and the Origin of the Computer (Paperback)
By Martin Davis

It may be initially hard to connect Leibniz's series or George Cantor's quest for infinite numbers to the modern computer, but Dr. Davis does a masterful job of showing this logical progression. The progression continues to Godel and Turing, and from Turing to the modern computer.

Combining clear discussions of mathematical concepts with short biographical sketches, the intensity of some of these logical debates becomes clear. For the 20th century figures, Davis offers first hand accounts, such as seeing Godel and Einstein walking together at Princeton (and this picture is included in the book), or his own 1954 computer program of a mathematical proof.

On the question of who invented the computer, Dr. Davis sides toward Turing and the influence of Turing on von Nuemann (contrast with Herman Goldstine: the Computer from Pascal to von Neumann). Davis points out that the difference in architecture between Turing and von Nuemann is still evident today in the difference between RISC and full instruction set computers. In the final chapter, Davis debates John Searle's understanding of the mind and consciousness. I hope Davis writes a book about the logical connections after Turing. These include Maurice's Karnaugh's method of minimizing boolean expressions, Jay Forester's memory and Industrial Dynamics, and perhaps Ted Codd and C.J. Dates database thinking.



Pin It Now!
 
//PART 2