This book has been designed for first-year engineering students undertaking the course on Programming for Problem Solving. It explains the concepts of the course through the C programming language. ‘C’ is a general-purpose language whose application areas extend from operating systems and device drivers to the “apps†found on smartphones. By nature, C programs are compact and fast, but they can also be quite tricky and cryptic. This textbook will help in demystifying C programs for first-time readers. The book features well-annotated and properly indented programs which make concept understanding easy for students. Most of the programs in the book are based on real-world applications. The book also provides references to implement programming concepts using Python programming, which along with C, will help students in easy migration from C to Python. Salient Features : 1) Completely aligned with AICTE model curriculum on Programming for Problem Solving. 2) Separate chapters providing in-depth coverage on Algorithms and Recursion. 3) Discusses Big-O notation for algorithms to help students understand time and space complexities. 4) Provides smooth path for students to migrate to Python with the help of insets. 5) Side-by-side inclusion of programs in both C and Python language for better understanding.