This second edition, explores top-down structured problem solving, the process of data abstraction and structuring, and the comparative study of algorithms as fundamental tools of program design. This practical text: uses a concrete, practical approach with problem-solving orientation. Includes many sample programs and several large case studies. Provides over 300 exercises and programming projects.