How to Design Programs
Felleisen, Matthias (Trustee Professor, Northeastern University) / Findler, Robert Bruce (Associate Professor of Computer Science, Northwestern University) / Flatt, Matthew (Professor, University Of Utah) / Krishnamurthi, Shriram (Professor of Computer Science, Brown University) This introduction to programming places computer science in the core of a liberal arts education. Unlike other introductory books, it focuses on the program design process.