Publisher's Synopsis
Describing programming methods and tools using the C programming language, this text emphasizes problem specification and program design, analysis, testing and verification and program correctness.;The text develops large and small programs in runnable C, compares algorithms and data structures to emphasize trade-offs among time, space and programming effort. It also stresses recursion through a range of applications and development of criteria for use, includes a case study that integrates various topics with programs of realistic size, offers over 300 total exercises ranging from method application to large group projects, and emphasizes the process of data abstraction and abstract data types (ADT), separating ADPs from implementation decisions. Finally, the book discusses major principles of software engineering and applies them to large programming projects.