An introduction to the formal derivation of computer programs from program specifications. Review of logical and notational prerequisites needed for formal derivation. Developing loops from inavariants. Program development via a sequence of refinements. CSC 472 Software Design and Development Formal approach to current techniques in software design and development.
Students work in teams in the organization, management, and development of a large software project.
CSC 477 Design and Analysis of Algorithms Analysis of the time and space complexity of algorithms. Techniques for efficient algorithm design and effect of structure choice on efficiency. Fast algorithms for problems such as set, graph and matrix manipulations, pattern matching, sorting, and storage organization. Exponential time problems and introduction to NP-completeness. CSC 478 Compiler Construction Current methods in the design and implementation of compilers.