Title: Feynman lectures on computation
Description: From 1983 to 1986, the legendary physicist and teacher Richard Feynman gave a course at Caltech called "Potentialities and Limitations of Computing Machines.".

Although the lectures are over ten years old, most of the material is timeless and presents a "Feynmanesque" overview of many standard and some not-so-standard topics in computer science. These include compatibility, Turing machines (or as Feynman said, "Mr. Turing's machines"), information theory, Shannon's Theorem, reversible computation, the thermodynamics of computation, the quantum limits to computation, and the physics of VLSI devices.

Taken together, these lectures represent a unique exploration of the fundamental limitations of digital computers.

Feynman's philosophy of learning and discovery comes through strongly in these lectures. He constantly points out the benefits of playing around with concepts and working out solutions to problems on your own - before looking at the back of the book for the answers.

As Feynman says in the lectures: "If you keep proving stuff that others have done, getting confidence, increasing the complexities of your solutions - for the fun of it - then one day you'll turn around and discover that nobody actually did that one! And that's the way to become a computer scientist."
Subjects: Electronic data processing, Computer science, Qa76 .f45 1999, Long Now Manual for Civilization