This document provides an introduction to software engineering. It discusses what software engineering is, how it differs from computer science and systems engineering, common software engineering processes and methods, costs associated with software engineering, and challenges facing the discipline. The key topics covered are definitions of software and software engineering, differences between related fields, typical software development activities and lifecycles, cost distribution over the development process, and methods, tools and important quality attributes for software.