Discrete Structures for Computer Science: Counting, Recursion, and Probability by Michiel Smid Edsger W. Dijkstra Archive Elements of Programming by Alexander Stepanov and Paul McJones Foundations of ...