Grokking AlgorithmsAn illustrated guide for programmers and other curious people
Very solid introduction to computer science concepts, and could even be applicable as reasoning exercises. Makes very little use of actual written code, so things are kept abstract enough to not get in the way of learning the how and why of solving these kinds of problems.
I would love to see this approach take to other areas of computer science, not just computationally-complex algorithms like these, but starting from first principles why it's useful, for example, to create a cascading system for things like styles, or a plugin system for software that is general-purpose enough to have users with different specific needs.
Citation
Bhargava, Aditya Y.. Grokking Algorithms: An illustrated guide for programmers and other curious people. Shelter Island, NY: Manning Publications Co., 2016. Printed Book8-1-617292-23-1.