Overview
- Start dateSeptember
- DurationOne year full-time, two-three years part-time
- DeliveryTaught modules 40%, group project 20%, individual research project 40%
- QualificationMSc
- Study typeFull-time / Part-time
- CampusCranfield campus
Who is it for?
If you intend to make 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 gives you the tools and techniques that employers are looking for and an advantage in the job market.
Why this course?
ÂãÁÄÖ±²¥ 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.
You will focus on the enabling technologies aspects of high performance and cloud computing and algorithm development related to machine learning and data analytics.
ÂãÁÄÖ±²¥ 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 from all over the world to complete this 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 a focus on the enabling technologies, namely high performance and cloud computing and algorithm development related to machine learning and data analytics.
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 12 week project taking place between February, March and April. 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.
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.
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.
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:
|
Management for Technology
Aim |
|
---|---|
Syllabus |
|
Intended learning outcomes |
On successful completion of this module you should be able to:
|
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. |
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; |
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. |
Advanced Java and Advanced Python
Aim |
This module aims to provide you with the necessary skills and knowledge to develop software solutions to problems in these fields using these languages. The principle and advanced elements of Java and Python, associated libraries/tools, programming methodologies and good design principles are covered. Hands-on programming exercises culminating in the construction of a fully functional three-tier application form an essential part of the course. |
---|---|
Syllabus |
• Functional and object oriented methodologies. • Built-in and third party libraries for computational and scientific software development. • Software design principles and practices. • Development environments and documentation tools. |
Intended learning outcomes |
On successful completion of this module you should be able to: 1. Create robust Java and Python programs in both standalone mode and in combination for desktop and web/mobile, network centric environments. 2. Apply object oriented and functional programming methodologies when implementing solutions to problems. 3. Solve a range of numerical problems in scientific and computational engineering using Java and Python. 4. Formulate a solution to a given problem based on good software design principles and programming practices. 5. Employ class and functional based libraries and other tools to assist in the development of a solution to a problem. |
Machine Learning and Big Data
Aim |
|
---|---|
Syllabus |
• Introduction to data stream processing o Implementations: Hadoop and Spark (Python interface) • Application case studies |
Intended learning outcomes |
On successful completion of this module you should be able to:
|
Artificial Intelligence
Aim |
To provide an introduction to core Artificial Intelligence concepts, architectures, methods, and tools, and highlight their innovation potential, enabling you to develop a practical knowledge of AI-enabled solutions development processes for product and service innovation. |
---|---|
Syllabus |
|
Intended learning outcomes |
On successful completion of this module you should be able to: Appraise the main concepts and paradigms of Artificial Intelligence and examine AI-enabled innovation opportunities in different sectors |
Applications in Computational Intelligence
Aim |
This module aims to provide you with skills in the areas of: software development and project management; applications of machine learning and computational intelligence so that you can undertake a group project. |
---|---|
Syllabus |
• Project Management (risk analysis, estimation models, project planning and scope definition, communication and team working). • Software Development. • Algorithmic stability and performance. • Specification and performance of computational implementations. • Validation and tuning of applications on medium-scale distributed architectures. |
Intended learning outcomes |
On successful completion of this module you should be able to: 1. Critically evaluate the project management requirements and compose an effective project plan to outline team roles, project timeline, milestones and communication methods, for the implementation of a software project. 2. Design clear project aims and objectives based on the given problem and select machine learning and computational intelligence methodologies appropriate to the task. 3. Formulate appropriate advanced programming paradigms in the development of the relevant machine learning and computational intelligence algorithms and examine the use of automated tools to assist the software development process. 4. Critically appraise individual skills and expertise to contribute to team output and collaborate effectively with others in a consultancy team context. Reflect upon and evaluate personal and group performance in a team-based task. 5. Communicate research findings in a professional manner in written, oral and visual forms. |
Data Visualisation
Aim |
|
---|---|
Syllabus |
• Introduction to visualisation. • Principles and techniques for creating effective visualisations. • Limits of visualisation and uncertainty. • Visualising data sets, e.g. text based and numeric data sets. • Visualising algorithms, processes and systems, e.g. sampling algorithms, sorting algorithms, Machine Learning and Deep Learning algorithms, and cellular automata. • Interactive visualisation. • Python as a tool for visualising information. |
Intended learning outcomes |
On successful completion of this module you should be able to: 1. Critically analyse the core skills required to evaluate algorithms, data sets, complex systems and processes, incorporating both traditional and emerging techniques such as interactive visualisations, real-time data rendering and visualisations. 2. Appraise the use of complex procedures, data patterns, and emergent systems through a systematic approach, employing techniques such as network analysis, temporal data visualisation, geospatial data visualisation, and hierarchical visualisations to uncover hidden insights in the data. 3. Assess visualisation needs and be able to select and apply an appropriate range of visualisation and reporting techniques to data sets relevant to the specific domain. 4. Apply data analytics techniques for visualisation implementation and interpret the visualisation results. 5. Evaluate visualisations in terms of different users and tasks with human factors and critically appraise visualisation approaches. |
Teaching team
ÂãÁÄÖ±²¥ 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
This course 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 chose Cranfield as it is a prestigious university, and I picked this course as I wanted to study data science. A highlight from my time at ÂãÁÄÖ±²¥ was the taught modules as I found these really interesting. My individual thesis project was an internship at Teads and focused on distributed training applied to deep learning. I would really recommend doing a postgraduate course, it helped me find my future career path and get an interesting job.
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.