The Practice of Programming
cs.princeton.edu