
Then I studied a matrix of math books, along with other CS books regarding compilers, operating systems etc. My aim was to get good enough understanding to comfortably digest the famous research papers.
I am yet to find definitive books that teach a way of thinking on their own merit as a single book. Cs like others is a matrix of knowledge that clicks as a whole 'chunk' of understanding, changing the way you have thought about things like programming in general. I'm having a hard time explaining this.
If you're not a CS graduate, I highly suggest simply going through academics of places teaching theoretical CS.
The entire book -- including the portions labeled Models of Computation, Director's cut, and Extended Dance Remix -- presents accessible introduction to much of the CS theory landscape.
Someone already praised the shorter book titled "Algorithms" by Dasgupta et al, and I second it. Tim Roughgarden's "Algorithms Illuminated" series is in this genre too.
I'd also recommend the MIT lecture notes on Mathematics for CS: https://courses.csail.mit.edu/6.042/spring18/mcs.pdf This is distinctive for its intuitive explanations with essential, approachable formalism. The exercises are fine too, if you are really mean it.
Sipser's book on the Theory of Computation is great and the one by Hopcroft et al is also very good (as suggested by others). But the most beginner-friendly (or, light on math) coverage of this area is apparently in Peter Linz's book "Introduction to Formal Languages and Automata". An alternative flavor in the treatment of much of the same topics is in this free book: http://cs.brown.edu/people/jsavage/book/
If those get through and he reads through them, try sending things like "An Introduction to Formal Languages and Automata", "A First Course in Combinatorial Optimization" and this sort of thing.
There are also prison reform groups like FAMM that you can talk to.
- "Introduction to the Theory of Computation" [Part I] by M. Sipser
- "Introduction to Compiler Design" by Torben A. Mogensen
- "An introduction to Formal Languages and Automata" by P. Linz
- "Languages and Machines" by Thomas A. Sudkamp
>Many of OP's objections come off as petty
I have had the book in my hands, I have turned the pages and seen the typesetting myself. It's not an exaggeration. It looks like one of those books written by a typewriter with some of the lines are misaligned, except it wasn't and that is overall a pain to parse. Also the pages are small and margins wide.
Why inflict that upon yourself when there are plenty of other books that show a modicum of effort in editing.
The Art of Computer Programming by Donald Knuth
Introduction to Algorithms by Thomas Cormen
An Introduction to Formal Languages and Automata by Peter Linz
Probability and Statistics by by Morris H. DeGroot
Operating Systems: Internals and Design Principles by William Stallings
Understanding Cryptography by Christof Paar
Database Systems: Fundamentals of Design, Implementations and Management by by Peter Rob
Principles of Concurrent and Distributed Programming: Algorithms and Models by M. Ben-Ari
Introduction to Graph Theory by Richard Trudeau
Advanced Data Structures by Peter Brass
Ones and Zeros: Understanding Boolean Algebra, Digital Circuits, and the Logic of Sets by John Gregg
An Introduction to Algebraic Structures by Joseph Landin
Theory of Computation by S.N. Sivanandam
You can always find more on https://cstheory.stackexchange.com/ or on some universities websites.