Prerequisite: SE 321 + MATH 241
This course introduces the use of formal mathematical notation and reasoning in the software development process. These methods have applications in requirements specification, design and verification. Course topics include mathematical foundations, predicates, preconditions and post conditions, alternative notations, types of formal models, and the strengths and limitations of formal methods.