The art and craft of computing - Ceri, Stefano 1955-; Mandrioli, Dino; Sbattella, L. (Licia) (Addison Wesley, 1998)
Gives students a firm rooting in the fundamental principles of computer science, and an appreciation of the correlation between those principles and an introduction to programming. Maintains strong coverage of the topics taught in the traditional introductory courses including algorithms and basic elements of programming languages and then goes further to introduce higher level topics such as the structures of operating systems, databases and productivity tools.