Normally as I read books I am groaning and mentally red-pencilling the page. "No, that's irrelevant", "you don't say why it's important", and so on. For the first hundred pages, the only gripe I had was that they said "schoolchildren often wonder what 300 B.C. was called when it was 300 B.C." without telling us the answer!
Now I'm further in, I only have one more gripe. I disagree with the approach they took, separating the implementation (second half of the book) from the theory (first half). I much prefer integrated explanations of what and how--that way your book isn't redundantly structured: "Topic A Theory; Topic B Theory; Topic C Theory; Topic A Implementation; Topic B Implementation; Topic C Implementation". That also helps people who follow code better than math.
But for all their separation of theory and practice, the explanations of theory are spot on. They aim for exactly the style of explanations I'd have wanted--it's essentially statistics, so there's math, but they never expect you to like it or be able to follow very much of it. They refer back constantly to their examples, so the theory is well-grounded in reality. They really just get it right.
So, it's wholeheartedly recommended so far.