As part of my current experience with teaching my daughter how to write code, I am finding myself getting into territory that I somewhat understand at various levels, but struggle to explain or make clear enough for a thirteen year old to likewise understand. How does someone explain recursion without causing a bunch of confusion in the process? In the past I have found myself struggling with ways to explain certain topics that help ground ideas of computer science, computing and programming, and how they actually work.
Carlos Bueno feels my pain, and to help answer it, he has written a book that is a perfect companion for a young person learning to code. That book is “Lauren Ipsum”. It’s subtitle is “A Story About Computer Science and Other Improbable Things”. More to the point, it is a computer science book without a computer. Wait, what? How does that work?
Carlos prints the following in the pages before the story starts:
I feel I should warn you: You won’t find any computers in this book. If the idea of a computer science book without computers upsets you, please close your eyes until you’ve finished reading the rest of this page.


You can also play with computer science without you-know-what. Ideas are the real stuff of computer science. This book is about those ideas and how to find them. In fact, most of the characters, places, and thingamajigs in Userland are actually based on those ideas. Check out the Field Guide at the back of the book to learn more about them!
“Lauren Ipsum” is the name of a girl who goes for a walk after a fight with her mother, finds herself lost, and in the process, meets an improbable cast of characters in a magical world called Userland. Through her travels, she solves various problems for herself and others and tries to find her way back home. Each of the people and creatures she meets personifies a different problem in computer science, and ways that can be used to help solve problems related to them. We are introduced to the “traveling salesman” problem, logic and choices, algorithms, cryptography, heuristics, abstraction, construction and deconstruction, networking, and branching paths, to name but a few.
At the end of the book is a section called the Field Guide to Userland, which goes into additional details about each of the chapters, the concepts mentioned in each section, and what they represent. If you are an adult looking for a quick reference for the book and the concepts being covered, this is it, and is frankly worth the purchase price of the book by itself. Having said that, don’t think that you can’t learn from the story itself. In fact, I’d be surprised if yo didn’t find yourself enchanted by the main story as well. 

Bottom Line: This is a fun way to introduce problem solving and logic to kids who want to learn how to program. While we have lots of tutorials that talk about the syntax of code or the ways to build a program to do something, we often skip out on these other important topics until later, and then struggle with trying to understand or explain them. To that end, “Lauren Ipsum” does a great job at breaking down what can be difficult to explain topics in a way that a teenager can understand, but also in a way that grown ups who should know this stuff, but struggle with it, can have some new stories to work into their understanding. If you have a kid looking to learn how to code, share this book with them. Have them read it, of course, but take the time to read it yourself, too. You might find yourself much better equipped to explain the concepts as time goes on.