Follows the software life cycle – from requirement, specification, and design phases through the construction of actual software. Topics include management of programming teams, programming methodologies, debugging aids, documentation, evaluation and measurement of software, verification and testing techniques, and the problems of maintenance, modification, and portability.