The Craft of Programming
by John C. Reynolds
Publisher: Prentice Hall 1981
Number of pages: 434
The modern computer is so powerful that a casual knowledge of programming suffices for most of its users. However, a variety of circumstances can abruptly require a much deeper understanding: the need to structure a program carefully to avoid being overwhelmed by its complexity, the need to insure reliability beyond what can he achieved by debugging, or the need to utilize computing resources efficiently. Beyond such practical considerations, there is an inherent intellectual satisfaction in mastering the fundamental concepts of programming. The aim of this book is to provide such mastery concept by concept. For example, the reader is expected to understand proofs of correctness and order-of-magnitude time requirements for simple integer algorithms - such as log n exponentiation - before the concept of arrays is introduced. A similarly thorough understanding of array manipulating algorithms is expected before the introduction of procedures.
Home page url
Download or read it online for free here:
by Jon Bentley - Addison-Wesley Professional
The book focuses on choosing the right algorithms and on showing how to solve problems effectively. Each chapter frames a particular programming task (sorting numbers, creating anagrams, counting the words). Code examples are written in C and C++.
by Mark McIlroy - Blue Sky Technology
This book is an introduction to computer programming. It covers the essential information of a Computer Science course. Recommended for beginners and intermediate programmers. Contents: Program Structure; Topics from Computer Science; etc.
by Nils M Holm - Lulu Press
This book introduces the concept of functional programming, describes a language that fulfills all the requirements, and shows how to solve simple problems in it. The book shows how to apply these techniques to some problems of varying complexity.
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.