Database Systems (Undergraduate)
This module is an introduction to databases and their language systems in theory and practice. The main topics covered by the module are: the principles and components of database management systems; the main modelling techniques used in the construction of database systems; implementation of databases using an object-relational database management system; the main relational database language; Object-Oriented database systems; future trends, in particular information retrieval, data warehouses and data mining.There are two timetabled lectures a week, and one-hour tutorial per week (though not every week). There will be timetabled laboratory sessions (two hours a week) for approximately five weeks.
Interaction Design (Undergraduate)
Traditionally, interactive systems design has focused on enhancing people's efficiency or productivity. For example, to increase the speed with which tasks can be completed or to minimise the number of errors people make. Economic and social changes have led to a situation in which the primary use of many technologies is for fun; ie. in which there is no quantifiable output and no clear goal other than enjoyment. Computer games, mobile music players and online communities are all examples where the quality of the experience is the primary aim of the interaction. This module explores the challenges these new technologies, and the industries they have created, present for the design and evaluation of interactive systems. It moves away from a human computer interaction model, which is too constrained for real world problems and provides you with an opportunity to engage with theories relating to cultural dynamics, social activity, and live performance. It explores the nature of engagement with interactive systems and between people when mediated by interactive systems.
Semi-structured Data and Advanced Data Modelling (Postgraduate/Undergraduate)
In this module, student will learn to process XML (with XSLT and Java), to model data with XML (XML native, RDF), and to query XML data (XQuery). The module teaches many concepts of data modelling and knowledge representation that are beyond the syntactic issues of XML or RDF. The knowledge students acquire in the course is fundamental to the many data design and data analytics tasks occurring in todays IT and business landscapes. The second part of the module is dedicated to advanced DB concepts including active databases, mobile databases, spatial and temporal databases, triggers, performance tuning, distributed databases, indexing and query optimisation. The third part of the module covers the modern, agile world of data processing: NoSQL. It is about the processing of semi-structured data, transforming data streams into formats (triplets, JSON) to be processed by new DB systems (e.g. MongoDB, CouchDB). Overall, students will learn in this module to solve data and information management tasks as they typically occur in today's IT landscape.
Software Engineering (Undergraduate)
Software Engineering is concerned with applying engineering principles to the production of software. This module provides the management principles, theoretical foundations, tools, notation and background necessary to develop and test large-scale software systems. The practical part of the module consists of lab assignments in which students use a range of relevant tools (a Java programming IDE, unit testing tool, configuration management tool, UML design tool, and project planning tool). Aims To ensure students have the necessary understanding of the principles and tools needed to build and test large-scale software systems. In particular, it provides the necessary background for students to undertake a significant group project assignment in subsequent modules or employment.
Software Engineering Project (Undergraduate)
Students in pre-assigned groups of approximately six will be presented with a significant software problem to solve. To meet the problem requirements and build a satisfactory system within the time constraints the students will have to apply the principles learnt in the Software Engineering module and will have to work effectively as a team. Each team must choose a project manager and assign appropriate roles to each member.
- Artificial Intelligence
- Machine Learning
- Affective Computing
- Computational Modelling
- Big Data Analytics
- Affective Interaction Design