MA Public Opinion and Political Behaviour
BSc Mathematics with Computing options

Final Year, Component 03

Level 6 Computing option(s) from list
Languages and Compilers

This module provides you with an introduction to formal languages and the structure of compilers and their main components. Gain a comprehensive understanding of syntax and semantics of basic programming languages elements; explore the regular and context-free grammars as well as the lexical and static analysis. By the end of this module you will be able to describe formal languages using BNF notation, explain the link between finite state automata and regular expressions and implement key parts of a compiler for a simple language.

Evolutionary Computation and Genetic Programming

Evolutionary computation is an exciting area of artificial intelligence that focuses on systematic methods (known as evolutionary algorithms) inspired by Darwinian evolution for getting computers to automatically solve problems starting from a high-level statement of what needs to be done. Evolutionary algorithms are today routinely used to solve difficult problems in industry, medicine, biology, finance, and much more. Evolutionary algorithms can even consistently solve difficult problems which require solutions in the form of computer programs. This is a form of automatic programming that is known as genetic programming. In this module you will learn how to use evolutionary algorithms and genetic programming to solve real-world problems from an international authority in these areas.

Natural Language Engineering

As humans we are adept in understanding the meaning of texts and conversations. We can also perform tasks such as summarize a set of documents to focus on key information, answer questions based on a text, and when bilingual, translate a text from one language into fluent text in another language. Natural Language Engineering (NLE) aims to create computer programs that perform language tasks with similar proficiency. This course provides a strong foundation to understand the fundamental problems in NLE and also equips students with the practical skills to build small-scale NLE systems. Students are introduced to three core ideas of NLE: a) gaining an understanding the core elements of language--- the structure and grammar of words, sentences and full documents, and how NLE problems are related to defining and learning such structures, b) identify the computational complexity that naturally exists in language tasks and the unique problems that humans easily solve but are incredibly hard for computers to do, and c) gain expertise in developing intelligent computing techniques which can overcome these challenges.

Large Scale Software Systems and Extreme Programming

The world demands software systems with ever increasing richness of behaviours and degrees of complexity. However, traditional software engineering techniques, which were inherited with relatively minor adaptations from other, older branches of engineering, have been struggling to scale up to the challenges posed by modern software systems. As a result, a large proportion (as much as a quarter!) of software projects based on traditional methods end up being cancelled at some point in their lifecycle, with many more being late, over budget and with less features than initially stipulated. In this module you will learn why traditional software engineering techniques fail, and you will become very familiar (through lectures, labs, videos and a large group project) with a novel set of techniques, known as Extreme Programming and Agile Software Development, which fundamentally solve these problems. In the last decade, these techniques have been so successful that today as many as 80% of all projects adopt agile methods.

Network Security

How do you secure networked computers and systems? What are the methods you can apply to detect, mitigate and stop attacks? Examine common network security vulnerabilities and design computer network architectures that reduce risk. Study suitable security techniques and key management skills required for encrypted communication/authentication.

At Essex we pride ourselves on being a welcoming and inclusive student community. We offer a wide range of support to individuals and groups of student members who may have specific requirements, interests or responsibilities.

Find out more

The University makes every effort to ensure that this information on its programme specification is accurate and up-to-date. Exceptionally it can be necessary to make changes, for example to courses, facilities or fees. Examples of such reasons might include, but are not limited to: strikes, other industrial action, staff illness, severe weather, fire, civil commotion, riot, invasion, terrorist attack or threat of terrorist attack (whether declared or not), natural disaster, restrictions imposed by government or public authorities, epidemic or pandemic disease, failure of public utilities or transport systems or the withdrawal/reduction of funding. Changes to courses may for example consist of variations to the content and method of delivery of programmes, courses and other services, to discontinue programmes, courses and other services and to merge or combine programmes or courses. The University will endeavour to keep such changes to a minimum, and will also keep students informed appropriately by updating our programme specifications.

The full Procedures, Rules and Regulations of the University governing how it operates are set out in the Charter, Statutes and Ordinances and in the University Regulations, Policy and Procedures.