Software implementation techniques and standards will be introduced with the aim of developing programming skills. Students will use fundamental algorithmic techniques and structures, such as stacks, queues, and binary trees, as tools for software design and implementation. Using a computer-based virtual educational environment as a setting, students cover such topics as ethical and legal matters,computers and the military, the physical and moral limitations of computer power and the changing impact of computers on society. Students are introduced to functional analysis and development, in contrast to object-oriented techniques. Formal methods and proofs of correctness are presented in the context of mission-critical software systems.
Students learn techniques for estimating, planning, and producing software systems.
Throughout the semester, the students will be given a series of programming tasks for which they will design and refine a personal software process. Societal implications such as cost of failure and professional responsibilities are considered. Students will utilise software engineering skills in projects relating to commercial software requirements. The aim is to show how tools and techniques learned in earlier subjects are applied to solve significant problems. Object-oriented software engineering is investigated from a number of perspectives.