“Little” books on big topics in computer science

Dan Friedman’s “Little” series turns big ideas in computer science into digestible primers

For even the most seasoned computer science expert, new concepts and ideas can be confounding. That’s where Dan Friedman’s “Little” book series comes in handy. “Big ideas in computer science are often abstract, scary and intimidating,” said Friedman, the series creator. “What I have always tried to do with ‘Little’ books is to fight this intimidation by building up the ideas from first principles, one piece at a time.”

Friedman created the first book in the long-running series, The Little Lisper, when he asked his students to turn his lecture notes into a book. The conversational style with question-and-answer formatting born of this first exercise has endured through all of Friedman’s books, including the series’ latest volume on deep learning, The Little Learner

“Deep learning with neural networks is another one of those intimidating big ideas because of the unseemly amount of advanced mathematics involved,” Friedman said. “We wrote The Little Learner to make deep learning accessible without relying on advanced mathematics. In fact, we built up the ideas from first principles using only the smallest amount of high-school algebra and geometry.”

Explore more books in the series below, or discover even more books on computer science from the Press


The Little Learner: A Straight Line to Deep Learning by Daniel P. Friedman and Anurag Mendhekar

The Little Learner introduces deep learning from the bottom up, inviting students to learn by doing. With characteristic humor and Socratic approach, this text explains the workings of deep neural networks by constructing them incrementally from first principles using little programs that build on one another. Starting from scratch, the reader is led through a complete implementation of a substantial application: a recognizer for noisy Morse code signals. Example-driven and highly accessible, The Little Learner covers all of the concepts necessary to develop an intuitive understanding of the workings of deep neural networks, including tensors, extended operators, gradient descent algorithms, artificial neurons, dense networks, convolutional networks, residual networks, and automatic differentiation.


The Little Typer by By Daniel P. Friedman and David Thrane Christiansen

A program’s type describes its behavior. Dependent types are a first-class part of a language, and are much more powerful than other kinds of types; using just one language for types and programs allows program descriptions to be as powerful as the programs they describe. The Little Typer explains dependent types, beginning with a very small language that looks very much like Scheme and extending it to cover both programming with dependent types and using dependent types for mathematical reasoning. The Little Typer does not attempt to teach either practical programming skills or a fully rigorous approach to types. Instead, it demonstrates the most beautiful aspects as simply as possible, one step at a time.


The Reasoned Schemer, Second Edition by Daniel P. Friedman, William E. Byrd, Oleg Kiselyov and Jason Hemann

The goal of this book is to show the beauty and elegance of relational programming, which captures the essence of logic programming. The book shows how to implement a relational programming language in Scheme, or in any other functional language, and demonstrates the remarkable flexibility of the resulting relational programs. The pedagogical method is a series of questions and answers, which proceed with the series’ characteristic humor.


The Little Prover by Daniel P. Friedman and Carl Eastlund

The Little Prover introduces inductive proofs as a way to determine facts about computer programs. It is written in an approachable, engaging style of question-and-answer. Sometimes the best way to learn something is to sit down and do it; the book takes readers through step-by-step examples showing how to write inductive proofs. The Little Prover assumes only knowledge of recursive programs and lists and uses only a few terms beyond what novice programmers already know. The book comes with a simple proof assistant to help readers work through the book and complete solutions to every example.


Explore more books on computer science from the MIT Press