Covers how to build quality software using standard development practices and representations. Includes writing and using requirements, designing and representing computational units, rigorous program testing, reviews and inspections, and working effectively in teams.