The CS Detective

Author: Jeremy Kubica
Publisher: No Starch Press
Pages: 256
ISBN: 978-1593277499
Print: 1593277490
Kindle: B01J92NR0Y
Audience: Computer Science newbies
Rating: 4
Reviewer: Sue Gee

The idea of teaching computer science via a detective story sounds as if it could be fun and appeal to a wide audience. 

Jeremy Kubica is a Google principal engineer working on machine learning and algorithms and this is by no means his first attempt to make computational thinking more accessible by merging it with fantasy fiction. His Computational Fairy Tales blog introduces computer science concepts from introductory programming to high level CS concepts led to two books, Computational Fairy Tales and Best Practices of Spell Design, written as a novella.

Little material has been added to the blog since his first book was published and apart from the characters Princess Ann and the Wizard Marcus, who are mentioned in his new detective novel, there is little overlap with former books - except that it's a fantasy world where wizardry and dragons are part of everyday experience.

The main character is the story is Frank Runtime, an ex-policeman thrown out of the force for employing heuristics and "doing things his way" rather than sticking to algorithmic orthodoxy laid down by its rule book. At the start of the story he is visited by the police chief who wants him to solve an embarrassing case - theft of documents from police headquarters. Search is Runtime's area of expertise so he accepts the challenge.

He soon finds he's not the only person intent on finding the culprits. Rookie Officer Notation, who graduated first in her class in both Data Structures and Police Algorithms. Within a few chapters both Runtime and Officer Notation are trapped on a smuggler's boat, having been cornered by the dreaded Rebecca Vinettee and her henchmen and are rescued by Socks Repellent, a teenage boy dressed in wizard's clothing, who admits to having been trailing them and turns out to be apprentice to a wizard named Gretchen. 


Enough of the story, suffice it to say there are many twists and turns and you'll only understand some of its references - the location Port Usb, the characters Professor Heappens and Dr Loop - and appreciate its humor - Brazen Booleans who see the world only in black and white -  if you are computer literate.  What of the computer science content?

With the exception of the final one each of the books 29 chapter introduces a new concept which is made explicit in a final boxout titled "Police Algorithms 101" as an expert lectures delivered by Professor Drecker, often spanning multiple pages. Starting with an explanation of the brute-force exhaustive search readers are introduced to  best-first and depth-first search, iterative deepening, parallelizing and binary search. Arrays are introduced in Chapter 3 and heaps, stacks, and queues are among other basic data structures covered. Along the way you'll discover how to adapt search algorithms to unusual data structures and the most efficient algorithms to use in a given situation. Towards the end, we come to understand the value make a start on a problem for which no obvious algorithm is apparent. 

I've awarded this book a rating of 4 on the grounds that Kubica's approach is unusual and imaginative. He is reasonably successful in devising a plot that can be made to fit around some core computer science concepts. However the story and its characters are not entirely compelling and the pace and style are not of a prize winning calibre. Despite there being wizards in the story this is not a Harry Potter, nor despite the main character being a Private Detective, nor is it a Philip Marlowe.

Nobody is likely to want to read the technical boxouts alone, but they are good summaries of the concepts covered.

This isn't a text book but it could have a useful role in a computer science class as well as for individual readers in age range 10-14.


Visit Book Watch Archive for hundreds more titles.

Follow @bookwatchiprog on Twitter or subscribe to IProgrammer's Books RSS feed for each day's new addition to Book Watch and for new reviews.


To have new titles included in Book Watch contact



Murach's HTML5 and CSS3 (4e)

Author: Zak Ruvalcaba and Anne Boehm
Publisher: Murach
Date: Mar 2018
Pages: 736
ISBN: 978-1943872268
Print: 1943872260
Audience: Web developers
Rating: 4.5
Reviewer: Ian Elliot
HTML5 and CSS is the core of the web - it's time to master both.

Administering Relational Databases on Microsoft Azure

Author: Prashanth Jayaram et al
Publisher: Independent
Pages: 622
ISBN: 979-8706128029
Print: B08Y4LBTP4
Kindle: B08XZQJHMK
Audience: Azure DBAs
Rating: 2 or 4 (see review for details)
Reviewer: Ian Stirk

This book aims to help you pass the Azure Relational Database exam DP-300, how does it fare?

More Reviews


Last Updated ( Friday, 09 December 2016 )