This book's primary objective is to teach problem solving using computers. The book uses the American National Standards Institute (ANSI) standard C programming language. C is a programming language that can be used to teach structured procedural programming techniques. It is an excellent language to introduce fundamental principles and techniques of software engineering, including structured program design, programming style, documentation, modular design, code reusability, program verification and testing, and data structuring.