I am a software developer. These days, I work for a social networking site and write in Ruby, Php, C, C++, and of course, use SQL. I have a B.Sc. in Computing Science. I love my job. In my free time, I set up MythTV boxes, install open-source firmware on my WRT-54GL wireless router, and generally geek out.
My girlfriend wants to understand what I do. She wants to understand computer programming and all the rest. Just from a general level, of course; she has no intention of going back to university for a computing science degree herself.
So, she's asked me to pick her up a book. I'm thinking something that provides an overview of computing science, the sort of book that would be required in a first semester, first year computing science course. But that was a long time ago for me, so I'd like your suggestions.
I'd really like something that's a fairly high level. An intro to data structures is fine, but no need to get into graph theory. Heck, a book that covered programming in MS Excel would even probably be fine. I just don't want a "programming for dummies"; the goal here is for her to understand what it is that I do. The theory is more important than the practice, but whatever I buy must be sufficiently approachable.
I have already picked up Joel Spolsky's Aardvark'd DVD in the hopes that that covers the non-technical side of things.