This is an old revision of the document!
Table of Contents
Learning More
Unfortunately, this page is not well-organized yet. As it evolves, it might.
Reading Recommendations
I don't necessarily recommend that you buy the books from Amazon; I just want you to be able to read summaries and reviews. You may be able to get them through the library (either W&L's or your local library).
- Programming Pearls - how to approach solving problems
- The Art of Unix Programming - for a history of OS and Unix programming and knowledge of useful tools
- In the Plex - about Google, to have something to aspire to
- Gödel, Escher, Bach: An Eternal Golden Braid - “looks at the surprising points of contact between the music of Bach, the artwork of Escher, and the mathematics of Gödel. It also looks at the prospects for computers and artificial intelligence (AI) for mimicking human thought. For the general reader and the computer techie alike, this book still sets a standard for thinking about the future of computers and their relation to the way we think.”
- New Turing Omnibus - “66 concise articles on the major points of interest in computer science theory, technology and applications”
- The Cathedral & the Bazaar, the book on Safari - requires logging in with W&L account.
Blogs, Essays
- Lambda the Ultimate Blog - this page has pointers for early studiers of programming languages (PL); may get a little technical
History
Fiction
What many computer scientists have read…
Additional Resources
- Free Tech Books - database for a lot of free online books, text books, and lecture notes
Viewing or Listening Recommendations
Fun Alternatives for the Intro Student
- GeomLab – “introduce you to some of the most important ideas in computer programming in an interactive, visual way through a guided activity.” Starts out slow but moves quickly
- Alice - “Alice is an innovative 3D programming environment that makes it easy to create an animation for telling a story, playing an interactive game, or a video to share on the web. Alice is a teaching tool for introductory computing.”
- Scratch - “Scratch is a programming language that makes it easy to create your own interactive stories, animations, games, music, and art – and share your creations on the web.”
- Turtle Java - “graphics programming environment designed to provide an enjoyable introduction to programming in Java syntax, together with fundamental concepts of computer science such as compilation and machine code.”