Computer Science: Abstraction to Implementation
by Robert M. Keller
Publisher: Harvey Mudd College 2001
Number of pages: 627
This book is intended for a broad second course in computer science, one emphasizing principles wherever it seems possible at this level. While this course builds and amplifies what the student already knows about programming, it is not limited to programming. Instead, it attempts to use various programming models to explicate principles of computational systems.
Home page url
Download or read it online for free here:
by Karthik Naidu - GitBook
These are engineer's notes on problem solving. They are ideally suited as practice material for coding interviews. Each post has 5 sections: problem statement, examples, algorithm, code, test cases, and a discussion on time-complexity.
by Lawrence C Paulson - University of Cambridge
This text teaches programming and presents some fundamental principles of computer science, especially algorithm design. The programming in this course is based on the language ML and mostly concerns the functional programming style.
by Peter Van Roy, Seif Haridi - The MIT Press
Covered topics: concurrency, state, distributed programming, constraint programming, formal semantics, declarative concurrency, message-passing concurrency, forms of data abstraction, building GUIs, transparency approach to distributed programming.
by Carroll Morgan - Prentice-Hall
Rigorous treatment of most elementary program-development constructs, including iteration, recursion, procedures, parameters, modules and data refinement. Additions include more material on data refinement, recursively defined types, and case studies.