This document outlines the course contents for a software construction course taught by Dr. Shaukat Ali. The course covers requirement engineering, behavioral modeling using state machines, languages, grammars and analyzers. It defines software construction and discusses its relationship to software design and testing. The main activities of software construction include managing complexity, managing change, facilitating validation and verification, and complying with standards. Techniques for managing complexity, change, validation and standards compliance are also discussed.