Algorithms by Jeff Erickson. A PDF (448 pp.) and online material. Nice.