Software Engineering MSc
About the course
One of a range of degrees from the taught Masters Programme at the School of Computer Science
This course examines current research and practice in software engineering. You will develop knowledge and skills in the models, methodologies, measures and tools that can be employed in software development considered as an engineering discipline.
This MSc can lead to a career such as a project manager, software engineer or developer of large-scale systems. The core modules are: measures and models for software engineering, programming for software engineers, software engineering practice and experience.
This course is part of our Masters Programme in Computer Science. For more information about the different course titles, visit our Programme Summary page. Here you can also download the Programme Prospectus as a pdf file.
Course Structure:
The course lasts for 12 months over three semesters for the September start or 16 months for the January start, with a break during the summer period: May to September. This break can be used for further study, work experience or a holiday. in the first two semesters there are four or more taught modules, to make a total of 120 credits, and there is a 60 credit project in the third.
There are two core modules fixed for this course. You will also take two or more optional modules, making up 60 credits, which you can choose from the full list of advanced, specialist modules in Computer Science. Alternatively you can elect to replace up to 30 credits worth with masters modules taught by the University's Business School. Click on the module tab for further details.
Core Modules:
- Measures and Models for Software Engineering (30 credits)
- Software Engineering Practice and Experience (30 credits)
- Programming for Software Engineers (30 credits)
Project:
In the third semester, you complete a project in your chosen specialism under the guidance of an experienced individual supervisor. Supporting tuition for the project includes the general principles of research methods.
Through the project you will demonstrate your understanding of the principles and concepts you have learned in the taught modules and your ability to apply them to a substantial piece of development or investigative work.
Why choose this course?
- One of a range of advanced courses within our postgraduate masters programme in Computer Science, this particular course provides you with a specialism in software engineering.
- You will develop knowledge and skills in the models, methodologies, measures and tools that can be employed in software development considered as an engineering discipline.
- Taught by a highly-regarded and long-established computer science department with strong links to business.
- Over half the research outputs in Computer Science at UH have been rated at world-leading or internationally excellent in the Research Assessment Exercise (RAE) 2008.
Entry requirements...
A recent, good bachelors degree (e.g. honours degree from the UK) or equivalent in Computer Science or closely-related subject. Plus IELTS 6.0, TOEFL 550 (213 CBT) if your first language is not English.
Applicants who do not wholly meet these requirements, but who are considered to have the professional experience, motivation or potential to succeed at the programme, may also be accepted.
Study routes
- Part Time, 3 Years
- Full Time, 15 Months
Locations
- University of Hertfordshire, Hatfield
Careers
Our masters programme is designed to give Computer Science graduates the specialist, up-to-date skills and knowledge sought after by employers, whether in business, industry, government or research.
This particular course will prepare you for a career such as a software engineer, developer or project manager.
Teaching methods
Classes consist of lectures, small group seminars, and practical work in our well-equipped laboratories. We use modern, industry-standard software wherever possible. There are specialist facilities for networking and multimedia and a project laboratory especially for masters students.
In addition to scheduled classes, you will be expected a significant amount of time in self-study, taking advantage of the extensive and up-to-date facilities. These include the Learning Resource Centres, open 24x7, with 1,500 computer workstations and wifi access, Studynet our versatile online study environment usable on and off campus, and open access to our labs.
Professional Accreditations
British Computer Society (BCS) accreditation applied for
Structure
Year 1
Core Modules
-
Investigative Methods for Computer Science
Students working at, and beyond, Master’s level are expected to understand both generic and domain-specific investigative methods, and to be able to apply them in their work. This module explores a range of such methods and the uses to which they may be put, and helps students to enhance their proficiency in the skills that are expected of those working at postgraduate level. Whilst some material will be presented in lectures, the module will be largely literature- and activity-based. It will place strong emphasis on self-management and will encourage students to reflect upon, and learn from, their own work. As the module progresses students will be expected to select an increasingly large proportion of the reading matter for themselves, so that they can tailor their learning to their individual needs. Particular emphasis will be placed upon the development of skills in the planning and management of individual investigative projects.
-
Measures and Models for Software Engineering
In this module advanced issues of software engineering theory and practice are examined. The range of software engineering products and processes making up a software project are measured and modelled. Typical software engineering products explored in the module may include: user requirements, design documents, code etc. Typical software engineering processes explored in the module may include: testing, debugging etc. The aim of the module is to use the modelling and measuring of such products and processes to allow quantified decision-making during software development. The module offers students the opportunity to explore both the state-of-the-art and the-state-of-the-practice in software engineering. The module will examine the most up to date research findings about software engineering as well as investigate the current practices of many software engineering companies. A more detailed description of the module content is provided in the module delivery information for students.
-
Professional Issues
This module covers the relationship between technological change, society and the law, emphasising the powerful role that computers and computer professionals play in a technological society. It also covers the professional codes and UK laws which are relevant to the disciplines of computer science and information systems, and provides students with an understanding of important ethical concepts and dilemmas of relevance to computer professionals.
-
Programming for Software Engineers
Software engineering places great emphasis upon the use, and re-use, of components that are tightly specified and thoroughly tested. This approach is supported by the provision of software frameworks within which programs can be developed. A software framework typically provides an Application Programming Interface (API) implemented as a set of libraries, and supported by a set of tools that may be used during development. But where do APIs, ABIs and software libraries come from? How do we decide what components are required? How are they designed and implemented? Who builds them? How do they go about it? How are they tested? How can we be sure that they work? What effect does the design and implementation of APIs and software libraries have upon the performance of systems that employ them? This module attempts to address these and other issues associated with the design, construction and use of software frameworks.
-
Software Engineering Masters Project
The project is a showpiece opportunity for students to demonstrate what they know about current research and practices in software engineering and show off their skills in applying software engineering models, methodologies, measures and tools in order to conduct a practical investigation or tackle a particular software engineering problem. The project is a self-directed piece of work, conducted with minimum online supervision that demonstrates the student’s ability to plan and manage a substantial piece of work, and steer their own efforts. Students are expected to be thorough in their work, and, particularly, identify and tackle any difficult or challenging aspects of the problems they are trying to solve. It is not just the quantity, or even the quality of work that is considered when grading the project, but the level of difficulty and the scope of the problem being addressed.
-
Software Engineering Practice and Experience
This module gives students the opportunity to extend their understanding and experience of software engineering practice. It offers students exposure to the development and evolution of software. The module is very practical and is based around a substantial piece of software. The aim of the module is to enable students to develop software engineering knowledge and skills that are transferable to software companies. The module covers each element of the software engineering process. It explores the use of overarching development approaches such as eXtreme Programing and Component Based Software Engineering. Leading edge practices are introduced such as using program slicing to find code faults. Specialised software development approaches are investigated such as those required for application areas such as safety critical systems. Process models popular with industry, such as one of the SEI models, are also used and evaluated during this module. A more detailed description of the module content is provided in the module delivery information for students.
Optional
-
Advanced Databases
This module is designed for students with existing knowledge and experience of database design and implementation, and an understanding of the underlying theory and practice. The aim of the module is to enhance the students' existing understanding and knowledge through focussed study of selected current and emerging issues in the database field. The study will be grounded in sound understanding of relevant theory, practice and principles and promote a practical understanding and critical awareness of the selected issues. A more detailed description of the module content is provided in the module delivery information for students.
-
Artificial Life with Robotics
The overall aim of this module is to provide an in-depth study of a range of advanced ideas, theory, and techniques used in the construction of artificial life systems. The module will be oriented towards (1) the modelling of real-life biological systems and (2) the application of ideas and principles from biology and evolution to computer science in the areas of optimisation, intelligent agents, and engineering, and feedback back to the biological sciences. There is a large practical element to the module with the students gaining experience in developing artificial life models. A more detailed description of the module content is provided in the module delivery information for students.
-
Data Mining
Data Mining deals with the discovery of hidden knowledge, unexpected patterns and new rules from large databases. It is currently regarded as the key element of a much more elaborate process called Knowledge Discovery in Databases (KDD), which is closely linked to another important development - data warehousing. The combination of data warehousing, decision support, and data mining indicates an innovative and totally new approach to information management. Until now, information systems have been built and operated mainly to support the operational processes of an organisation. KDD views the information in an organisation in an entirely new way - as a strategic source of opportunity (Adriaans 1996).
-
Distributed Systems Security
A range of topics will be covered in this module. The detailed content will vary according to current research directions. Case studies will be used throughout. Issues will be considered in relation to each topic as appropriate. These pervasive issues are: models, design, standards, protocols, and performance. A more detailed description of the module content is provided in the module delivery information for students.
-
Human Computer Interaction: Principles and Practice
This module explores the concepts, tools, techniques, standards and guidelines that are needed to design and evaluate interactive systems. Students will undertake design and practical evaluation projects, as well as evaluate systems in a variety of contemporary domains. A more detailed description of the module content is provided in the module delivery information for students.
-
Investigative Methods for Computer Science
Students working at, and beyond, Master’s level are expected to understand both generic and domain-specific investigative methods, and to be able to apply them in their work. This module explores a range of such methods and the uses to which they may be put, and helps students to enhance their proficiency in the skills that are expected of those working at postgraduate level. Whilst some material will be presented in lectures, the module will be largely literature- and activity-based. It will place strong emphasis on self-management and will encourage students to reflect upon, and learn from, their own work. As the module progresses students will be expected to select an increasingly large proportion of the reading matter for themselves, so that they can tailor their learning to their individual needs. Particular emphasis will be placed upon the development of skills in the planning and management of individual investigative projects.
-
Mobile Standards, Interfaces and Applications
Mobile and pervasive computing is a rapidly evolving area and so the main body of knowledge will be taught through the close reading of the most up-to-date research in the area. Themes covered could include pervasive computing, mobile HCI, privacy and security, location and context awareness, technological transparency vs proactivity, mobile development platforms. Ensuring deep and broad background in these ideas constitutes the seminar part of the course. Alongside this runs a practical course in programming for mobile devices based on one of the popular development platforms. Following this, students in groups create a substantial mobile application project involving the research, specification, design, implementation and evaluation of a system using real mobile devices, or conversely an emulation of such a system should the technological hardware not be available for the system envisaged. More detailed description of the module content is provided in the module delivery information for students.
-
Multicast and Multimedia Networking
How do we deal efficiently with applications that have to send the same data to many different destinations? How can a network mix applications with very different quality of service requirements? This module addresses these and other problems that must be solved if we are to integrate the gamut of diverse network applications onto a single network infrastructure. It exposes students to some of the most important developments in computer networking. By the end of the module, you will be familiar with most of the important issues and ideas in applying high-speed network technology to applications with diverse quality of service requirements. A more detailed description of the module content is provided in the module delivery information for students.
-
Network System Administration
This module is designed for those with an existing knowledge and understanding of fundamental computer networking concepts, protocols and architectures and aims to extend that knowledge in practice. Students will be able to gain a deeper understanding and appreciation in computer networks and the Internet by having hands-on experience with real networks and will learn how to configure and maintain network systems. A more detailed description of the module content is provided in the module delivery information for students.
-
Neural Networks and Machine Learning
A study of a selection of research topics centered around neural network theory and design, machine learning including supervised and unsupervised learning and some interesting applications, for example, data mining, biocomputation, evolutionary algorithms, neural networks as models of brain function in health, disease and development, and data visualization. Actual topics taught may vary from year to year.
-
Professional Issues
This module covers the relationship between technological change, society and the law, emphasising the powerful role that computers and computer professionals play in a technological society. It also covers the professional codes and UK laws which are relevant to the disciplines of computer science and information systems, and provides students with an understanding of important ethical concepts and dilemmas of relevance to computer professionals.
-
Programming Paradigms
This module explores the extent to which different programming paradigms can be applied to the implementation of elegant solutions to a given programming problem. To this end, this module will evaluate different programming paradigms, such as imperative, functional, concurrent and object-oriented programming. A more detailed description of the module content is provided in the module delivery information for students.
-
Secure Systems Programming
The variety and proliferation of passive and active malicious attacks made against users of networks and distributed systems has led to a need for pro-active defence mechanisms against such attackers. For an individual, the inconvenience of being attacked can range from being extremely frustrating to downright expensive with slow to no service at all on their computer. For a company it too can be frustrating and costly both financially and to their reputation. This module will be both theoretical and practical, exploring concepts and applications from the fields of computer systems and their security weaknesses. Content will vary according to current research directions. A more detailed description of the module content is provided in the module delivery information for students.
-
Theory and Practice of Artificial Intelligence
The overall aim of this module is to provide an in-depth study of a range of ideas, theories and techniques used in the construction of artificial intelligence systems. The module will be oriented towards the creation of AI systems for tasks in the areas of intelligent modelling, problem-solving, learning, decision-making, reasoning, robot control and others. There is a large practical element to the module with the students gaining experience in developing artificial intelligence models. A more detailed description of the module content is provided in the module delivery information for students.
-
Web Services
The term "web services" is used to define a number of protocols and technologies used to implement a service-oriented architecture. These standards are designed to support the notion of using "standardised" interfaces to allow communication, integration and co-ordination of information between applications distributed over and accessible through a decentralised network environment. This module develops students' understanding of the fundamental architectures of web services and the protocols and standards that underpin them. The module provides only a brief introduction to the basic technologies and associated practical skills before moving on to focus on architectural issues and evaluation of different technologies and their developments. This will be done in the context of specific application and/or enterprises. Examples could include applications within e-commerce, information retrieval and knowledge management. A more detailed description of the module content is provided in the module delivery information for students.
-
Wireless, Mobile and Ad-hoc Networking
How can we cope with users and computers that move from place to place, and yet wish to remain in contact with the net? This module looks at a range of wireless communications technologies, and addresses some of the problems of mobile ad-hoc and wireless networks. It exposes students to some of the most important developments in computer networking. A more detailed description of the module content is provided in the module delivery information for students.
Fees & funding
Fees 2013
UK/EU Students
Full time: £6,700 for the 2013 academic year
International Students
Full time: £11,000 for the 2013 academic year
Discounts are available for International students if payment is made in full at registration
View detailed information about tuition fees
Other financial support
Find out more about other financial support available to UK and EU students
Living costs / accommodation
The University of Hertfordshire offers a great choice of student accommodation, on campus or nearby in the local area, to suit every student budget.
How to apply
2013
| Start Date | End Date | Link |
|---|---|---|
| 23/09/2013 | 23/05/2014 | Apply online (Part Time) |
| 24/09/2013 | 30/09/2014 | Apply online (Full Time) |
| 24/09/2013 | 30/09/2014 | Apply online (Full Time) |
| 20/01/2014 | 16/01/2015 | Apply online (Part Time) |
| 21/01/2014 | 31/07/2015 | Apply online (Full Time) |
2014
| Start Date | End Date | Link |
|---|---|---|
| 23/09/2014 | 23/05/2015 | Apply online (Part Time) |
| 24/09/2014 | 30/09/2015 | Apply online (Full Time) |
| 20/01/2015 | 16/01/2016 | Apply online (Part Time) |
| 21/01/2015 | 31/07/2016 | Apply online (Full Time) |
Key course information
- Course code: EIMAST
- Course length:
- Part Time, 3 Years
- Full Time, 15 Months