The CS Detective

The CS Detective

An Algorithmic Tale of Crime, Conspiracy, and Computation
by Jeremy Kubica
August 2016, 256 pp.
  • Read Chapters 1-15 of The CS Detective for free!

    Look Inside!

    The CS DetectiveThe CS DetectiveThe CS DetectiveThe CS Detective

    Meet Frank Runtime. Disgraced ex-detective. Hard-boiled private eye. Search expert.

    When a robbery hits police headquarters, it’s up to Frank Runtime and his extensive search skills to catch the culprits. In this detective story, you’ll learn how to use algorithmic tools to solve the case. Runtime scours smugglers’ boats with binary search, tails spies with a search tree, escapes a prison with depth-first search, and picks locks with priority queues. Joined by know-it-all rookie Officer Notation and inept tag-along Socks, he follows a series of leads in a best-first search that unravels a deep conspiracy. Each chapter introduces a thrilling twist matched with a new algorithmic concept, ending with a technical recap.

    Perfect for computer science students and amateur sleuths alike, The CS Detective adds an entertaining twist to learning algorithms.

    Follow Frank’s mission and learn:

    • The algorithms behind best-first and depth-first search, iterative deepening, parallelizing, binary search, and more
    • Basic computational concepts like strings, arrays, stacks, and queues
    • How to adapt search algorithms to unusual data structures
    • The most efficient algorithms to use in a given situation, and when to apply common-sense heuristic methods
  • Author Bio 

    Jeremy Kubica is a principal engineer at Google working on machine learning and algorithms. He has a PhD in robotics from Carnegie Mellon University and a BS in computer science from Cornell University. Kubica is the author of the popular Computational Fairy Tales blog.

    Table of contents 

    A Note to Readers
    Chapter 1: Search Problems
    Chapter 2: Exhaustive Search for an Informant
    Chapter 3: Arrays and Indexes on a Criminal’s Farm
    Chapter 4: Strings and Hidden Messages
    Chapter 5: Binary Search for a Smuggler’s Ship
    Chapter 6: Binary Search for Clues
    Chapter 7: Adapting Algorithms for a Daring Escape
    Chapter 8: Socks: An Interlude and an Introduction
    Chapter 9: Backtracking to Keep the Search Going
    Chapter 10: Picking Locks with Breadth-First Search
    Chapter 11: Depth-First Search in an Abandoned Prison
    Chapter 12: Cafeteria Stacks and Queues
    Chapter 13: Stacks and Queues for Search
    Chapter 14: Let’s Split Up: Parallelized Search
    Chapter 15: Iterative Deepening Can Save Your Life
    Chapter 16: Inverted Indexes: The Search Narrows
    Chapter 17: A Binary Search Tree Trap
    Chapter 18: Building Binary Search Ladders
    Chapter 19: Binary Search Trees for Suspects
    Chapter 20: Adding Suspects to the Search Tree
    Chapter 21: The Binary Search Tree Property
    Chapter 22: Tries for Paperwork
    Chapter 23: Best-First Search: A Detective’s Most Trusted Tool
    Chapter 24: Priority Queues for Investigations
    Chapter 25: Priority Queues for Lock Picking
    Chapter 26: Heuristics in Search
    Chapter 27: Heaps in Politics and Academia
    Chapter 28: Difficult Search Problems
    Chapter 29: Search Termination

    View the detailed Table of Contents (PDF)
    View the Index (PDF)


    “This book is both entertaining and educational, and a great stocking stuffer, especially for anyone involved with data analysis.”
    The Vancouver Sun

    “A great introduction for older kids or adults to the concepts contained therein. The story is filled with humor and adventure.”
    Geek Dad

    “Exceptionally well written, organized and presented...truly adds an entertaining and novel twist to making the learning algorithms fun, practical, and effective.”
    Midwest Book Review

    The CS Detective was featured in Kids, Code, and Computer Science.

    “I love being able to wrap learning into this story and that it doesn’t seem like learning at all. This book is perfect for computer science students or amateur sleuths who enjoy a good mystery.”
    The Old Schoolhouse

    “I give this book 10 out of 10 horseshoes.”

    “Good wizards and evil wizards cast spells, which helps capture the interest of students in the upper middle and lower high school grades...The story is worth the time to learn about different binary searches.”
    National Council of Teachers of Mathematics

    “I think the book would be good for high school–college level students interested in search algorithms or computer science in general. I enjoyed the book and the refresher on CS topics.”
    404 Tech Support