Recently found this paper, entitled "On the Cruelty of Really Teaching Computer Science" by Dijkstra (plaintext transcription here). It outlines ways in which computer programming had failed to (and still has) actually jump across the transformative-insight gap that led to the creation of the programmable computer. Probably relevant to many of this crowd, and very reminiscent of some common thoughts I've seen here related to AI design.
In the same place I found this paper discussed, there was mention of this site, which was recommended as teaching computer science in a way implementing Dijkstra's suggestions and this textbook, similarly. I can't vouch for them personally yet, but this might be an appropriate addition to the big list of textbooks.
Dijkstra's general senitment seems to be that applying existed engineering practices from civil, mechanical, electrical, etc. engineering disciplines to computer science is woefully inadequate. With this, I agree. I also agree that there seems to be some weird set of beliefs in mathematical culture that the human brain is superior to a computer and that no computer could ever do mathematics like a human could (I've seen even prominent mathematicians use Godel's theorem as bogus 'evidence' of this).
But the problem is that there doesn't seem to be a viable a...
If it's worth saying, but not worth its own post (even in Discussion), then it goes here.