This book has two primary objectives: to teach the basic principles of programming in C and C++ as outlined in curricula at many leading universities, and to teach the basic constructs of the C language and the C++ language. In addition, this book is designed to be used in a programming course using the C or C++ languages. The concept of "learning by example" has been stressed throughout this book. Each chapter contains many examples, exercises and programs. These programs also demonstrate the general software engineering concepts and principles of good programming style.