P: 355 and 362. Fall. Tools and techniques used in software development. Lifecycle concepts applied to program specification, development, and maintenance. Topics include overall design principles in software development; the use of structured programming techniques in writing large programs; formal methods of program verification; techniques and software tools for program testing, maintenance, and documentation.