Section menu

Computer Science MEng

About the course

Distinguishing Features

The first two years of this degree cover the same content as those of the BSc Honours Computer Science, and you also have the option of a placement year. It covers more breadth and depth than a BSc with an emphasis on software development, emerging technologies and skills in project management and team working.

With the standard programme, you will gain an MEng qualification over four or five years of study, depending on whether or not you do a placement year. With the accelerated programme, you will gain the award in four years including a compulsory placement year by studying online modules during the summer period and the placement year.

Year 1

In the first year, you study the same modules as the BSc (hons) in Computer Science.

Year 2

In the first year, again you study the same modules as the BSc (hons) in Computer Science.

If you are on the accelerated programme, you study an additional 30-credit online module in the third semester, i.e. during the summer period 

Level 6 (year 3 or 4) - standard programme

In the third year or fourth year if following a placement, you take a special MEng team project, one compulsory module plus two optional modules from the BSc programme in Computer Science

Level 7 (final year) - standard programme

In the fourth year or fifth year if following a placement, you study at the masters level: a 60-credit project, two compulsory modules, one in operational research and one in project management, plus a free choice optional module taken from the MSc programme in Computer Science.

Placement Year (year 3) - accelerated programme

On the accelerated programme you study an additional 30-credit online module during the placement year 

Level 6 & 7 (final year) - accelerated programme 

Other Opportunities

In additional to your formal studies, we offer a number of optional activities, currently including certification classes for Cisco (CCNA1-4), research seminars, and participation in national student competitions.

Why choose this course?

  • Our MEng in Computer Science is an enhanced and extended first degree that will challenge those with high entry qualifications.
  • Enhance the standard BSc (hons) Computer Science by studying at a more advanced level, taking modules from our Masters programme over an additional year.
  • Alternatively fast-track your progress with our accelerated programme by studying at a higher rate and completing in four years including the placement.
  • Gain a higher level qualification, studying at one of the UK's leading computer science departments with excellent facilities, strong links to business and research, and a track record of preparing thousands of graduates for successful careers.

Entry requirements...

Minimum 320 UCAS points. Plus GCSE English Language and Mathematics at Grade C or above. Or equivalent.

Study routes

  • ,
  • , 4 Years
  • Sandwich, 5 Years
  • Sandwich Placement / Study Abroad, 5 Years
  • Sandwich Placement, 5 Years
  • Full Time, 4 Years
  • Sandwich,
  • Full Time,

Locations

  • University of Hertfordshire, Hatfield

Careers

Several thousands of UH computer science graduates have moved into a wide range of careers; many are now in senior positions in the UK and throughout the world.

Initial job roles have included programmer, software developer, business analyst, software engineer, webmaster, database administrator, network designer, and technical consultant.

This particular degree title is at a more advanced level and hence is preparation for a wide variety of demanding careers in many areas of computing or software development, in technical work and/or management.

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.

In addition to scheduled classes, about 16 hours per week in Year 1, you will be expected to spend the same 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 accessible on and off campus, and open access to our labs.

On the accelerated programme some of the modules are studied online, without the need to attend the university. See our online programmes for more details.

Work Placement

If you are studying the standard MEng programme you have the opportunity to undertake an optional professional placement for your third year. We encourage you to take advantage since research has shown that on average placement students have a greater chance of finding good employment after graduation and achieve higher grades in their final year.

The placement is an integral part of the accelerated programme. During the placement, you study a module online.

Work placements are spent in a paid job relevant to your degree. You apply in the second year, with support from the University using our extensive contacts with employers.

Recent placement students have worked at large organisations such as GlaxoSmithKline and Sun Microsystems. Others have worked for small companies, perhaps family-run or near home.

Structure

Year 1

Core Modules

  • Programming Principles

    This module is primarily concerned with developing basic skills necessary to produce computer-based solutions to simple problems in a high level language. The emphasis will be on basic programming principles : the structure and syntax of a program in the given programming language, variables and data types, operations and the evaluation of expressions, control structures (sequence, selection, iteration and subroutine call),modularisation(including procedures/functions). Program code will be expected to perform according to specification, be readable, maintainable and well designed. Although the given problems will be relatively simple, there will also be an appreciation of how simple solutions can be used in the solution of more complex problems. A more detailed description of the module content is provided in the module delivery information for students.

  • E-Media Design

    There is a long tradition on computer science programmes of teaching about the relationship between data structures and algorithms. Data these days are commonly images, animations, sounds and video, as well as text and numerical characters, and the ways of putting these data together are more varied than ever before. Yet the choice of data construct still depends on the processes you intend to use on that data and the processes you can apply depend on the choice of data structure. On this module, we will examine what motivates design decisions, the importance of creating systems that are fit for their intended purpose and enable students to make straightforward design decisions of their own. Students are referred to the document entitled 'Information for Students' that is issued each year to students on the module for a more detailed description of the syllabus. A more detailed description of the module content is provided in the module delivery information for students.

  • Programming and Program Design 1

    This module is concerned with developing further the skills necessary to produce a computer-based solution to more complex specified problems in a high level language. Students will gain an appreciation of some of the issues in program design and will be given the opportunity to make informed decisions in their practical work based on some of the principles of good program design. There will also be emphasis on professional issues such as adequate testing, use of de-bugging techniques and documentation. Program code will be expected not only to meet given specification, but also to be readable, maintainable and well designed. A more detailed description of the module content is provided in the module delivery information for students.

  • Systems Requirements

    This module focuses on the rationale, processes and outputs of requirements engineering activities. This requires students to focus on how organisations ensure that systems meet the requirements of all their stakeholders by using appropriate software engineering techniques. This approach will be used to cover the various processes such as eliciting, modelling, and validating requirements. At the elicitation stage this could include individual techniques such as bench marking and interviewing. Other techniques such as the use of prototypes or scenarios will be considered in the context of multiple processes, for example both modelling and validating requirements. A more detailed description of the module content is provided in the module delivery information for students.

  • Principles of Network Systems

    Computer networks underpin almost every form of computing application, so it is important to appreciate the principles of operation these networks. But computer networks are also extremely complex and hard to understand. This module looks at network applications, and the requirements that different kinds of application demand of the underlying network, and how those requirements may be characterised. It then looks at the performance of networks, and why the network so often seems to be a bottleneck in computer applications. This will lead us into an increasingly detailed examination of what happens when network applications are executed, and introduce some of the more important terminology and principles of the subject. A more detailed description of the module content is provided in the module delivery information for students.

  • Professional and Academic Skills for Computer Science and Information Technology

    The module will comprise a set of practical exercises, supported by a set of lectures and meetings with tutors. The practical exercises are intended to provide students with opportunities to tackle challenging tasks in Computer Science or IT. These tasks will require students to practice and develop their technical, organizational and professional skills, and to develop their knowledge and understanding of professional and ethical issues. In the meetings with tutors students will be encouraged to discuss issues arising from the lectures and practical exercises and the way this module relates to the other modules they are studying, to gain feedback on the work they have done, and to help them plan for the future. Lectures will be used to 'set the scene' for the practical exercises, to identify relevant professional and study skills, and to introduce students to the professional and ethical standards to which they are expected to adhere.

  • Foundations of Computation

    This module aims to introduce students to a number of principles that underlie computation and computer-based systems, and how they may be modelled. Both the static and dynamic aspects of systems are considered, with computation being viewed both in functional terms, and as a series of state transitions defined over abstract or virtual machines. The module is intended to provide students with a clear concept of a formal approach to the modelling and specification of computational systems, and to introduce basic formalisms of importance throughout computing. The module will also seek to illustrate some of the ways in which the use of formalisms in modelling and specification can aid those involved in the design, development and operation of computer-based systems.

  • Data Driven Systems

    This module provides an introduction to database systems. It takes a practical approach using example applications or case studies. It then builds on this application experience to cover questions of why and how databases are designed and used. This will include practical experience of using a database management system, in particular of using simple SQL to query a database, and thus facilitating the view of the database as part of a larger system. Later in the module underlying formalisms will be studied but from an application-down standpoint -to inform understanding rather than as a subject for study in its own right. A more detailed description of the module content is provided in the module delivery information for students.

Optional

  • Principles of AI and Artificial Life

    This module provides an introduction to Artificial Intelligence and Artificial Life. A variety of recent AI and A-Life models, such as games playing, mobile robots and problem solving, will be used. A more detailed description of the module content is provided in the module delivery information for students. A more detailed description of the module content is provided in the module delivery information for students.

  • Computer Systems Architecture

    The module seeks to provide students with a basic knowledge and understanding of the underlying hardware and software components of typical computer systems, and how these interface. A more detailed description of the module content is provided in the module delivery information for students.

  • Internet Technologies

    This module introduces the underlying infrastructure of the Internet and World Wide Web (WWW). In addition, students will examine how the client-server model works and how it is applied to Internet applications. To this end, students will implement straightforward static and dynamic web pages. Dynamic web pages may also include data retrieved from a database. This module includes basic concepts of: Internet Protocol (IP), TCP (Transfer Control Protocol), HyperText Transfer Protocol (HTTP), Internet Service Providers (ISPs), the Domain Name System (DNS), client-server model, mark-up languages, client-side programming and server-side programming. At the end of the course, successful students will be able to solve simple problems in the implementation and maintenance of applications for the Internet environment. Further details on how the learning outcomes of the module will be achieved will be described in the module information for students. A more detailed description of the module content is provided in the module delivery information for students.

  • Business Information Systems

    This module will partly lead on from the databases module run in Semester A however its primary focus will be what types of systems are used in business, how they are used and how they might be built. A range of business systems will be explored both in terms of the business need for which they were developed and the sector and legal context. Some tools and techniques that might be used to assist with transferring the business needs to an application specification will be explored and a range of process models will be presented to match the varying requirements. Students will have an opportunity to develop their understanding of the process of building IS business applications skills through the requirements analysis phase for a given case study. A more detailed description of the module content is provided in the module delivery information for students.

  • The Human, the Screen and their Interactions

    This module will provide students with an introduction to, and overview of, the process of the design, development and evaluation of interactive systems with a particular focus on human computer interaction. The intention is to enable students to understand the process, to carry this out in a collaborative team environment creating a small interactive system and to enable students to evaluate the effectiveness of the approach used. Students will use case study examples relating to a real world environment. Topics will include; user modeling, task analysis, methods for designing interfaces, evaluation methodologies, collaborative working and computer supported co-operative working. A more detailed description of the module content is provided in the module delivery information for students.

Year 2

Core Modules

  • Computer Science Development Exercise

    This module provides students with the opportunity to create a system in a professional manner, using and developing an appropriate range of skills and knowledge. The system to be developed will typically be a simulation system and the development approach will be based on the use of exploratory design, technical feasibility and agile methods although reference will be made to structured analysis methods. Personal aspects covered will include communication and group working, while the technical skills will focus on programming and program design, building upon those gained in level 1. Successful completion of this module should equip a student with sufficient skills and knowledge to enable them to successfully apply for and complete an industrial placement. A more detailed description of the module content is provided in the module delivery information for students.

  • Programming and Program Design 2

    This module takes a broad view of the nature of programming, exploring a number of different approaches (e.g: procedural, object-oriented, event-driven, functional and logic-based) and the characteristics which make these approaches suitable for different types of problem. The module addresses the program components found in different types of language, how these are related and how programs are constructed using them. Common data structures and algorithms to manipulate them are studied, as is the use of concurrency in program design and implementation. Procedural, object-oriented and event-driven paradigms are likely to be covered in rather more depth than the others, as these are currently employed in the widest range of different contexts.. Professional approaches to program design, construction, documentation and verification are further encouraged. A more detailed description of the module content is provided in the module delivery information for students.

  • Operating Systems and Computer Networks

    This module introduces some principles of system software- operating systems, networking, and other system software. Students investigate the application of these principles through a system programming task on a workstation. Theoretical issues are covered in the lectures to the extent necessary for the successful completion of the practical part. Some issues, arising either from the lectures or from tutorial question sheets, are discussed in further detail during tutorials. Students' independent study is mostly dedicated to working on hands-on programming exercises on a workstation. A more detailed description of the module content is provided in the module delivery information for students.

  • Preparation for Professional Placement in Computer Science

    The module will explain the benefits of the Supervised Work Placement and encourage students to apply. It will support students in their application by informing them about the types of employer and job role available, helping them select the most appropriate for their strengths and weaknesses, and how employers conduct the recruitment process. The module will assist students to make an application, throughout the entire process, via a series of lectures, seminars, individual guidance and online communication. This includes writing of CVs and letters of application, preparation for psychometric and other forms of assessment, and development of interview technique. For those who are successful in securing a placement there will be further help in preparing for employment.

Optional

  • Information Technology for Business

    This module leads on from the Business Information Systems 1 module. It introduces students to the way in which a range of organisations operate and the necessary support that IS/IT provides to the environment of a 21st century organisation. Through the development of a business plan and the use of case study material, students will understand the interrelationships between different business functions and the support required from appropriate business systems, both new and existing, for a successful organisation to compete in the business environment.

  • Data Management and Applications

    This module provides an in-depth study of the design and implementation of relational databases. The module views database systems from two perspectives, one being the architecture and functionality of the database management system, the other being the representation of the data managed by the database management system. The module provides the principles and techniques needed to develop relational database systems, together with the database theory on which these principles and techniques are founded. There is a large practical element that allows students to gain experience of using a shared multi-user system in the various roles of a database designer, database administrator and end user. The module also raises an awareness of areas where new types of database are emerging. A more detailed description of the module content is provided in the module delivery information for students.

  • Computer Architecture

    High performance processors exploit instruction level parallelism (ILP) by overlapping the execution of sequential instructions (pipelining) and by multiple instruction issue (MII) in each clock cycle. Although these approaches improve processor performance, they do not improve performance of the memory subsystem. We will therefore study the memory hierarchy with a view to solving the so called memory wall problem . The Architecture of this module focuses on ways by which ILP and MII can be exploited, and on ways to improve both data processing and data access time of the memory subsystem. A more detailed description of the module content is provided in the module delivery information for students.

  • Interaction and Games Design

    Students will be introduced to the convergence of disciplines which inform contemporary practice in the design and realisation of a computer game. The course will focus on the design, creation, testing and evaluation of computer games. Particular attention will be paid to the role of the user, and to the 'playability' of a game. Instruction will be given in the use of an authoring tool such as Adobe Macromedia Flash, which is capable of producing games for a variety of media, including hand-held devices, as well as the Internet. A more detailed description of the module content is provided in the module delivery information for students.

  • Artificial Intelligence and Robotics

    This module is intended to build upon the fundamental principles identified in the Level 1 module Principles of AI and ALife. Students will be given opportunities to further develop their knowledge of the principles of artificial intelligence and robotics, and to gain practical experience of the design, programming and behaviour of intelligent systems and simple robots.

Year 3

Core Modules

  • Professional Work Placement in Computer Science

    Supervised work experience provides students with the opportunity to set their academic studies in a broader context, to gain practical experience in specific technical areas and to strengthen their communication and time-management skills. It greatly assists them in developing as independent learners, so that they will be able to gain maximum benefit from the learning opportunities afforded by the study programme at level 3. It gives them opportunities, according to the nature of the placement experience, to acquire the basis of technical expertise in specialist areas, which they may be able to enhance through study at level 3, especially in the final project.

Optional

Year 4

Core Modules

  • Professional Work Placement in Computer Science

    Supervised work experience provides students with the opportunity to set their academic studies in a broader context, to gain practical experience in specific technical areas and to strengthen their communication and time-management skills. It greatly assists them in developing as independent learners, so that they will be able to gain maximum benefit from the learning opportunities afforded by the study programme at level 3. It gives them opportunities, according to the nature of the placement experience, to acquire the basis of technical expertise in specialist areas, which they may be able to enhance through study at level 3, especially in the final project.

  • Strategic Information Systems Planning & Management B

    This module enables students to investigate current thinking and issues regarding the effect of development & implementation of management of information, systems and technology, have on framework of organisations. It provides ideas on how to manage the change.

  • Strategic Information Systems Planning & Management A

    This module enables students to investigate current thinking and issues regarding the effective development, implementation and management of information, systems and technology within the strategic framework of organisations.

  • Professional Issues in Computing A

    Typically the module content will include: * Data Protection Act; * Computer Misuse Act; * copyright; * ethical issues in the use of computers and data; * good practice in systems design; * interrelationship between computers, their use in society. The basis of the legal elements of this module will be English Law, but no prior knowledge of this legal system is expected of students.

  • Strategic Information Systems Planning & Management (COM)

    This module enables students to investigate current thinking and issues regarding the effective development, implementation and management of information, systems and technology within the strategic framework of organisations. A more detailed description of the module content is provided in the module delivery information for students.

  • MEng Team Project

    This course involves working as part of a team which undertakes a realistic, cross-disciplinary computing project to produce a viable product. The team project will be preceded by an intensive course, comprising lectures, practical exercises and direct experience of leadership and project management. You will therefore receive training and experience in leadership and project management to realise a commercial artefact. Each project team normally comprises between three and six students and should be multi-disciplinary in nature. Wherever possible, the project is generated and operated in collaboration with either M.Eng students from other disciplines or a suitable industrial company/partner. Each team undertakes formal planning and progress meetings throughout the duration of the project and makes both written and oral presentations of their work. A more detailed description of the module content is provided in the module delivery information for students.

Optional

  • Quantum Computing A

    Quantum information processing continues to be an extremely active research area exploiting fundamental quantum phenomena in new applications from computation, secure data communication and information processing. A major paradigm shift, the area is of significant interest and potential benefit to computer scientists, mathematicians and physicists. This module will be theoretical in nature, exploring concepts and applications from the area of Quantum Information Processing with an emphasis on Quantum Computing. Content will vary according to current research directions.

  • Programming Language Design and Implementation B

    This module will build on the material studied in PLDI-A by introducing students to algorithms relating to the implementation of compilers for languages, such as parsing, type-checking or optimisation. Students will be introduced to the algorithms underlying the interpretation and compilation of computer languages, developing a more detailed appreciation of the relationship between languages and their likely development.

  • Programming Language Design & Implementation A

    One of the most basic and fundamental tasks of a computer scientist is to make a computer understand and carry out the instructions of its user. Computers are programmed by entering instructions in a language, and a professional computer scientist will meet and use a range of languages in their career. The evolution of new languages is continuously driven by advances and changes in technology, such as the internet or mobile computers. What kinds of features change? Are "new" languages necessarily improvements on existing ones? How can the best language be picked for a particular project? This module will give students the basis from which such questions may be answered. Students will study how propular languages have evolved, the key features of language design, and also how language features are implemented.

  • Real Time Systems B (Design and Development)

    This module covers the Computer Science principles involved in the specification, design and implementation of a real time system with dedicated operating system. The module introduces the key concepts relating to real time systems and their characteristics and provides an overview of real time control and its application to large embedded systems. The topics covered will include the extension of specification and design techniques to encompass real time considerations as well as the specific requirements needed in a real-time operating (or run time) system. There is a significant practical element in the module, which will use an embedded system with relevant software tools.

  • Real Time Systems A (Small Embedded Systems)

    This module covers the Computer Science principles involved in the specification, design and implementation of small embedded systems. The module introduces the key concepts relating to small embedded systems and their characteristics. The topics covered will typically include interfacing techniques, analogue and digital input, interrupt handling, multiplexing and polling. There is a significant practical element in the module, which will use a small embedded system with relevant software tools.

  • Quantum Computing B

    The content for this module builds upon that presented in Quantum Computing A tackling for example more advanced topics such as Shor's algorithm and Grover's algorithm. The content is theoretical in nature, exploring concepts and applications from the area of Quantum Information Processing with an emphasis on Quantum Computing. Content will vary according to current research directions.

  • Empirical Evaluation in Software Engineering B (Applications)

    The module will explore how software practitioners can use models of software systems and software processes to describe and improve those systems and processes. A range of models will be considered and will be supported with examples from industry.

  • Empirical Evaluation in Software Engineering A (Principles)

    This module will examine why software practitioners should and shouldn't undertake and appraise empirical evaluations, what methodologies and methods are available to guide those evaluations and appraisals, and how to choose between the different methodologies and methods. A range of industrial examples of tool adoption (e.g. the adoption of requirements management tools) will be used to demonstrate the concepts presented in this module.

  • Computer Network Protocols and Architecture B

    This module gives students further opportunities to develop their understanding of the fundamental principles of computer networks, their internal architectures and the ways in which they can be used.

  • Computer Network Protocols and Architecture A

    This module gives students an opportunity to reappraise the fundamental principles of computer networks, and to explore their internal architectures, and the ways in which they can be used. The module is intended to provide a framework for understanding the details of different systems, so that whether as a purchaser, a developer, or a researcher you will be able to rapidly assimilate the details relevant to a particular situation and apply the knowledge, experience, and understanding gained on this course to whatever environment you may be faced with in the future.

  • Artificial Intelligence 2 A (Artificial Life & Embodied Cognition)

    Artificial Life (AL) is the study of the modeling and synthesis of living and life-like systems, especially with regard to the "computation" they implicitly perform in interaction with their environment. It comprises one of the major directions of Artificial Intelligence (AI) of the last few decades, and its techniques are widely applied in areas as divergent as animation in movies and computer games, economics, machine learning, physics and engineering (robotics, space sciences) and systems biology. The importance of embodiment in the understanding of natural intelligence has led researchers in robotics, AL, and AI to focus on Embodied Cognition, in which the role of the external environment and the way agents are built are at least as important as any algorithm. This course provides a valuable and solid foundation in the increasingly important and applicable paradigms and techniques of Artificial Life and Embodied Cognition, supported by essential lectures and hands-on laboratory work.

  • Artificial Intelligence 2 B (Socially Intelligent Agents & Robots)

    As Artificial Intelligence and robotics becomes more widespread, the requirement for it to be able to interact with, and socially respond to, users and other agents in its environment increases. The process of recognition and interaction involves several stages and complications, from identification of other agents, to recognising their behaviours, to displaying the social cues which are essential to maintain interaction. This module introduces and examines various frameworks and applications of social robotics and Artificial Intelligence, and examines aspects such as behaviour-based control, conventional paradigms in both Artificial Intelligence and social engineering, and why these aspects are necessary. This is reinforced by applications and demonstrations of the principles applied.

  • Artificial Intelligence 1 A (Constructive Artificial Intelligence)

    This module covers essential principles and techniques in Artificial Intelligence (AI) , classical and modern, as well core topics in Computational Intelligence. These have been selected as they are central to the skill-set expected of the modern AI practitioner. On completing this module students will be able to select appropriate AI methods and algorithms for given scenarios and to develop intelligent algorithms for the solution of problems.

  • Artificial Intelligence 1 B (Neural Computation and Intelligent Systems)

    This module examines neural and cognitive modelling from the level of single neurons and neural networks up to more comprehensive models of perception and cognition. The emphasis is on the understanding and application of current computational intelligence models and techniques. Lectures on these topics will be complemented by practicals in which students explore, program, apply and analyse the application of modern Artificial Intelligence approaches. Examples will be drawn from neural modelling, machine learning and cognitive modelling in order to understand the principles underlying intelligence, and how this can be applied to real-world problems such as intelligent search, robot controllers and non-player characters in computer games.

  • Further Object Oriented Development B (Implementation)

    This module furthers the student's understanding of object-oriented technology in the implementation of software systems, particularly concurrent and distributed systems. It explores the characteristics of these systems, standard architectures used in their design and the patterns of communication between their components. Architectures that support the distribution of object-oriented systems across multiple hosts will be investigated, as will component-based development and its role in such systems. Students will gain practical experience of a range of techniques, and have the opportunity to use a variety of industry-standard tools for system implementation and deployment.

  • Further Object-Oriented Development A (Analysis and Design)

    This module develops the student's understanding of object-oriented technology in the analysis and design of software systems. It encourages the student to think about and model real-world problems in an object-oriented way, and to gain experience in translating such models into executable systems. It explores the contribution that concepts such as abstraction, encapsulation and inheritance can make to the improvement of software quality, and how typical uses of these concepts can be captured and reused. The suitability of different models of the development process itself will also be examined. Students will gain practical experience of a range of modelling techniques, and have the opportunity to use a variety of industry-standard tools for system development.

  • Principles and Applications of Web Services (COM)

    The term "web services" is used to define many different architectures, protocols and technologies, all of which embody 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 introduces the student to the fundamental architectures of web services and the protocols and standards that underpin them. The strengths and weaknesses of alternative implementation technologies will be discussed. As part of this, students will use a range of software tools to construct simple web service clients including the appropriate information and message structures. Examples could include: an on-line catalogue that can be accessed by multiple software clients for different purposes; or the implementation of a client that invokes existing services such as Yahoo or Amazon. A more detailed description of the module content is provided in the module delivery information for students.

  • Strategic Information Systems Planning & Management (COM)

    This module enables students to investigate current thinking and issues regarding the effective development, implementation and management of information, systems and technology within the strategic framework of organisations. A more detailed description of the module content is provided in the module delivery information for students.

  • Computer Network Protocols & Architecture (COM)

    This module gives students an opportunity to reappraise the fundamental principles of computer networks, and to explore their internal architectures, and the ways in which they can be used. The module is intended to provide a framework for understanding the details of different systems, so that whether as a purchaser, a developer, or a researcher you will be able to rapidly assimilate the details relevant to a particular situation and apply the knowledge, experience, and understanding gained on this course to whatever environment you may be faced with in the future. A more detailed description of the module content is proided in the module delivery information for students.

  • Further Object Orientated Development (COM)

    This module furthers students' understanding of object-oriented technology in the analysis, design and implementation of software systems. It encourages the student to think about and model real-world problems in an object-oriented way. It explores the contribution that concepts such as abstraction, encapsulation and inheritance can make to the improvement of software quality, and how typical uses of these concepts can be captured and reused. Standard architectures that support the reuse of software components, and the distribution of object-oriented systems across multiple hosts, will be investigated. Students will gain practical experience of a range of techniques, and have the opportunity to use industry-standard tools for system development and implementation. A more detailed description of the module content is provided in the module delivery information for students.

Year 5

Core Modules

  • Creative Problem Solving

  • Marketing Analysis

  • Advanced Project Management

    This module provides the student with an understanding of the principles and practice of project management applied to software development. The module examines organisational aspects of project work in relation to setting objectives, team working, risk evaluation, planning, monitoring and control. The planning measures of time, cost and quality are developed in relation to the requirements of the customer. The module includes the application of computer based project planning techniques and practice. A more detailed description of the module content is provided in the module delivery information for students.

  • Computer Science Masters Project

    The project is a showpiece opportunity for students to apply their knowledge and skills to the design and development of a computerised solution to a particular problem within the domain of computer science or applying computer science techniques to solve problems from outside the domain of computer science, and in doing so demonstrating what they know about current practices in computer science. The project is a self-directed piece of work, conducted with minimum 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.

Optional

  • Quantum Computing A

    Quantum information processing continues to be an extremely active research area exploiting fundamental quantum phenomena in new applications from computation, secure data communication and information processing. A major paradigm shift, the area is of significant interest and potential benefit to computer scientists, mathematicians and physicists. This module will be theoretical in nature, exploring concepts and applications from the area of Quantum Information Processing with an emphasis on Quantum Computing. Content will vary according to current research directions.

  • Programming Language Design and Implementation B

    This module will build on the material studied in PLDI-A by introducing students to algorithms relating to the implementation of compilers for languages, such as parsing, type-checking or optimisation. Students will be introduced to the algorithms underlying the interpretation and compilation of computer languages, developing a more detailed appreciation of the relationship between languages and their likely development.

  • Programming Language Design & Implementation A

    One of the most basic and fundamental tasks of a computer scientist is to make a computer understand and carry out the instructions of its user. Computers are programmed by entering instructions in a language, and a professional computer scientist will meet and use a range of languages in their career. The evolution of new languages is continuously driven by advances and changes in technology, such as the internet or mobile computers. What kinds of features change? Are "new" languages necessarily improvements on existing ones? How can the best language be picked for a particular project? This module will give students the basis from which such questions may be answered. Students will study how propular languages have evolved, the key features of language design, and also how language features are implemented.

  • Real Time Systems B (Design and Development)

    This module covers the Computer Science principles involved in the specification, design and implementation of a real time system with dedicated operating system. The module introduces the key concepts relating to real time systems and their characteristics and provides an overview of real time control and its application to large embedded systems. The topics covered will include the extension of specification and design techniques to encompass real time considerations as well as the specific requirements needed in a real-time operating (or run time) system. There is a significant practical element in the module, which will use an embedded system with relevant software tools.

  • Real Time Systems A (Small Embedded Systems)

    This module covers the Computer Science principles involved in the specification, design and implementation of small embedded systems. The module introduces the key concepts relating to small embedded systems and their characteristics. The topics covered will typically include interfacing techniques, analogue and digital input, interrupt handling, multiplexing and polling. There is a significant practical element in the module, which will use a small embedded system with relevant software tools.

  • Quantum Computing B

    The content for this module builds upon that presented in Quantum Computing A tackling for example more advanced topics such as Shor's algorithm and Grover's algorithm. The content is theoretical in nature, exploring concepts and applications from the area of Quantum Information Processing with an emphasis on Quantum Computing. Content will vary according to current research directions.

  • Empirical Evaluation in Software Engineering B (Applications)

    The module will explore how software practitioners can use models of software systems and software processes to describe and improve those systems and processes. A range of models will be considered and will be supported with examples from industry.

  • Empirical Evaluation in Software Engineering A (Principles)

    This module will examine why software practitioners should and shouldn't undertake and appraise empirical evaluations, what methodologies and methods are available to guide those evaluations and appraisals, and how to choose between the different methodologies and methods. A range of industrial examples of tool adoption (e.g. the adoption of requirements management tools) will be used to demonstrate the concepts presented in this module.

  • Computer Network Protocols and Architecture B

    This module gives students further opportunities to develop their understanding of the fundamental principles of computer networks, their internal architectures and the ways in which they can be used.

  • Computer Network Protocols and Architecture A

    This module gives students an opportunity to reappraise the fundamental principles of computer networks, and to explore their internal architectures, and the ways in which they can be used. The module is intended to provide a framework for understanding the details of different systems, so that whether as a purchaser, a developer, or a researcher you will be able to rapidly assimilate the details relevant to a particular situation and apply the knowledge, experience, and understanding gained on this course to whatever environment you may be faced with in the future.

  • Artificial Intelligence 2 A (Artificial Life & Embodied Cognition)

    Artificial Life (AL) is the study of the modeling and synthesis of living and life-like systems, especially with regard to the "computation" they implicitly perform in interaction with their environment. It comprises one of the major directions of Artificial Intelligence (AI) of the last few decades, and its techniques are widely applied in areas as divergent as animation in movies and computer games, economics, machine learning, physics and engineering (robotics, space sciences) and systems biology. The importance of embodiment in the understanding of natural intelligence has led researchers in robotics, AL, and AI to focus on Embodied Cognition, in which the role of the external environment and the way agents are built are at least as important as any algorithm. This course provides a valuable and solid foundation in the increasingly important and applicable paradigms and techniques of Artificial Life and Embodied Cognition, supported by essential lectures and hands-on laboratory work.

  • Artificial Intelligence 2 B (Socially Intelligent Agents & Robots)

    As Artificial Intelligence and robotics becomes more widespread, the requirement for it to be able to interact with, and socially respond to, users and other agents in its environment increases. The process of recognition and interaction involves several stages and complications, from identification of other agents, to recognising their behaviours, to displaying the social cues which are essential to maintain interaction. This module introduces and examines various frameworks and applications of social robotics and Artificial Intelligence, and examines aspects such as behaviour-based control, conventional paradigms in both Artificial Intelligence and social engineering, and why these aspects are necessary. This is reinforced by applications and demonstrations of the principles applied.

  • Artificial Intelligence 1 A (Constructive Artificial Intelligence)

    This module covers essential principles and techniques in Artificial Intelligence (AI) , classical and modern, as well core topics in Computational Intelligence. These have been selected as they are central to the skill-set expected of the modern AI practitioner. On completing this module students will be able to select appropriate AI methods and algorithms for given scenarios and to develop intelligent algorithms for the solution of problems.

  • Artificial Intelligence 1 B (Neural Computation and Intelligent Systems)

    This module examines neural and cognitive modelling from the level of single neurons and neural networks up to more comprehensive models of perception and cognition. The emphasis is on the understanding and application of current computational intelligence models and techniques. Lectures on these topics will be complemented by practicals in which students explore, program, apply and analyse the application of modern Artificial Intelligence approaches. Examples will be drawn from neural modelling, machine learning and cognitive modelling in order to understand the principles underlying intelligence, and how this can be applied to real-world problems such as intelligent search, robot controllers and non-player characters in computer games.

  • Further Object Oriented Development B (Implementation)

    This module furthers the student's understanding of object-oriented technology in the implementation of software systems, particularly concurrent and distributed systems. It explores the characteristics of these systems, standard architectures used in their design and the patterns of communication between their components. Architectures that support the distribution of object-oriented systems across multiple hosts will be investigated, as will component-based development and its role in such systems. Students will gain practical experience of a range of techniques, and have the opportunity to use a variety of industry-standard tools for system implementation and deployment.

  • Further Object-Oriented Development A (Analysis and Design)

    This module develops the student's understanding of object-oriented technology in the analysis and design of software systems. It encourages the student to think about and model real-world problems in an object-oriented way, and to gain experience in translating such models into executable systems. It explores the contribution that concepts such as abstraction, encapsulation and inheritance can make to the improvement of software quality, and how typical uses of these concepts can be captured and reused. The suitability of different models of the development process itself will also be examined. Students will gain practical experience of a range of modelling techniques, and have the opportunity to use a variety of industry-standard tools for system development.

  • E-Business Processes and Strategies

  • 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).

  • 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.

  • 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.

  • 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.

  • 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.

Fees & funding

Fees 2013

UK/EU Students

Full time: £8,500 for the 2013 academic year

International Students

Full time: £10,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

Scholarships

Find out more about scholarships for UK/EU and international students

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.

View detailed information about our accommodation

How to apply

2013

Start DateEnd DateLink
27/09/201325/05/2014Apply online (Full Time/Sandwich)
27/09/201325/05/2014Apply online (Full Time/Sandwich)
27/09/201325/05/2014Apply online (Full Time)
27/09/201325/05/2014Apply online (Accelerated Route (Full Time))
27/09/201325/05/2014Apply online (Sandwich Placement/ Study Abroad)
27/09/201325/05/2014Apply online (Sandwich)
27/09/201330/09/2014Apply online (Accelerated Route (Full Time))
27/09/201325/05/2014Apply online (Full Time)
27/09/201325/05/2014Apply online (Sandwich)

2014

Start DateEnd DateLink
27/09/201425/05/2015Apply online (Full Time/Sandwich)
27/09/201425/05/2015Apply online (Full Time/Sandwich)
27/09/201425/05/2015Apply online (Accelerated Route (Full Time))
27/09/201425/05/2015Apply online (Full Time)
27/09/201425/05/2015Apply online (Sandwich Placement/ Study Abroad)
27/09/201430/09/2015Apply online (Accelerated Route (Full Time))
27/09/201425/05/2015Apply online (Sandwich)
27/09/201425/05/2015Apply online (Full Time)
27/09/201425/05/2015Apply online (Sandwich)
i

Key course information

  • Institution code: H36
  • UCAS code: G402MEng (Hons) Computer Science,
  • Course code: EICSITMENG
  • Course length:
    • ,
    • , 4 Years
    • Sandwich, 5 Years
    • Sandwich Placement / Study Abroad, 5 Years
    • Sandwich Placement, 5 Years
    • Full Time, 4 Years
    • Sandwich,
    • Full Time,
School of study: School of Computer Science
Top of page
Top of page