Software engineering is a profession as well as field of study related to all aspects of the software life cycle, covering the design, implementation, modification and maintenance of software in a systematic and quantifiable fashion. The various methodologies in this rapidly expanding field of endeavour are derived from the framework and principles associated with traditional engineering disciplines, and have as their end goal the creation of higher quality, cheaper, efficient and easily maintainable software. Its relevance and application is increasing rapidly in a large variety of domains in business, science, entertainment and education today; where software applications that are deployed continue to evolve in complexity and functionality.
This programme provides extensive coverage of the various techniques, principles, and tools for the major areas of software design, software testing, software processes and requirements engineering. Instruction on advanced programming techniques in a variety of software development languages is provided to impart a strong practical flavour to the course, in which students are able to relate theoretical constructs to actual hands-on experience in software development. This is also supplemented with exposure to related communication and network technologies such as the Internet and mobile cellular networks. The programme aims to produce graduates who are capable and confident of utilizing state-of-the-art techniques and methodologies in all phases of the software life cycle, and to relate this process effectively to the variety of application domains in the current global environment where large, complex software systems will be deployed in.