This document provides an introduction to software engineering. It discusses how software has become embedded in many systems and how maintenance now absorbs more resources than new development. This led to the need for software engineering practices to make development easier, faster and less expensive. The document then covers the evolving roles of software as both a product and a vehicle to deliver other products. It discusses how software characteristics differ from hardware, including that software does not wear out. The document also outlines the changing nature of software in categories such as system software, application software, and artificial intelligence software. Finally, it discusses software myths that have persisted since the early days of computing.