Haskell: The Craft of Functional Programming 2/E
The new edition of this text introduces functional programming in the Haskell language at a level appropriate for students and programmers with little or no experience of functional languages. The emphasis is on the process of crafting programs, problem solving and avoiding common pitfalls.
Java How to Program 7/E
The Deitels' groundbreaking How to Program series offers unparalleled breadth and depth of object-oriented programming concepts and intermediate-level topics for further study. This survey of Java programming contains an extensive OOD/UML 2 case study on developing an automated teller machine.