This document provides an introduction to software engineering. It defines software as a set of instructions that provide desired functions when executed. Engineering is defined as applying scientific methods to construct, operate, modify and maintain useful devices and systems. Software engineering then applies technologies and practices from computer science, project management, and other fields to the design, development and documentation of software. Some key characteristics of software discussed are that it is developed rather than manufactured, can be easily modified and reproduced, and does not wear out. The document also outlines various types of software applications and discusses software engineering as a layered technology with foundations in quality focus, processes, methods and tools. Finally, it addresses some common software myths from management, customer, and practitioner perspectives.