This document provides an overview of software engineering concepts. It begins by defining software and discussing different types of software applications. It then defines software engineering as the systematic application of engineering principles to software development. Some key practices of software engineering discussed include understanding requirements, planning solutions, implementing plans, and examining results. The document also summarizes George Polya's four essential practices of software engineering and Richard Hooker's seven general principles of software engineering. Finally, it discusses some common myths regarding software and software engineering practices.