Hey,

Over summer I'd quite like to learn about how computers work, which I consider to be a large lacuna in my scientific knowledge.

I'm really interested in the really fundamental stuff; algorithms, turing machines, all that jazz. I'd like to have some general idea how a computer works on all levels; how transistors and binary works, and how this is related to programming, etcetera. I'd like to be able to do some basic programming, too.

I'm not really sure what this is all branched under (theoretical computer science was a bit of a guess), but if you could point me in the direction of some good resources, that'd be awesome. :V

Cheers.