The Advanced Software Engineering MSc is a newly redesigned course that enables graduates enable students to extend their knowledge of, and gain valuable experience in, software engineering as it applies to a number of new and important areas of IT and computing.
Graduates will be able to follow a flexible program of study designed to lead to, and enhance, a career in software engineering with a focus on new technologies and areas of application, such as cybersecurity, big data, or mobile application development.
The rapid pace of technical change in software development is notorious and this has been accompanied and compounded by an increase in the complexity of the systems that are developed. Recently this has been most noticeable in the increase in mobile computing and the use of sophisticated hardware that require developer knowledge of new paradigms.
Many applications that run on these systems whether mobile or stationary are distributed in nature and will consume web services provided by service-oriented architectures and cloud-based platforms. There has also been an increase in the use of virtualisation techniques for providing flexible and maintainable systems. Businesses are now regularly using virtualised systems and techniques to lower cost and complexity and increase availability in computing environments.
The surge in cybersecurity issues and threats facing businesses and organisations that depend on IT systems has meant that software engineers need a thorough understanding of security when building and maintaining software applications and systems.
There is an acknowledged national shortage of IT and computing skills in the workforce. In the specific area of software development, a number of factors contribute to this. Most obviously, the rate of technological change means that an individual's specific knowledge frequently becomes out of date. Secondly, many significant technological developments originate in industry rather than academia, and are not yet firmly embedded in undergraduate curricula. Finally, many people enter the software industry without a specific educational background in computer science and acquire much vital knowledge in the workplace in relatively ad hoc ways.
In response to this, for many years the Department of Computer Science has been running courses that combine an emphasis on methodical approaches to the development of software applications and information systems with a determination to equip graduates with a portfolio of relevant research-oriented and practical skills and knowledge to compliment and expand their own knowledge.
The rationale behind the MSc in Advanced Software Engineering is to draw on this experience to provide an education that will cover in-depth specific skills and best current practice in software development where there is currently a significant skills shortage, whilst at the same time instilling important research-based skills that will equip students for independent lifelong learning in fast-changing and technically challenging environment.
The Masters of Science in Advanced Software Engineering takes into account the emerging needs of industry underpinned by theory and software engineering practices. As a consequence the modules emphasise both the critical conceptual underpinnings as well as the practical skills for each subject.
Career prospects for Software Engineering students are excellent and students on graduation can be expected to follow these typical career routes:
Graduate career roles
Programmer, web developer, junior specialist developer and software developer.
Early to mid-career roles
Computer systems analysts, computer system engineers, software QA, database administrators, research and development, network systems administration and software engineer.
Senior application developer, lead developer, chief technical officer, lead researcher, senior systems architect or analyst.