Posts
Comments
For an AI text, I think any (text)book on a subject of your interest by Judea Pearl would fit the bill.
"Symbolic Logic and Mechanical Theorem Proving" by Chang and Lee is still an exceptionally lucid introduction to non-probabilistic AI.
I also prefer Hopcroft+Ullman (original edition) to later alternatives like their own later edition, Papadimitriou, and even Sipser who is widely regarded as having written the definitive intro text.
"A Discipline of Programming" is rather hard to follow. Dromey gives an introductory treatment that's a bit too introductory, "Progamming Pearls" by Bently includes another even more informal treatment, and Gries's "Science of Programming" would be the textbook version that I might recommend covering this material. All three are somewhat dated. More modern treatment would be either Apt's "Verification of Sequential and Concurrent Programs" or Manna's "The Calculus of Computation." and depending on your focus one would be better than the other. However, the ultimate book I would recommend in this field is "Interactive Theorem Proving and Program development" by Yves Bertot. It doesn't teach Hoare's invariant method like the other books, but uses a more powerful technique in functional programming for creating provably correct software.
Manber's "Algorithms--a creative approach" is better than Cormen, which I agree is better than Knuth. It's also better than Aho's book on algorithms as well. It's better in that you can study it by yourself with more profit. On the other hand, Cormen's co-author has a series of video lectures at MIT's OCW site that you can follow along with.
Disagree with "C++ the programming language" as a C++ textbook. Anything by Lippman, Koenig or Moo would be better.
+1 for ML (and purely functional languages) used for implementing compilers.
Tannenbaum wrote some Operating System books (including one on networking). He's not so much concerned with software engineering.
"The (New) Turing Omnibus" is better for this purpose.
Why don't you like Cohen-Tannoudji?
Re: how to design experiments:
Look into statistics. Most experiments have a statistical or hidden statistical basis.
See my suggestions above for calculus.
Logic:
--mathematical
Enderton, "A mathematical introduction to logic" then Shoenfield's classic "Mathematical logic"
Cori and Lascar, "Mathematical logic: a course with exercise" for exercises for self-study
Manin, "A course in mathematical logic" for additional enrichment
--computational
Van Dalen's "Logic and Structure" and then Fitting, "First Order Logic and Automated theorem proving" to fill in the gaps
--philosophical
From Frege to Goedel: a sourcebook in mathematical logic
additional works by Frege and Cantor in dover reprints or in the original.
"Goedel's Proof" by Nagel
"Goedel, Escher and Bach" by Hofstadter
--modal and fuzzy
Goldblatt, "Logics of Time and Computation" (Introduction to modal logic through temporal logic)
Bergmann, "An introduction to many valued and fuzzy logic"
Calculus:
Apostol, "Calculus" 2 volumes (Still a classic)
Demidovich, "Problems in mathematical analysis" (Classic drill book)
Topology:
Viro, "Elementary Topology Problem Textbook" (Based on a classic course)
Modern Abstract Algebra:
Jacobson, "Basic Algebra" volumes 1 and 2
History of Western Philosophy:
Basic primary sources in western philosophy (Not a textbook!)