From Mathematics to Generic Programming
Alexander A. Stepanov and Daniel E. Rose
pub. 2015, 293p
There were moments when I thought I'd put this down and turn my attention to other books. I'm so glad I kept reading. This book is amazing.
From Mathematics to Generic Programming weaves math history and mathemetician's biographies with explanations of fundamental programming concepts. It shows the mathematical roots of essential concepts like "type" and "linear search" and how the math translates to computing. It's a refreshing change of pace from books promising returns on low engagement: "15 minutes to programming in C++!", or the last book I read. Instead, Stepanov and Rose lay out a rich topic in a way that is engaging for any reader and encourages deeper study. I can imagine spending months with this book as a programming student.
As a reader, I didn't quite live up to this responsibilty. I couldn't keep my eyes from glazing over at the more technical math bits. And I didn't attempt any of the logic and programming "exercises" provided. But even when I failed my responsibilities and skipped a page or two, the next section pulled me back in with fascinating history and easy-to-understand explanations of critical math concepts. This was my first introduction to abstract algebra, for example, and the best explanation I've read of the way math's "axioms", "proofs", and "theorems" work. That the authors can reward any level of engagement is a remarkable accomplishment.
By the time my borrowing period was up at the library, I was rushing to read more. I only got to page 192 and absolutely loved my two weeks with it. I can see myself someday needing to finally hone my skills at programming and will start with this book.