This book had its pleasures, but was not fully baked.
The author's writing style is approachable--most of the time--and his selection of topics is outstanding for anyone who thinks of mathematics as comprising only the topics they were exposed to in high school.
However, to two of the topics in particular--the Prolog language and lambda calculus--Chu-Carroll simply did not allot enough space, nor enough attention from his editors. For instance, on p. 106, in the first code example, the "two lines that define what a parent is in terms of logic" are not actually present, despite being described in the text. More broadly, there is not enough explication of Prolog's syntax to make the chapter satisfying to a computer programmer. Since the symbols will require demystification even more emphatically for non-programmer readers, I find this defect to be a serious one.
In the chapter on lambda calculus, the author explains that lambda functions only require one parameter, because functions can return other functions. This fact may take a bit of pondering for non-programmers or non-mathematicians, or even programmers unused to functions as "first-class" objects in a language, but Chu-Carroll undermines this rule by providing an example of a multi-parameter lambda function definition at the top of page 224 anyway. More importantly, the author did not afford himself sufficient space to explain alpha and beta reduction to my taste.
My impression is that the author wanted to impart more information than his page budget would allow--for his intended audience.
There are other problems that betray the lack of editorial attention.
p. 34: "[Zero is] neither positive nor negative; it's neither prime nor compound."
"Compound"? Sophisticated readers will understand that Chu-Carroll means "composite" here; but his authorial mission is outreach to the mathematically unsophisticated, so this is a painful error to make.
A similar terminological gaffe strikes on p. 51, in a discussion of complex numbers as good models for alternating currents in electricity: "The vector representing the power being transmitted is a fixed-size vector. It's rotating through the complex number plane [...]. When it's rotated entirely in the imaginary plane, the energy is expressed completely as a magnetic field. When it's rotated entirely into the real plane, the energy is expressed completely as an electric field, which we measure as the voltage."
Leaving aside the author's encouragement of confusion by using "power" and "energy" interchangeably, when these are distinct phenomena expressed in different physical units, we have the much worse interchange of "plane" with "axis". When the current vector lies completely upon the real axis, it has only an electrical component, and when the current vector lies completely upon the imaginary axis, it has only a magnetic component.
What's good about the book? His choice of topics is excellent. He covers much of the ground that students taking their first "discrete" or "finite" math course will see (elementary graph theory and difference equations excepted), in a way that emphasizes the concepts so that a student will be less at sea when formally exposed to the same material (and having been in such a course at the university level, I can attest that the material was mostly unfamiliar to its undergraduate audience). He spends a fair amount of time on mathematical induction, which many folks have to bend their minds around for a while on the first exposure. More than that, he digs deeper than such courses typically do, introducing topics from the theory of computation, such as Turing-completeness and the Halting Problem.
I also must compliment the author for his concise and accessible presentations of Peano arithmetic and Zermelo-Fränkel ("axiomatic") set theory. In my view, both of these topics are deferred much too far into the training of a mathematician or computer scientist, and neither requires much in the way of background to grasp. Indeed, both may seem ridiculously simple and obvious, with their utility obscured until one is exposed to the consequences of trying to do without them.
Finally, I must praise Mr. Chu-Carroll for his comprehensive takedown of the frustrating misuse of the adjective "logical" in common speech, much of which we can lay at the door of a certain Gene Roddenberry and multiple generations of Mr. Spock fanboys (and -girls). Any statement can be logical, since the number of logical systems is unbounded. A "logic" is simply a set of axioms and inference rules.
I wish Mr. Chu-Carroll a second edition, that he may correct the defects I have identified above, and continue spreading the good news of good math.