Prerequisites:COS212 and COS214
The module exposes students to problems associated with software development on an industrial scale. Overall goals of the module are: to become familiar with the latest trends in software engineering; to understand the software engineering process and to appreciate its complexity; to be exposed to a variety of methodologies for tackling different stages of the software life cycle; to understand and apply the concepts of systems administration and maintenance; to complete the development of a fairly large object orientation-based software product. The focus of the module is on a project that lasts the whole year. The project is completed in groups of approximately four (4) students and teaches students to take responsibility for a variety of roles within a group, and to understand the different requirements for these; to experience the advantages and problems of working in a group; professionalism with regards to particularly colleagues and clients. After the successful completion of this module, the student will be able to: understand the psychology of a client; work in groups; and have an appreciation for planning, designing, implementing and maintaining large projects. These qualities should place the students in a position in which they are able to handle software development in the corporate environment.
This module introduces students to a framework for investigating both computability and complexity of problems.