For general information:
Virginie HarrisonTel: +44 (0)1904 325404
Postgraduate Admissions Administrator
Fax: +44 (0)1904 325599
For informal discussion:
Dr Radu CalinescuE-mail: firstname.lastname@example.org
Full Time - This course is only available full time.
You will take eight Assessed Modules plus an Individual Project carried out in the department. Six of the modules cover core Software Engineering methods, practices and tools, and are compulsory. For the remaining two modules, you will be able to choose from Natural Language Processing, Topics in Privacy & Security, Evolutionary Computation, Concurrent & Real-Time Programming, and Functional Programming Technology.
Software Engineering has become a crucial discipline in the functioning of the modern world. Information systems, communications, transport, manufacturing and services all require well-engineered and reliable software. The focus of our MSc in Software Engineering is automated and large-scale software engineering, so the course will equip you to deal with the types of systems widely found in industry.
The MSc is a full-time, one-year course for those with some experience or background in Software Engineering. You will learn up-to-date theory and practice in the core areas of Software Engineering, and the main methods and tools used in industry. The course also covers model-driven engineering, service-oriented architectures, software architectures and user-centred design. You will gain a thorough understanding of techniques and practices of software management, including measurement and testing. This in-depth understanding of the role of software in commercial organisations will enable you to develop and maintain large-scale software systems.
You will gain a thorough understanding of techniques and practices of software management, including measurement and testing. These techniques will allow you to understand the role of software in commercial organisations and you will be able to develop and maintain these large scale systems.
You can also choose to apply for one of our internships, which will begin when you have finished your course. Find out more about the scheme.
When you graduate, you will be able to apply advanced Software Engineering techniques to analyse systems and design solutions, particularly in a commercial context. You will have experience of using state-of-the-art Software Engineering tool suites (e.g., Eclipse and Epsilon). You will also understand the human factors in Software Engineering, and will be able to design systems taking into account the needs of users.
Your individual project gives you the chance to specialise in a specific area of Software Engineering, as you will undertake independent research and apply your results to develop a real solution – an application, tool or technique.
On graduation, you will be equipped to design and maintain large systems in a wide range of industries, or to pursue an academic research career in Software Engineering.
Both my supervisors were great sources of inspiration and support. I could always reach out to my personal supervisor for help. My project supervisor was one of the best - working with him, I learnt a lot about the subject, and I developed other skills like research and document review.
Full-time taught postgraduate courses run for 12 months from the start of the academic year in October. Students on these courses are expected to be in attendance at York for the full 12 months, except for when the Department is closed. Please contact the Postgraduate Admissions Administrator for more details.
When you are awarded the MSc in Software Engineering, you will automatically meet some of the conditions for professional engineering status in the UK, as follows:
This course is recognised by the BCS, the Chartered Institute for IT, in partial fulfilment of the educational requirement for Chartered Engineer (CEng) registration.
This course is also recognised by Institution of Engineering and Technology (IET) for the purposes of partial fulfilment of the educational requirement for CEng registration.
All modules are compulsory except where stated. Students choose two optional modules.
|Module Title||Term||Short Description|
|Group Project: Software Management
||Autumn & Spring||The group project aims to provide students with project management skills and techniques, which are directly applicable to a software project. Students will work in teams to engage in a practical software project aiming to produce a high quality software artefact.|
|Service-Oriented Architecture||Autumn||The aim of this module is to introduce the concepts and design principles of service-oriented systems, the non technical aspects, impact on culture as well as the various interoperability standards, technology infrastructure and security considerations.|
|Model-Driven Engineering||Autumn||This aims to introduce the theory, principal and practices of model-driven engineering, focusing on technical topics including: modelling, metamodelling, model management, model transformation, model-driven traceability, workflows, model validation and model evolution. Non-technical issues will also be considered.|
|User Centred Design||Autumn||User Centred Design introduces students the field of Human-Computer Interaction (HCI). This field covers all aspects of people's interactions with digital systems.|
|Concurrent and Real-Time Programming (optional)||Spring||This module studies the features of Real-Time Java and applies them to concurrent embedded-systems programming.|
|Natural Language Processing (optional)||Spring||The module will focus on several key areas within NLP such as compositional distributional semantics, topic models, morphology learning and relation extraction.|
|Evolutionary Computation (optional)||Autumn||This module provides a foundation of theoretical and practical knowledge in the subject of evolutionary systems; that is, systems that embody algorithms inspired by natural evolutionary systems (e.g. genetic algorithms, genetic programming, evolutionary strategies, and co-evolutionary frameworks) to evolve solutions to problems.|
|Software Measurement & Testing||Spring||Software Measurement & Testing teaches methods of software verification, including advanced testing and static-analysis techniques.|
|Systems Architectures||Spring||Systems Architectures provides an introduction to systems 'in-the-large', i.e., system components and their interconnections.|
|Topics in Privacy & Security (optional)||Spring||Privacy and Security addresses the variety of modern day security goals, the range of attacks that can be launched, and the security defense mechanism that can be used to counter them.|
|Functional Programming Technology (optional)||Spring||This module explores some of the tools and techniques for programming in a functional language such as Haskell.|
|Final Project - Software Engineering||Summer & Vacation||A substantial, independent research project building on the taught course, culminating in a dissertation.|
You will have a personal tutor and will be part of a tutorial group, usually comprising of five or fewer students. Your personal tutor provides academic and pastoral advice throughout your course. When you undertake your individual project, you will be allocated a supervisor within your area of interest, so your supervisor may then change.
All the modules you take will be assessed, and we deliberately employ a variety of forms of assessment. These include practical exercises, reports and closed examinations. Your project assessment will be made up of a dissertation, a talk about your project, and a concise paper that you will be encouraged to publish.
The assessments take place at various times during the year. Closed examinations take place in:
Practical exercises, reports and other forms of open assessment are typically issued towards the end of the teaching sessions of an optional module. Work for these assessments must be submitted by fixed deadlines well after the conclusion of the taught sessions.
Please note timescales, modules and project descriptions may be subject to change.
You can also choose to apply for one of our internships, which begin after you have completed your individual project. Find out more about the scheme.
You are taught a broad range of project management skills, which you will directly apply to a medium-sized software project that is conducted in small student teams.
The course concludes with your individual project. You may choose a topic among the many offered by the academic staff, or you may propose your own topic. Some recent topics were:
Software Engineering has become a crucial discipline in the functioning of the modern world. Information systems, communications, transport, manufacturing and services all require well-engineered and reliable software. This course focuses especially on software systems with a high requirement for dependability.
The MSc in Software Engineering course is intended for students who possess a strong Computer Science degree.
Typically, you will have achieved at least an upper second class honours degree (or international equivalent) in Computer Science or a related discipline with an appropriate mathematical basis.
We are willing to consider applications from those who do not fit this profile. We will, for example, consider applicants who do not have an appropriate qualification but have appropriate industrial experience.
Your knowledge of computer science will include at least the following:
For more information about completing your application, please take a look at the University’s webpages which tell you how to apply.
In particular, please take note of the supporting documents we need to see in order to be able to make a decision about your application. You are also required to nominate a referee who should be from your current employer or place of study.
You can apply through our online application system (SELECT).
While there is no official closing date for applications, it is important to apply as early as possible.
We have a Taught Masters Scholarship that applicants holding an offer for one of our taught MSc courses can apply for. Find out more about the award.
Did you know that we offer our MSc students a continuation scholarship? Should you decide to stay and study for a PhD after you graduate, you could be eligible to have your fees paid. Check out the details of the award.
This course, like all others in the University, welcomes students of all backgrounds and circumstances.
If English is not your first language, or your first degree was not taught in English, then you will need to have attained a suitable language qualification no more than two years before the start of the course.
The University's Postgraduate Study webpages will tell you more about the English language requirements for graduate students.
The MSc in Software Engineering is an advanced course that assumes entrants have a strong background in object-oriented (OO) programming and design.
You will be a competent programmer, with a good level of experience in Java, or a similar OO language. You need to prepare yourself to write object-oriented software in Java before you arrive. Here is some material that you might find useful. Here are some appropriate texts to bring you up to speed:
For software engineering, you should understand what is meant by a software engineering lifecycle, a method and a technique. You should understand what is meant by requirements capture/analysis, specification/conceptual modelling, design, implementation and maintenance. You should know what is meant by agile development and by software verification and validation. We recommend that you consult a reputable software engineering text book, notably,
Due to the intensive nature of the course, students are required to be in York during the following periods:
However, it should be noted that the MSc is full time and it is assumed that students are working whether or not they are in full attendance.
We asked a recent graduate, James Mistry, about his experience at York, and how his time here prepared him for the workplace. He currently works for BT, and was happy for us to film him so that you can find out why he chose to study here.
Here at York, we're really proud of the fact that more than 97% of our postgraduate students go on to employment or further study within six months of graduating from York. We think the reason for this is that our courses prepare our students for life in the workplace through our collaboration with industry to ensure that what we are teaching is useful for employers.
Our postgraduate taught courses are specifically designed to meet the needs of industry, and the thorough grounding we provide, alongside the skills you learn from undertaking a Masters degree, will stand you in good stead in the workplace.
Here's some idea of the industry sectors our postgraduate students work in:
Improve your employment prospects by applying for one of our internships, which begin after you have completed your individual project. Find out more about the scheme.