Computing MComp 2017-18This course also available for 2018-19 entry
About the course
Highly skilled computing graduates are in demand from businesses and there are career opportunities available in a range of organisations across the globe. This integrated Master's course is accredited by the British Computer Society (BCS) and builds on our successful Computing BSc(Hons) degree. You'll study an extra year that leads to an MComp qualification, allowing you to gain a deeper knowledge of the subject.
A significant portion of this course consists of options, giving you the freedom to tailor your studies to your interests. You can typically choose modules from a range covering computing science, software development, information technology and multimedia.
You have the chance to spend your third year on placement in industry. This experience gives you the opportunity to apply university based knowledge and skills to the real world of work. You'll gain experience and contacts that may help you when you're applying for your first graduate position.
This course shares a common first year with our Computing BSc(Hons), Computing Science BSc (Hons)/MSci and Software Engineering BSc/MEng courses. This gives you the flexibility to transfer between these courses as you become more familiar with the differences between them. You can make the transfer at any time during the first year if you satisfy the entrance requirements for the course you wish to transfer to. You can also transfer on satisfactory completion of the common first year, subject to the following conditions:
For the MSci Computing Science – a good performance (50% or more) in the first year 'Computing Science & Mathematics' module.
You might like to hear what Joseph has to say about studying Software Engineering BSc(Hons) at the University of Huddersfield.
For the MEng Software Engineering – a good performance (50% or more) in the first year 'Software Design & Development' module.
You can also decide to transfer to either of the BSc courses listed above (transfer to the BSc Computing Science and BSc Software Engineering courses is subject to the same conditions as transfer to the corresponding integrated Master's course).
18 / 09 / 2017
5 years inc. placement
4 years full-time
Entry requirements for this course are normally one of the following:
• AAB at A Level
• DDD from a BTEC Level 3 Extended Diploma.
• 136 UCAS tariff points from a combination of Level 3 qualifications which must includes two passes at A level.
• International Baccalaureate with an overall score of 32 points.
In addition you must hold GCSE English at grade C or above and Mathematics at grade B or above.
Other suitable experience or qualifications will be considered. For further information please see the University's minimum entry requirements at http://www.hud.ac.uk/undergraduate/howtoapply/entryrequirements/Please note: UCAS points are based on the new UCAS tariff, introduced for courses starting in 2017/18.
Admissions and Marketing Office
Tel: +44 (0)1484 473116
(this number may be subject to change)
Huddersfield, HD1 3DH
You'll be supported in developing the knowledge and skills required of a professional software developer. You'll study how to design and build software that is robust, reliable and attractive to use, often co-operating with others as part of a development team. You'll work in practical sessions using inspiring computing facilities, including Windows and Unix/Linux systems, teaching networks, a wireless network and a wide range of software - most of which we can supply under educational licenses. The course emphasis is on developing hands-on, practical skills in software development, as well as an understanding of the human and social contexts of software systems.
Software Design and Development
This module aims to provide you with an introduction to the design, development, and testing of large scale software systems. The material covered includes introductory programming (in a language such as Java), program testing (using JUnit testing techniques), systems modelling (using unified modelling language- UML), graphical user interface (GUI) development, and rapid prototyping techniques.
Computing Science and Mathematics
In this module we introduce you to basic computing science and mathematical concepts related to software development. Topics covered include set theory, graphs and trees, finite state machines, grammars and languages, propositional logic and searching and sorting algorithms. You’ll put the theory into practice using a programming language, such as Java, and software that lets you directly implement finite state machines.
Hardware and Networks
This module explores how computers and networks function by introducing you to their components and structures, from the basic building blocks to fully functioning systems. The module covers how computers execute programs, how data is stored, recognised and manipulated, and which hardware and software components are used to achieve this. You’ll also get the opportunity to study how networks are constructed and what techniques (eg cryptography, routing and error detection and correction) are used to ensure that data is transmitted correctly and securely through them.
This module is studio based and takes a very practical approach to the work covered. You’ll be offered the opportunity to produce a prototype related to your chosen study path. Through this project based approach you’ll be introduced to the concepts and principles of programming/scripting using an object-based language. You'll be required to plan, design, implement, test and deploy solutions in response to a requirement specification. Ultimately you’re expected to produce a useful software product, whether it is a game, entertainment feature or business or media product. Throughout this module you’ll be supported in acquiring sound development and problem solving skills and be expected to assemble a portfolio of work.
Working as part of a team, this module aims to provide you with an understanding of hardware, software and industry best practices used by businesses. In your teams you’ll be supported in planning, designing and developing a prototype product. This experience has been designed to introduce you to the product development cycle, technology limitations and possible future developments.
Algorithms Processes and Data
In this module you’ll be supported in expanding your programming skills to cover a range of standard data structures (eg shared variables, semaphores, monitors and lists, trees and graphs) and algorithms (eg Dekker's algorithm, bounded buffer algorithms and searching, sorting and traversals) for both sequential and concurrent systems. You’ll also study how to analyse systems in order to determine their correctness and safety, and to calculate their efficiency.
Working as a part of a team, you’ll have the opportunity to design and develop a software application, or explore some aspect of information systems. You’ll be encouraged to explore theories and principles of team working and project management through the development of your chosen application. Alongside your team work you will also explore important legal and professional issues for people working in the IT industry.
Relational Databases and Web Integration
This module aims to equip you with the knowledge and skills needed to design, implement and query a relational database. You’ll be supported in gaining an understanding of the functionality necessary to enable web pages to interact with a database. You’ll be given the opportunity to become familiar with web architectures and the design considerations necessary for implementing a database driven web application.
Option modules: Choose one from a list which may include-
Object-Oriented Systems Development
This module allows you to explore the programming language that underpins major operating systems, applications, the Internet and the World Wide Web. Throughout this module you’ll be supported in expanding on the procedural and object based coding skills that you have developed so far. You’ll be supported be given an introduction to 'C' programming leading into C++ programming with a push toward Objective-C. You’ll then be supported in building a client-server system where the client could be a smartphone, tablet or a desktop PC. If you’re keen to challenge yourself you will also have the opportunity to explore mixed language programming. Integrating components written in in C/C++ with Java, Objective-C and C#. Techniques for accessing Object Request Brokers and databases will be covered and the concept of Design Patterns will be introduced.
Operating Systems and Language Translators
In this module you’ll study two related areas. Firstly, the modules covers the architectures of computer operating systems, including how they deal with resource allocation, management and security, in both single processor systems and multiple distributed processor systems (networks). Secondly, the module covers language processing, a key operation in modern computer systems. You’ll explore the structure of computer languages and the tools and techniques to automatically analyse them.
Computational Mathematics 1
This module covers the mathematical foundations required for scientific computing. You’ll be introduced to fundamental concepts in algebra and be supported in developing an understanding of both analytical and numerical methods for solving equations in one variable. You'll also be introduced to error analysis and proof.
Designing information Systems for People
One of the key determinants of a computer system’s success is whether or not humans are able and willing to use it. This module aims to provide you with the skills necessary for designing, prototyping and evaluating usable user interfaces. The module explores the subjects of interaction design, information systems, user experience, social media and how computer-based products fit into organisations, societies and culture. As a part of the work on this module you’re expected to develop user requirements for an interactive device, then write up your user testing results, reflecting on what you have learnt from the module.
Web Design and Programming
The module has been designed to build on your previous studies of web programming to explore server-side web development. You’ll be supported in developing the knowledge and skills necessary to build object-oriented, database driven web applications. You’ll be required to produce a portfolio of small examples that demonstrate your understanding of fundamental web development concepts and develop a complete web application that integrates the skills and knowledge you’ve gained during the course of the module.
Embedded systems are used in everyday products such as mobile phones, cars, cameras, printers and toys. These embedded systems contain a small computer on a single integrated circuit called microcontroller. This module introduces the principle of embedded systems which can sense their surrounding environment by receiving signals from a variety of transducers and control attached actuators such as lights and motors according to a specified strategy. You’ll have the opportunity to design and develop efficient ‘C’ programs in practical sessions and download them onto development boards containing many sensors and actuators. This will allow you to see your programs in action.
Year 3 – optional placement year
Year 3/Year 4 if undertake placement
This module is driven by you. You are asked to select a problem to solve which is relevant to your degree, and of appropriate scope and depth to be tackled within a timeframe of 30 weeks. Carrying out the project enables you to develop and demonstrate your ability to undertake research, manage time, use your initiative, learn independently, discuss and write convincingly on a subject requiring independent learning. A supervisor will support you throughout your project. You’ll use your existing knowledge and be encouraged to acquire additional skills as you carry out your project. The aim of the project is to suggest a solution to an identified problem. Your final report should describe the aims, scope and motivation of the project, the research you have undertaken, and the technical solution provided, including justification for design and development decisions.
Distributed and Client Server Systems
This module provides a detailed analysis of a range of techniques for the development of distributed and client-server systems architectures. It includes socket programming, remote method invocation, CORBA (Common Object Request Broker: Architecture and Specifications), web services, and Tuple-Space based architectures. The module also examines some typical distributed systems, including distributed file systems, distributed databases, and other common architectures.
Large Systems Environments
This module is aimed at providing you with an in-depth understanding of the role of a software engineer. You will explore how to deliver large-scale software development projects to time, budget and specification. This module has been designed to give you the opportunity to develop your abilities and acquire new techniques in problem solving and project management. You’ll have the opportunity to complete team-based tutorial exercises, where you will be presented with a scenario that could potentially take your project off track. This process aims to give you the skills in prioritising and reacting quickly to new developments in order to ensure that you can complete projects on time; especially vital when you are working in this fast-paced industry.
Option modules: Choose one from a list which may include-
Computational Mathematics 2
This module aims to provide you with an understanding of computational perspectives of mathematics, with an emphasis on matrix methods and data modelling. You’ll be supported in developing the ability to use both analytical and numerical techniques for solving large systems of linear equations and in analysing the resulting algorithms in terms of robustness, performance, stability and accuracy. You’ll be encouraged to broaden your mathematical understanding by applying your knowledge to real-world problems in developing solutions to a range of computational challenges using industry standard software (such as Matlab).
Modern Database Applications
By 2020 it is estimated that the digital universe will reach 44 zettabytes of data. As a result, the information needs of modern organisations require a more flexible approach to data management than that offered by traditional relational databases. This module introduces you to alternative approaches to data modelling including hierarchical, network, object-oriented, object-relational.
Advanced Web Programming
The module studies some of the more advanced approaches to developing web applications, examining both client and server side technologies. You will explore structured approaches to web development and a modern web framework, together with a range of contemporary development tools. As your understanding of the technologies and approaches develops you will aim to critically evaluate them and assess the benefits and risks of using a given approach or framework for a given task.
Can machines (in particular computers) be intelligent? And what does that mean precisely? These are the main questions that we try to answer in this module. We will explore how machines can achieve intelligent tasks in a variety of settings. In term one we consider settings with full observability and determinism, these are like laboratory conditions or puzzle games. In this setting, we will look at knowledge representation, problem solving, and planning. In term two the settings are relaxed, and we will study how to deal with the uncertainties that arise from this. In particular, we will see how to deal with opponents, with incomplete and/or uncertain information, and how intelligent agents can learn.
This module aims to provide you with the opportunity to work in a small group on a project leading to the production of a piece of working software. Wherever possible these projects will be for 'real' clients, (previously companies where students have spent their placement year have provided some real-world projects).
Staff should provide guidance to each group, helping and advising the group on issues such as project management and software development techniques relevant to the project undertaken.
Advanced Software Development
You’ll be provided with the opportunity to develop advanced skills in software design and development. You’ll have the opportunity to examine the issues that software programmers and developers face every day in their quest to develop successful technology systems and applications.
Effective Research and Professional Practice
This module aims to provide you with skills that are key to helping you become a successful computing researcher or practitioner. You'll get the opportunity to study topics including the nature of research, the scientific method, research methods, literature review and referencing. The module aims to cover the structure of research papers and project reports, reviewing research papers, ethical issues (including plagiarism), defining projects, project management, writing project reports and making presentations.
Change and Project Management
This module aims to cover planning for different types of change – discontinuous, radical, incremental or continuous, focusing on both the human and organisational impacts of these changes.
As a manager it’s important for you to be able to incorporate management theory and concepts within your working practice. This module aims to help you understand how planning and project management provide opportunities for you to manage change more effectively and efficiently. You’ll have the opportunity to study project management methods, tools and techniques as well as developing an understanding of risk.
This module will cover basic ontology languages, semantic modelling, linked data principles, semantic query languages and basic reasoning methods for processing semantic data. Working both individually and in teams, you will be introduced to industry practice.
Option modules: Choose two from a list which may include-
Methods and Modelling
The development of a modern information system should be a disciplined exercise, utilising well-defined principles for good design and construction. This needs to acknowledge both bespoke development and package-integration as complementary parts of a project. This requires an understanding of contemporary architectures, scoping of functionality, methods for elaborating systems analysis into good designs, and control of projects to ensure timely and high-quality deliverables. The module aims to provide you with the knowledge and critical understanding of modern software and information systems (IS) development methods, covering model-centric methods and light (model-averse) methods, and to further develops skills in the principles and practice of good information systems architecture and design, using object-oriented approaches. In addition, you should develop an understanding of the principles and practice of project control, using iterative development approaches.
Web and Network Services
This module considers how the Internet can be used to provide services, such as the web enabled provision of information, cloud computing and VoIP (Voice over Internet Protocol). As well as providing a service the Internet can also be used as a medium for the control of remote agents, such as robotic devices, and within this you’ll consider the technologies that facilitate the provision of remote access control.
This module also provides you with the opportunity to to explore contemporary research areas regarding Internet related subjects.
Parallel Computer Architectures Computer Clusters
Many existing and future computer-based applications impose exceptional demands on performance that traditional computer systems cannot offer. Large-scale computational simulations for scientific and engineering applications now routinely require highly parallel computers. The availability of powerful computers and high-speed networks as low-cost commodity components are changing the way computers are used. This module will focus on large-scale distributed and parallel systems such as: "cluster computing" in local-area-networks, "grid computing" and “cloud computing”. The aim of this module is to provide an in-depth introduction to Cluster technologies and their applications in scientific computing and engineering. The hands-on laboratory exercises will provide the necessary practical experience with Cluster middleware software required to construct Cluster, MPI programming and benchmarking parallel systems and applications.
Autonomous and Autonomic Intelligent Systems
Autonomous systems are intelligent systems that can act independently to accomplish goals based on their knowledge and understanding of their environment and the tasks they have to complete.
This module aims to cover the background and requirements for intelligent systems autonomy in a wide range of applications, taken from a computer science and software-oriented viewpoint. As well as the technical challenges of system autonomy, you’ll get the opportunity to study ethical and legal issues, and human factors implications.
We will always try to deliver your course as described on this web page. However, sometimes we may have to make changes as set out below.
We review all optional modules each year and change them to reflect the expertise of our staff, current trends in research and as a result of student feedback. We will always ensure that you have a range of options to choose from and we will let students know in good time the options available for them to choose for the following year.
We will only change core modules for a course if it is necessary for us to do so, for example to maintain course accreditation. We will let you know about any such changes as soon as possible, usually before you begin the relevant academic year.
Sometimes we have to make changes to other aspects of a course or how it is delivered. We only make these changes if they are for reasons outside of our control, or where they are for our students’ benefit. Again, we will let you know about any such changes as soon as possible, usually before the relevant academic year. Our regulations set out our procedure which we will follow when we need to make any such changes.
When you enrol as a student of the University, your study and time with us will be governed by a framework of regulations, policies and procedures, which form the basis of your agreement with us. These include regulations regarding the assessment of your course, academic integrity, your conduct (including attendance) and disciplinary procedure, fees and finance and compliance with visa requirements (where relevant). It is important that you familiarise yourself with these as you will be asked to agree to abide by them when you join us as a student. You will find a guide to the key terms here, where you will also find links to the full text of each of the regulations, policies and procedures referred to.
The Higher Education Funding Council for England is the principal regulator for the University.
This course offers you the chance to undertake an optional placement in Year 3. This opportunity helps you to build on the knowledge and skills developed on the course. You will be employed by the company for 12 months, but the actual number of weeks worked will be dependent on the annual leave entitlement you are given in line with the placement company's policy.
The placement year is a valuable tool that can enhance your employability and help you to develop as an individual. It is acknowledged that graduates with industry experience are generally much more attractive to employers.
Our Placement Unit will be on hand to support you in finding suitable placement opportunities. They will assist you with preparing your CV and with interview techniques. They'll also be in contact with you during your placement so that you'll be fully supported while you gain the experience that employers value so highly.
The Placement Unit team are regularly in contact with local and national companies. Previous students have spent their placement year at companies including IBM, Microsoft, Hewlett Packard, HBOS and British Airways as well as smaller companies from the local economy and further afield, including placements in e.g. Belgium, Italy and the United States.
82% of our graduates from courses in this subject area go on to work and/or further study within six months of graduating (DLHE survey).
Previous graduates from courses in this subject area have gone on to work in a variety of roles such as analyst programmer, computing support manager, technical account manager, software engineer, channel networking specialist, technologist, IT manager, solution consultant, business development executive and account technical lead in organisations including Microsoft, Hewlett-Packard, IBM, Vodafone, Oracle and HSBC*.
Additionally, you may gain skills that are transferable to other industries and may be able to pursue any career that requires a good honours degree. You could go on to further study and the University has many options available for research which may interest you.
Professional links and accreditations
This course is fully accredited by the British Computer Society (BCS), the Chartered Institute for the IT industry. BCS accreditation is awarded to courses that provide a solid foundation in computing. It provides an indicator of quality to you and potential employers. Accreditation is independent recognition that this course meets the high standards set by the IT industry and meets industry needs.
Courses are accredited for Chartered IT Professional (CITP) status, BCS's own Chartered qualification. This course is accredited to also fully meet the requirements for CEng and/or CSci status. Accreditation also gives you a potential advantage when looking for a job as some employers may ask for graduates with accredited degrees.
Please visit the BCS website for further details about accreditation.
Teaching and assessment
You'll be taught through a combination of lectures, tutorials and practical sessions and 20% of the study time on this course is spent in lectures, seminars, tutorials, practical sessions etc. The emphasis is on the development of sound practical skills, alongside an understanding of theory.
You will be assessed through a variety of methods including coursework, log books, presentations and demonstrations, as well as formal examinations. There are opportunities for group working, in addition to individual assessments.
We have a varied and experienced teaching staff including internationally recognised researchers as well as staff with many years of industrial experience. Your module specification/course handbook will provide full details of the assessment criteria applying to your course.
Feedback (usually written) is normally provided on all coursework submissions within three term time weeks – unless the submission was made towards the end of the session in which case feedback would be available on request after the formal publication of results. Feedback on exam performance/final coursework is available on request after the publication of results.
Huddersfield is the only university where 100% of the teaching staff are Fellows of the Higher Education Academy.*
*permanent staff, after probation: some recently appointed colleagues will only obtain recognition in the months after their arrival in Huddersfield, once they have started teaching.
All of our computing facilities are housed within a wonderfully renovated nineteenth century textile mill. Facilities include:
• lecture rooms and classrooms
• multiplatform networked laboratories with dual boot facilities
• wireless web access
• private and group study areas
• specialist design studios
• student relaxation areas
• Windows and Linux workstations
How much will it cost me?
In 2017/18, the tuition fee for UK and EU students at the University of Huddersfield will be £9,250.
Tuition fees will cover the cost of your study at the University as well as charges for registration, tuition, supervision and examinations. For more information about funding, fees and finance for UK/EU students, including what your tuition fee covers, please see Fees and Finance. Please note that tuition fees for subsequent years of study may rise in line with inflation (RPI-X).
If you are an international student coming to study at the University of Huddersfield, please visit the International Fees and Finance pages for full details of tuition fees and support available.
Please email the Student Finance Office or call 01484 472210 for more information about fees and finance.
Progression to a postgraduate study is dependent on successful completion of your undergraduate studies. There may also be minimum qualification requirements such as a first class or higher second (2.1) degree. Please check the course details to confirm this. If you successfully complete your MComp studies, and obtain the entry requirements, you could consider going onto further study in the form of a PhD.
If you are an international student (including EU) you can check if you meet our entry requirements (both academic and English language) by visiting our country pages.
If you do not meet the entry requirements you can consider completing a degree preparation programme (if you are from a country outside of the EU) at the University's International Study Centre (ISC) or you can call the ISC on +44 (0) 1273 339333 to discuss your options. You can also complete the online application form or to ask a question please fill in the enquiry form and talk to one of our multi-lingual Student Enrolment Advisers.
If your English language is not at the required level (IELTS 6.0 overall), we have a range of Pre-Sessional English programmes that you can enrol on before starting your degree programme. You will not need to take an IELTS test after completing one of our Pre-Sessional English programmes.
How to apply
We hope you are interested in what you have seen and want to apply to join us.
Research plays an important role in informing all our teaching and learning activities. Through research our staff remain up-to-date with the latest developments in their field, which means you develop knowledge and skills that are current and highly relevant to industry. For more information, see the Research section of our website.