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.
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.
Students take 1 theme from the following list (in accordance with the timetable).
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.
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.
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.
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.
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.
This theme aims to provide students with an overview of the current state of the art in computing to support mobility for telecommunications (mobile phones), PDAs and laptop/netbook systems. The theme discusses the example wireless systems and the different ways they work, the design of low-power hardware for battery driven applications and the way in which distribution is supported and exploited in mobile applications running on mobile operating systems.
Automated reasoning has a wide range of applications from proving mathematical theorems automatically to verification of hardware and software. For example, major software and hardware industries such as Microsoft and Intel use automated reasoning methods in verification of their products. Logic based reasoning and inference also provide the underpinnings of ontology languages that are being used to facilitate the move the World Wide Web from a web of documents to a web of documents, data and applications. This theme aims to bring together these two topics, marrying a practical approach to the understanding of ontologies and the W3C's ontology language OWL with theoretical foundations of automated reasoning for both propositional and first-order logic. The theme is aimed at students who are interested in automated reasoning, semantic (web) technologies, and knowledge representation, and who would like to gain a good understanding of the concepts, problems, algorithms, and tools involved.
In the universal move to multi-core processors, microprocessor manufacturers have presented the software industry with its most serious challenge ever. Essentially all CPUs are now multi-core, and the number of cores in the CPU is increasing inexorably. The consequences of this multi-core revolution are profound because parallel computing now needs to be handled as the norm, rather than the exception; today's programmers need parallel programming skills that are currently possessed by very few.
This theme introduces students to the complexities of parallel computing by reviewing hardware developments and by providing programming techniques and tools that can alleviate the ensuing problems of correctness, reliability and performance of modern parallel systems.
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