Where I teach, there’s a tradition of teachers giving a book to the top student from every class. These book awards are a nice, thoughtful way to celebrate a student’s success. Finding an appropriate book for a particular student can be tricky, especially for elective classes like computer science. Over the last few years, I’ve found a few subject-adjacent books that work well for different types of students: the CS novice, the skilled programmer dead-set on a future in computing, and the talented student who enjoyed their time in class but will likely choose to find success in a different discipline. Hopefully, these four recommendations are helpful to you, whether you’re looking for a gift for a student or some new computer science reading material for yourself!
The Thrilling Adventures of Lovelace and Babbage (Barnes and Noble, Amazon). This book, a graphic novel re-envisioning the story of Ada Lovelace and Charles Babbage, is easily the most charming book related to coding I’ve ever come across. With mountains of research (and footnotes as fun as the story itself), it covers the story of Lovelace and Babbage’s collaboration on the general-purpose Analytical Engine, imagining what would have happened if they had been able to finish the design in their lifetimes. The book includes plenty of work by Lovelace, including what is considered by many to be the first computer program ever written.
It is an excellent choice for a student who’s just taken an introductory-level computer science class. History buffs of all ages will also enjoy it, as well as anyone who’s looking for a STEAM story with an awesome (and real!) woman protagonist. Ada, an early programming language, was named after her. (Ada is not available for use in Coding Rooms, but several languages it has influenced are – like C++, Java, and Python.)
Algorithms to Live By: The Computer Science of Human Decisions (Barnes and Noble, Amazon). This book shows how computer science concepts can be used to solve real-world problems – for example, applying sorting algorithms for processing lots of paper or using scheduling theory to prioritize a long to-do list. The book is interesting and informative without being over-technical. It’s great for students who have demonstrated that they can think systematically when they’re problem-solving, whether or not they might want to pursue a career in computing.
To give you an idea about an ideal recipient: I first gave this book to a student who had excitedly shown me this video about the most optimal way to board an airplane. He loved the book and has told me he still uses some of the algorithms he read about. I’ve given this to students in my AP Computer Science classes, as well as a student in Mobile App Development.
Cracking the Coding Interview (Barnes and Noble, Amazon). This is the most technical of all the books on this list, but the students I’ve given this to have been ecstatic to receive it. Those students had all just finished their Data Structures and Algorithms class (roughly equivalent to CS2 in a typical college program), though this book could be appropriate for a skilled AP Computer Science A student who intends to study computer science further. It prepares students for the technical interviews they may have to do before landing a software engineering job or internship, covering the “soft” interview skills as well as going into detail on dozens of common algorithms that might get brought up in a coding question. It’s among the most widely recommended computer science books in circulation. A content-heavy textbook like this isn’t necessarily the most eye-catching option on the list, but to the motivated student who’d receive it, it shows you believe in their future as a coder and you take their goals seriously.
Grokking Algorithms (Barnes and Noble, Amazon). This is another book about algorithms, but not nearly as dense as Cracking the Coding Interview. It helps students grok, or develop an intuitive understanding of, many of the most common algorithms they’d see in a collegiate computer science program. The explanations are worded with everyday language and cute illustrations (such as the exploration of Djikstra’s Algorithm shown here). It’s a useful present for students who intend to take CS classes in college, as well as high school self-starters who want to start learning these concepts “ahead of schedule.” This is my go-to book for students who have finished AP Computer Science A. It’s also open on my own desk frequently – I use it to refresh my memory when I’m about to teach a new algorithm in one of my classes!
When I was learning to program in high school and college, I always felt encouraged when any of my teachers even gave me a personalized note talking about my performance in their class. To have received a thoughtful gift like one of these books would have been tremendous! This is by no means an exhaustive list of books that a computer science student might enjoy, but these options have worked well for me. I hope they’ll make a student in your life happy too!
Computer Science Teacher and Robotics Coach
Avon Old Farms School
Avon, Connecticut (just outside of Hartford)