Skip to navigation | Skip to main content | Skip to footer

Advanced Computer Science Pathway: Software Engineering - themes 2020-2021

Theme pool 1
  • Students take the following 2 themes.

Software Engineering 1

Software Engineering tools and techniques are central to computer science, underpinning systematic development and evolution of software systems. This theme provides experience of modern approaches to software engineering, with a view to enabling students to deploy agile software development practices, and to work effectively with large software systems.

Software Engineering 2

The impact of Software Engineering on everyday life is ever increasing, as software becomes all pervasive. This theme provides an introduction to an approach at the forefront of Software Engineering research: Component-based Software Development, and an approach in state-of-the-art practice: Pattern-based Software Development.
Theme pool 2
  • Students take 1 theme from the following list (in accordance with the timetable).

Biohealth Informatics

The life and health sciences provide important applications for many, if not most, parts of computer science. This theme introduces the challenges to computer science that result from the capture, interpretation and analysis of biological data, and uses this understanding of digital biology as a foundation for the study of health informatics and electronic patient records.

Cyber Security

The large-scale application of the Internet and telecommunication technologies routinely generates enormous amount of information that is transmitted, processed, stored and managed on networked systems on a global scale. Information recorded electronically on a networked system is particularly vulnerable to security threats, such as: theft, manipulation or misuse of valuable or confidential information; deliberate damage to systems and services; and fraud and forgeries in e-business dealings. These threats could endanger national security, national critical infrastructure, business interests and personal privacy. The field of Security, namely the study of countermeasures to address these serious threats, is therefore of paramount importance to our quality of life. This Security theme is aimed at introducing the technologies, standards, policies, procedures and practices that can be used to secure information and distributed systems. It embraces a range of technologies such as cryptography, and computer, network and distributed system security, and also includes risk assessment procedures and the study of how security can best be managed

Data Engineering and Systems Governance

This theme aims to provide students with an overview and understanding of the entire data life cycle, including data creation, modelling, acquisition, representation, use, maintenance, preservation and disposal, as well as the general use of IT to secure data and information. It discusses database design, data warehousing, maintenance and analytics, data standards and data quality, as well as managing the human behaviour affecting the security of data and information systems.

Data on the Web

As the World Wide Web evolves from a web of documents to a web of documents, data and applications, standards, techniques and practices have evolved for modelling, managing and querying web data at scale. This theme explores a range of topics that have emerged from web data standards and practices, including semi-structured data management, linked open data and big data querying.

Learning from Data

The amount and complexity of data being produced and processed by modern technologies is growing rapidly. Computer applications are increasingly required to adapt and learn from these vast data resources. Manchester researchers are mining huge document collections, adaptively optimizing multi-core processors and understanding the complexity of the genome. Although these seem like very different applications, it turns out that they can all be tackled with a core set of common algorithms, drawn from the field of machine learning.

This theme will give you the chance to learn the core set of skills in this field, first studying the basics of machine learning, and quickly accelerating to the more advanced state of the art methods in high dimensional data analysis.

Making Sense of Complex Data

Intelligent life revolves around the processing of symbolic information: we are constantly attempting to recognise, interpret and create symbols. Evolution can be seen as the addition of increasingly sophisticated layers of symbolic information processing, involving such notions as perception, learning and communication, as well as notions of creativity, technology and culture.

Two major types of symbolic information are found in images (including video and medical scanner images, and 3D images), and in language (particularly in its textual form). Images and language are both highly complex and demand much of our visual or linguistic processing apparatus as we attempt to interpret their symbolic meanings: they both demonstrate an infinite variety of forms, are typically laden with ambiguity, and can involve complex interactions of events that have to be recognised. Moreover, images and text represent the great bulk of humanity's stored knowledge and it is challenging in the extreme for anyone to interact with such vast stores.

This theme explores the theory and practice of:

  • Computer Vision techniques, program computers to recognise and extract information from images, often in the face of uncertain and noisy data, when inferencing becomes critical.
  • Text Mining techniques, program computers to extract information from very large amounts of text with a view to automatically discovering previously unknown (by anyone) knowledge and to enabling sophisticated semantic search beyond the capabilities of the conventional search engine.
Both Computer Vision and Text Mining have major implications for industry, business, science and society, with many applications of their technologies, and graduates are highly sought after.

Software Security and Automated Reasoning

The Internet of Things revolution has dramatically increased the ubiquity of software, and thus the pervasiveness of security vulnerabilities in everyday life. In particular, the software is subject to numerous forms of attack such as memory corruption, buffer overflows, and injection; these flaws are often too complex or expressive to be manually detected by the software developer. Consequently, we are seeing an increased reliance on automated reasoning tools able to verify the platform-dependent code, including firmware, bootloaders, and operating systems. Many security vulnerabilities have their roots in the improper usage of memory resources. As an example, in 2019, the Microsoft Security Response Center reported that approximately 70% of their security vulnerabilities each year are due to memory safety issues in their C and C++ code. Our Software Security and Automated Reasoning Theme will introduce basic and advanced approaches to formally build verified trustworthy software systems, where trustworthy comprise five attributes: reliability, availability, safety, resilience, and security. Our theme will embrace various techniques and tools that exist to prevent and detect software flaws, which are typically hard to be manually found, including modelling, code reviews, fuzzing, static and dynamic code analyses, code tainting, and automated reasoning.