This textbook offers a practical introduction to software engineering, emphasizing a programming approach. It covers the software development lifecycle, including requirements analysis, design, implementation, testing, and maintenance. The book is structured to help students transition from small-scale programming to large-scale software development. It includes numerous examples, exercises, and self-test questions to reinforce learning. The third edition introduces updated content reflecting recent developments in the field.