This document provides an introduction and outline for a course on software engineering. It begins with background on the history and problems of software development that led to the emergence of software engineering. It then outlines the main concepts that will be covered in the course, including software engineering relationships, principles, development methods and techniques, management methods, life-cycle methodologies, processes and procedures, and automated tools. Examples of specific topics that will be discussed are the software development life cycle, requirements analysis, design methods, coding, testing, integration, maintenance, and project management techniques.