"This book builds a well-defined computation model that allows concepts that are important in technical and scientific applications -- like pointers, arrays and recursion -- to be gradually and rigorously introduced. The languages covered by the book, C and MATLAB, are highly relevant to engineering applications. Clarity of exposition, numerous well-chosen examples, pedagogical savvy, and logical sequencing of the topics all help the reader's progress through the chapters and make for an enjoyable learning experience. This book prepares one well to deal with advanced programming language constructs and the design of large, complex applications by promoting mastery of the fundamentals, by covering important practical aspects of a programmer's activity, and by instilling good design and implementation habits. It is therefore ideally suited for self-study or as a textbook in an introductory college-level programming course for engineers and similarly technically-minded students." Fabio Somenzi (University of Colorado at Boulder)