Course Detail
Units:
--
Course Components:
Laboratory
Lecture
Description
This course develops skills in developing and maintaining complex applications. Skills will be developed in (i) creating and interpreting specifications for software, both formal and informal, (ii) using version control systems and continuous integration systems, (iii) creating test cases, creating testable software, and assessing the effectiveness of a testing campaign, (iv), using static and dynamic analysis tools to find and eliminate software defects, (v) refactoring applications, and (vi) writing solid, secure code using techniques such as defensive programming and assertions.