Problem Solving and Program Design in C is one of the best-selling introductory programming textbooks using the C programming language. It embraces a balanced approach to program development and an introduction to ANSI C. The book provides a gradual introduction to pointers and covers programming with functions early in the text. In later chapters, students learn to implement fundamental data structures such as lists, stacks, queues, and trees in a language that fosters their understanding of stack- and heap-dynamic memory allocation and programmer-controlled pointers. To enhance students' learning experience it offers the right amount of pedagogical features that include end-of-section and chapter exercises, examples and case studies, syntax and program style display boxes, error discussions and end-of-chapter projects.