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...

011y

I'll look for Bertot's book. I agree that "A Discipline" is not a pleasant read
(though I found it rewarding).

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.

211y

What about Manber's book makes it more fruitful for self-study than CLRS? How
does it compare with CLRS in other respects? (Coverage of algorithms and data
structures; useful pseudocode; mathematical rigour; ...)

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.

28y

I've got a recommendation for experimental design/general inference:
Experimental and Quasi-Experimental Designs for Generalized Causal Inference, by
Shadish, Cook, and Campbell (2001)
Admittedly, this is the only textbook I've ever used that was expressly for
experimental design, but I really do think it is superb. Does anyone else have
comparison texts for this kind of thing? The validity typology alone is heroic;
statistical conclusion validity, internal validity, construct validity, and
external validity are each covered in great detail, as are common threats to
each of these types of validity.

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 Fr...

07y

I think you are supposed to tell which is the one you recommend. I would like to
read a textbook on mathematical logic, and would like to know which one to
choose. And you just give a list without any advice

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.