Overview
- Start dateSeptember
- DurationOne year full-time, two-three years part-time
- DeliveryTaught modules 40%, group project 20%, individual research project 40%
- QualificationMSc
- SWAGºÏ¼¯ typeFull-time / Part-time
- CampusCranfield campus
Who is it for?
If you intend to pursue a career in software development, whether it is in the data centre, on the desktop or in the rapidly expanding mobile application space, you need to have a strong basis in software engineering. This course is unique in that it combines software engineering with high performance computing, giving you the tools and techniques that employers are looking for and an advantage in the job market.
Why this course?
SWAGºÏ¼¯ has many years of specialist knowledge and experience in high performance computing. We are able to offer a unique insight into the development of computer applications across a wide spectrum of modern computing environments, from multi-core CPUs to specialist GPUs to cloud computing, all of which are relevant to the IT industry today.
We introduce students to parallel software development on the desktop, the super-computer and in the cloud. Each platform has its own challenges and this course ensure that students become familiar with the best approach to writing software for each one.
SWAGºÏ¼¯ is very well located for visiting part-time students from all over the world, and offers a range of library and support facilities to support your studies. This enables students to complete their qualification whilst balancing work/life commitments. Part-time students have a flexible commencement date.
This MSc programme benefits from a wide range of cultural backgrounds which significantly enhances the learning experience for both staff and students.
Informed by industry
The course is directed by an Industrial Advisory Panel that meets twice a year. The committee acts in an advisory role, assessing the content of the course and its relevance to present industrial needs. A number of members also attend the annual student thesis presentations which take place at the end of July, a month or so before the end of the course.
The Industry Advisory Panel includes:
- Black & Veatch Ltd,
- Stone Rock Advisors,
- Rolls-Royce,
- Airbus,
- Factset,
- Cambridge Consultants,
- Industrial Vision,
- STFC,
- Excelian,
- SOLV3 Engineering Ltd,
- Red Bull Technology,
- L3 Harris,
- Autonomous Devices,
- Immense,
- The Manufacturing Technology Centre.
Course details
You will complete a number of compulsory modules that are common across options, followed by specialist modules from your selected MSc option. In addition to the taught component, you will complete a group project and an individual research project. The course is delivered via a combination of structured lectures, tutorial sessions and computer-based workshops. The core modules provide the basis of this course and act as a starting point for specialist modules to then be introduced, providing you with both theoretical and hands-on experience of software engineering and software development in high performance and computing environments.
Course delivery
Taught modules 40%, group project 20%, individual research project 40%
Group project
The process of software production is rarely an activity undertaken by an individual developer. In today’s software industry, many different specialists are required to contribute to the creation of software. To ensure a high level of quality in the final product, different roles and responsibilities must be brought together into a single team and therefore clear lines of communication between team members are crucial if the project is to be a success.
An important part of this MSc course is the group project, in which we define a realistic problem and ask each group to propose and implement a solution. It is generally a six-week project taking place between February and March. Members of each group must decide how to organise themselves, assigning roles to each person.
The group project is an opportunity for you to experience first-hand how a software development team is organised and how the different roles contribute to the final product. This is a chance for you to develop an insight into the organisation of development teams in industry, and allows you to understand what is expected from you once you enter employment.
Part-time students are encouraged to participate in a group project as it provides a wealth of learning opportunities. However, an option of an individual dissertation is available if agreed with the Course Director.
Previous group projects have included:
- Scientific workflows,
- Security considerations for distributed computing applications,
- Automated recovery mechanisms for design optimisation.
Individual project
The individual research project allows you to delve deeper into an area of specific interest. All projects are based on real research, whether it is an area of interest for members of the department, or as part of an active research project funded by industry. In some cases our industrial partners sponsor specific research projects related to real-world problems or areas of development that are of direct interest to them. In recent years, students have proposed their own ideas for their research project. You will generally begin to consider the research project after completing three-four modules - it then runs concurrently with the rest of your work.
For part-time students it is common that their research thesis is undertaken in collaboration with their place of work.
Previous individual research projects have included:
- Using Twitter to predict financial market sentiment,
- Visualisation of source code and defects,
- Android-based monitoring of hybrid car engines,
- Development of mutation analysis tool for PHP software,
- Time-dependent augmented reality visualisation on a mobile device,
- Analysis of concurrency in CUDA-based applications,
- Development of domain-specific language for CUDA development,
- Automated data flow checking tool development.
Modules
Keeping our courses up-to-date and current requires constant innovation and change. The modules we offer reflect the needs of business and industry and the research interests of our staff and, as a result, may change or be withdrawn due to research developments, legislation changes or for a variety of other reasons. Changes may also be designed to improve the student learning experience or to respond to feedback from students, external examiners, accreditation bodies and industrial advisory panels.
To give you a taster, we have listed the compulsory and elective (where applicable) modules which are currently affiliated with this course. All modules are indicative only, and may be subject to change for your year of entry.
Course modules
Compulsory modules
All the modules in the following list need to be taken as part of this course.
Computational Methods
Module Leader |
|
---|---|
Aim |
|
Syllabus |
The module explores numerical integration methods; the numerical solution of differential equations using finite difference approximations including formulation, accuracy and stability; matrices and types of linear systems, direct elimination methods, conditioning and stability of solutions, iterative methods for the solution of linear systems. Several of the studied numerical methods are implemented from scratch during the lab sessions, and the theoretical properties are then empirically studied and understood. |
Intended learning outcomes |
On successful completion of this module you should be able to:
|
C++ Programming
Module Leader |
|
---|---|
Aim |
An introduction to the Python language is also provided. |
Syllabus |
Functional programming in C++. |
Intended learning outcomes |
On successful completion of this module you should be able to:
|
Requirements Analysis and System Design
Aim |
This course aims to provide a more in-depth look at the software life-cycle phases, requirements engineering and design of applications. |
---|---|
Syllabus |
• Requirements Analysis (user requirements, systems requirement specification, functional & non-functional requirement, software requirements specification, modelling and prototyping, structured analysis, formal specification) • System modelling: UML diagrams, behavioural models, structural models, introduction to model checking and formal specifications • Design & Implementation: design fundamentals, design architecture, architectural styles, design patterns, data design, objected oriented design, distributed systems design, component based design, data flow oriented design, data oriented design, real time design |
Intended learning outcomes |
On successful completion of this module you should be able to: 1. Distinguish between the different software development lifecycle models and evaluate which would be the most relevant in a particular situation; 2. Demonstrate conceptual knowledge of requirements planning with respect to the software engineering process; 3. Prepare the relevant requirement documents for each stage of the software project, having performed the required analysis; 4. Propose and implement requirements models for a specified problem; 5. Differentiate the range of software development design techniques in common use and construct the most suitable software designs according to specific functional and non-functional requirements. |
Software Testing and Quality Assurance
Aim |
This course aims to address issues concerned with related to the quality of software, validation and verification, and software standards. |
---|---|
Syllabus |
• Test Management. • Software Quality (Introduction to Software Quality, Quality Management (Assurance, Planning and Control), Product quality and process quality, Quality Metrics and Standards, Process Improvement, Reliability). • Evolution & Software Maintenance (version & change control, maintainability & maintenance, re-engineering, refactoring, reverse engineering). • Software Engineering Standards (ISO, IEEE). |
Intended learning outcomes |
On successful completion of this module you should be able to: Design and implement software testing strategies, including documentation of testing requirements and outcomes at each stage of the software design and implementation process; |
High Performance Technical Computing
Aim |
|
---|---|
Syllabus |
• The focus of this module is on parallel algorithms and domain decomposition techniques which are suitable for simulation on High Performance Distributed Computing systems. Emphasis is on algorithms for execution on loosely coupled distributed systems, like grid-systems. |
Intended learning outcomes |
On successful completion of this module you should be able to: Appraise the need to carry out scientific computing on the HPC platforms and demonstrate relevant critical awareness. |
Small-Scale Parallel Programming
Aim |
The advent of multi-core processors in the commodity desktop computer market has shifted the emphasis from traditional single threaded computing models to more advanced methods in order to take advantage of the additional processing power that is now available. This has implications for both the traditional high performance computing sector and the workstation market. This course aims to explore the different parallel processing techniques now available on small scale computer systems, such as multi-core desktop computers and GPU devices. |
---|---|
Syllabus |
|
Intended learning outcomes |
On successful completion of this module a student should be able to: 1. Apply a systematic application of the techniques employed in multi-threaded processing, and identification of the most common difficulties associated with parallel programming, 2. Demonstrate an understanding of race conditions and blocking, and application of synchronisation techniques as a method of tackling these difficulties. 3. Demonstrate an ability to implement solutions using CPU and GPU technologies. 4. Use and critically evaluate automated tools for the design of source code and debugging of multi-threaded programs. |
Visualisation
Aim |
Computer graphics is a key element in the effective presentation and manipulation of data in engineering software. The aim of this module is to provide an in depth practical understanding of the mathematical and software principles behind 2D and 3D visualisation using the widely used OpenGL (desktop) and WebGL (web based) graphic libraries. Representative GUI based 2D and 3D OpenGL/WebGL applications using both Javascript/HTML5 and the Qt development environment are employed. The module will also cover some of the more advanced rendering techniques including lighting, texturing and other image mapping methods used to enhance visual interpretation of data. An introduction to the implementation and use of Virtual Reality in engineering completes the module. Hands-on exercises and an assignment supplement the learning process. |
---|---|
Syllabus |
|
Intended learning outcomes |
On successful completion of this module you should be able to:
|
Applications in Practical High-End Computing
Module Leader |
|
---|---|
Aim |
This module aims to provide you with skills in the areas of: the software quality and project management; technical/engineering applications, and cluster or cloud computing so that you can undertake a group project. |
Syllabus |
• Software Metrics & Quality Assurance (definition, collection, quality metrics, productivity metrics, the review process, software reliability, using software quality metrics). • Algorithmic stability and performance.• Specification and performance of computing environments (clusters/cloud, etc). • Validation and tuning of applications on medium-scale distributed architectures. |
Intended learning outcomes |
On successful completion of this module you should be able to: |
Cloud Computing
Aim |
|
---|---|
Syllabus |
Virtualisation Cloud Anatomy Cloud Security and Economics Applied Clouds (AWS, Google Cloud and MS Azure) Distributed Systems Data Stream Processing Applications of Cloud Computing |
Intended learning outcomes |
On successful completion of this module you should be able to: 1. Demonstrate understanding and knowledge of key virtualisation technologies, cloud anatomies and their applications to Cloud Computing infrastructure; |
Teaching team
SWAGºÏ¼¯ is a leader in applies mathematics and computing applications. You will be taught by Cranfield's leading academic staff. Our teaching team works closely with business and has academic and industrial experience. Knowledge gained working with our clients is continually fed back into the teaching programme, to ensure that you benefit from the very latest knowledge and techniques affecting industry. The course also includes visiting lecturers from industry who will relate the theory to current best practice. In recent years, our students have received lectures from industry speakers including: Richard Stewart, FACTSET, Dan Nelson, OCADO and Adam Vile, Excelian. The Course Director for this programme is Dr Stuart Barnes.
Your career
The Software Engineering for Technical Computing Master's attracts enquiries from companies all over the world who wish to recruit high-quality software development graduates. There is considerable demand for students with expertise in engineering software development and for those who have strong technical programming skills in industry-standard languages and tools.
Graduates of this course are in demand by financial software developers, mobile application developers, commercial engineering software developers, automotive, telecommunications, medical and other industries and research organisations, have been particularly successful in finding long-term employment. We have had positive feedback from companies in industries as diverse as finance to computer games studios. As such, we enjoy excellent employment statistics, with over 95% of graduates employed within six months.
Some students may go on to register for PhD degrees, many on the basis of their MSc research project. Thesis topics are most often supplied by individual companies on in-company problems with a view to employment after graduation - an approach that is being actively encouraged by a growing number of industries.
Below is a list consisting of companies that have previously recruited our graduates:
- FACTSET,
- Ocado,
- SAP,
- HSBC,
- IBM,
- BluAge,
- FDM,
- UBS,
- Mindsnacks,
- Mandara Capital,
- Commerzbank AG,
- Oracle.
Cranfield’s Career Service is dedicated to helping you meet your career aspirations. You will have access to career coaching and advice, CV development, interview practice, access to hundreds of available jobs via our Symplicity platform and opportunities to meet recruiting employers at our careers fairs. Our strong reputation and links with potential employers provide you with outstanding opportunities to secure interesting jobs and develop successful careers. Support continues after graduation and as a Cranfield alumnus, you have free life-long access to a range of career resources to help you continue your education and enhance your career.
The reason why I wanted to come to Cranfield is because it's one of the best ranked schools. I really like coding and using computational tools to solve engineering problems. I think the course is really relevant and useful for today's digital era.
I applied for this course as I wanted to be more refined in the computer software field. Beyond the course, I can apply what I have learned in the modules, so that I can achieve a sense of accomplishment in my study. In addition, there are many choices in the topic of the thesis which combines interest and professionalism.
While studying civil engineering, I believed that digitalisation is the future of the construction industry and decided to pursue a MSc related to computer and machine vision. This Cranfield course offered me a valuable opportunity to learn the latest artificial intelligence techniques. This well-arranged modules, high-quality course content and industry-oriented research projects helped me develop fast. The timescale was intense but extremely exciting and very fulfilling. The fact that Cranfield is highly ranked guarantees the best education and research.
I found out about Cranfield's Software Engineering for Technical Computing course through the ESTIA partnership and thought it would suit me well for my international certification. A highlight from my time at SWAGºÏ¼¯ has to be the quality of the teaching provided by the various lecturers and academics we had. When I finish my MSc I plan on working in the data sector as either a developer to begin my career or a project leader.
How to apply
Click on the ‘Apply now’ button below to start your online application.
See our Application guide for information on our application process and entry requirements.