The University of Southampton

COMP6216 Simulation Modelling for Computer Science

Module Overview

Simulation modelling plays an increasingly significant role across modern science and engineering, with the development of computational models becoming established practice in industry, consulting, and policy formulation. Computer scientists are often employed as modellers or software engineers to help in the model development & maintenance cycle. Therefore this is a current and future need for computer science graudates to have a grounding in both the philosophy of modelling in science and various modelling techniques.

This module will familiarize students with general knowledge about the role of modelling in science (with a particular emphasis on computational modelling), will discuss the process of model development and best practice in various stages in the model development cycle. A second (and larger) part of the module will provide a broad survey of the central modelling paradigms. Throughout the module we will demonstrate how computer science techniques are used to develop models in the following domains:

  • information networks
  • design and management of infrastructure
  • epidemics
  • natural resource management
  • computational economics
  • collective robotics
  • online trading systems
  • climate and Earth system processes

Aims & Objectives

Aims

By the end of this module, students will be able to:

    •    Recognise the main elements of scientific methods what is a model, what is a computational model?
    •    Detail the role of a computer science in the development of scientific models
    •    Discriminate between different modelling approaches and evaluate their pros and cons
    •    Design and implement a computational model
    •    Evaluate and present the output of a computational model

Syllabus

  • Modelling platforms and environments (Stella, Netlogo, Repast)
  • Dynamical systems modelling (introduction to numerical integration schemes)
  • Systems dynamics 
  • Agent Based Models
  • General equilibrium modelling
  • Finite elements
  • Networks
  • Monte Carlo methods
  • Scientifc computing using Python

Learning & Teaching

Learning & teaching methods

ActivityDescriptionHours
LectureLecture.24
TutorialWorkshop / tutorial to develop assessment project.12

Assessment

Assessment methods

MethodHoursPercentage contribution
Modelling Project-70%
Individual Project-30%

Referral Method: By set coursework assignment(s)

Share this module FacebookTwitterWeibo

COMP6215 Semantic Web Technologies

Module Overview

The last decade and a half have seen the Web move away from a purely document-centric information system to one in which hypertext techniques are applied to the sort of data found in databases; the term “Semantic Web” is used to refer to this Web of linked data. Semantic Web technologies enable people to create data stores on the Web, build vocabularies, write rules for handling data, and develop systems that can support trusted interactions over the network. This module looks at the development of the Semantic Web, at the technologies underlying it, and at the way in which those technologies are applied.

Aims & Objectives

Aims

Knowledge and Understanding

Having successfully completed this module, you will be able to demonstrate knowledge and understanding of:

  • The technical architecture of the Semantic Web, and its integration with the World Wide Web
  • The underlying knowledge representation formalisms in use on the Semantic Web
  • Common ontology design patterns
  • Common application vocabularies in use on the Semantic Web
  • The Linked Web of Data

Subject Specific Intellectual

Having successfully completed this module, you will be able to:

  • Critically evaluate developments on the Semantic Web
  • Isolate and organise conceptual elements of simple domains of discourse
  • Relate methodologies and techniques to a range of practical applications

Subject Specific Practical

Having successfully completed this module, you will be able to:

  • Use common Semantic Web tools to design, implement, document and verify ontologies

Syllabus

  • Knowledge Representation, Ontologies and Description Logic
  • RDF and RDF Schema
  • OWL
  • Writing OWL ontologies with Protege
  • Semantic Web Methodologies and Design Patterns
  • SPARQL
  • Rules
  • Linked Data and Publishing on the Semantic Web
  • Semantic Web Vocabularies and Applications
  • Semantic Web and Web2.0
  • Trust and Community

Learning & Teaching

Learning & teaching methods

ActivityDescriptionHours
Lecture36
Tutorial12

Assessment

Assessment methods

MethodHoursPercentage contribution
Ontology Design Exercise-25%
Exam2 hours75%

Referral Method: By examination

Share this module FacebookTwitterWeibo

COMP6214 Open Data Innovation

Module Overview

Open data, pitched as the raw material of the new industrial revolution, holds great promise, but how do you exploit this new resource?

This course is specifically designed to give students a greater understanding on how to innovate with open data. This course introduces the tools, techniques and skills required to rapidly innovate using data and how to pitch these ideas to potential investors. The course balences technical and non technical content throughout allowing development in all skill areas required to make a career in rich applications using open data. 

Aims & Objectives

Aims

Identify innovation opportunities for open data.
Be capable of pitching an innovative idea to industry leaders.
Critically evaluate and apply suitable UX and human engagement factors to build a compelling rich application.
Be able to apply appropriate validation, cleaning and transformation to use, reuse and combine a multitude of complex datasets.
Critically evaluate a large range of Infographics and interaction techniques suitable for different tasks.
Main current debates within the discipline and theories informing these debates.

Syllabus

Technical content:

  • Open Data formats (CSV, JSON, XML, RDF)
  • Web technologies (HTML5, Javascript, JQuery)
  • Validating and cleaning data (csvlint, jsonlint, open refine)
  • Visualising data (D3.js)

Non-technical content:

  • Defining open data, benefits and risks
  • Inforgrapics and interaction
  • Innovation and opportunities analysis
  • UX design
  • Human engagement and addiction
  • Pitching to investors

Learning & Teaching

Learning & teaching methods

ActivityDescriptionHours
Lecture24

Assessment

Assessment methods

MethodHoursPercentage contribution
Infographics and Interaction-20%
Innovation Pitch-30%
Application-30%
Report-20%

Referral Method: By set coursework assignment(s)

Share this module FacebookTwitterWeibo

COMP6212 Computational Finance

Module Overview

Despite the current financial climate, the subject of Computational Finance is both intellectually challenging and attractive to students from an employment point of view. It is thought the MSc in Artificial Intelligence could be made more attractive to overseas students by the introduction of this topic in the curriculum. Also, many graduates from our undergraduate programmes join the financial sector, and are likely to find knowledge of the subject giving them a competitive advantage when attempting to do so. Elsewhere in the University there are modules and programmes in Mathematical Finance, and this module will be designed to be distinct from them in emphasizing the computational aspect, in a hands-on teaching environment.

To do this module, you should be competent in basic calculus, including ordinary differential equations, and programming in some high level language (e.g. Java)

Aims & Objectives

Aims

Knowledge and Understanding

Having successfully completed this module, you will be able to demonstrate knowledge and understanding of:

  • The concepts underlying computational finance
  • The mathematical tools, and their computational implementations, underlying the subject

Subject Specific Practical

Having successfully completed this module, you will be able to:

  • Implement a simulated fund management system that uses real-life data from the stock exchange

Syllabus

1. Mathematical preliminaries

  • Numerical analysis
  • Optimization
  • Stochastic differential equations
  • Monte-Carlo simulations

2. Software preliminaries

  • MATLAB
  • Finance toolbox in MATLAB
  • Other tools - overview of R and packages

3. Financial instruments and their uses

4. Portfolio optimization

  • Utility theory
  • Quantifying risk

5. Options pricing

  • Black-Scholes model
  • Options pricing by Monte Carlo methods

Learning & Teaching

Learning & teaching methods

ActivityDescriptionHours
Lecturemain delivery of taught material24
Tutorial12

Assessment

Assessment methods

MethodHoursPercentage contribution
four computer labs-100%

Referral Method: By set coursework assignment(s)

Share this module FacebookTwitterWeibo

COMP6211 Biometrics

Module Overview

Biometrics is about how we can recognise people automatically, by personal characteristic. We all have fingerprints and faces - and they are unique. We have to sense the information, process it and then deliver an assessment of the identity associated with that data. That's what this course is about: it's about electronics, computer science, maths, and pattern recognition. It assumes you have numerate skills, and can program a computer in some way. The course does rely much on computer vision, as most biometrics technologies are based on computer vision. Some grounding in this will be part of the course. You might choose to take this course if you are interested in cutting edge technology, much of which is still in a research stage, which whilst benefitting, even challenges the way society operates. The course will be given by Mark Nixon who has been involved in biometrics from its infancy, and who has pioneered biometrics technologies (gait, ear and soft...... yes "soft"), all at Southampton. The course has evolved from many professional courses, professional tutorials (IEEE/ IAPR etc) and from the many keynote/ plenary lectures that I (Mark) have given over the years. The course will be challenging, but also should be a very interesting and enjoyable introduction to an area of topical interest worldwide.

Aims & Objectives

Aims

Knowledge and Understanding

Having successfully completed this module, you will be able to demonstrate knowledge and understanding of:

  • The principles of identity analysis and its history
  • The range of biometric technologies and their advantages and disadvantages
  • How biometrics systems operate from sensor to decision
  • The current performance limitations of biometrics systems
  • The newest approaches to biometrics and how they fit in its technological landscape

Syllabus

  • Introduction to biometrics.
  • Applications of biometrics.
  • Overview of computer vision methods.
  • Computer vision and image processing.
  • Automated analysis of computer images.
  • Face and fingerprint biometrics.
  • Holistic and model-based approaches.
  • Identification through the ages: history of biometrics and (forensic) identification.
  • Gait biometrics, recognition bywalking and running.
  • Iris recognition, iris image acquisition and processing.
  • Performance limits and performance evaluation.
  • Moving object recognition and description.
  • Applications of computer vision-based recognition.
  • From images to measurements.
  • Demonstration. How do biometrics systems really work? Can we recognize people?
  • New modalities and current research. Performance limits, and how will they be resolved.

Learning & Teaching

Learning & teaching methods

ActivityDescriptionHours
Lecture36
Tutorial12

Assessment

Assessment methods

MethodHoursPercentage contribution
Biometric data analysis-10%
Biometrc system analysis-20%
Exam3 hours70%

Referral Method: By examination

Share this module FacebookTwitterWeibo

COMP6210 Automated Software Verification

Module Overview

This module aims to introduce the area of software verification. A range of approaches will be covered.  The use of specification languages, including logics, and the use of tools to support verification will be explored. The module will provide practical experience in using modern verification tools as well as covering some of the theory underpinning the correctness of these tools. The module is optional but MSc Software Engineers must choose this module and/or Automated Code Generation.  The pre-requisite knowledge is basic familiarity with discrete mathematics and first-order logics.  

Aims & Objectives

Aims

On successful completion of this module you will be able to

 Demonstrate understanding of the role of specification in formal verification

 Demonstrate understanding of the theory underpinning explicit state, bounded and symbolic model checking

 Specify correctness conditions for software verification 

 Use at least two software verification tools proficiently

Syllabus

Different approaches to software verification 

Specification methods and logics 

Software model checking

Explict state model checking

Symbolic model checking

Bounded model checking

Software verification tools (including tools such as SPIN, JPF, CMBC, ESBMC, JML, SPEC#, DAFNY)

Learning & Teaching

Learning & teaching methods

ActivityDescriptionHours
LectureLectures to cover the course material36
TutorialExercise classes to consolidate learning of the course material.12

Assessment

Assessment methods

MethodHoursPercentage contribution
Exercise in explicit state model checking-10%
Model checking exercise using CBMC-5%
Group exercise in using an OO software verification tool-15%
Exam2 hours70%

Referral Method: By examination

Share this module FacebookTwitterWeibo

COMP6209 Automated Code Generation

Module Overview

This module aims to cover the topic of production of code via automated means. This topic incorporates the different approaches to metaprogramming that are available in mainstream languages and also touches on issues such as automated generation of testing code and software product lines.  The course is practical in nature and reasonable programming skills in Java and possibly also C++ are required. The module is optional but at least one of this module and Automated Software Verification must be taken by MSc Software Engineering students. 

Aims & Objectives

Aims

On successful completion of this module you will be able to

 Demonstrate understanding of high-level concepts in code generation 

 Use a range of generative programming techniques in your software development

 Demonstrate understanding of basic aspect-oriented programming concepts

 Apply aspect-oriented programming techniques to your code base

 Demonstrate understanding of Software Engineering practices for Software Product Lines

 Use code generation techniques to facilitate automated testing 

Syllabus

Automated code generation concepts

Software product Lines

Programs as data structures

Template based metaprogramming

Quote based metaprogramming 

Rewrite based code generation 

Aspect oriented programming

Automated generation of testing code

Learning & Teaching

Learning & teaching methods

ActivityDescriptionHours
LectureLectures to cover the course material36
TutorialWeekly exercise class to consolidate the learning of the course material12

Assessment

Assessment methods

MethodHoursPercentage contribution
Programming exercise: Template Metaprogramming -20%
Programming exercise: Rewrite Based Metaprogramming or Aspect-Oriented Programming-20%
Exam1.5 hours60%

Referral Method: By examination

Share this module FacebookTwitterWeibo

COMP6208 Advanced Machine Learning

Module Overview

  • To introduce key concepts in pattern recognition and machine learning; including specific algorithms for classification, regression, clustering and probabilistic modeling.
  • To give a broad view of the general issues arising in the application of algorithms to analysing data, common terms used, and common errors made if applied incorrectly.
  • To demonstrate a toolbox of techniques that can be immediately applied to real world problems, or used as a basis for future research into the topic.

Aims & Objectives

Aims

Knowledge and Understanding

Having successfully completed this module, you will be able to demonstrate knowledge and understanding of:

  • Key concepts, tools and approaches for pattern recognition on complex data sets
  • Kernel methods for handling high dimensional and non-linear patterns
  • State-of-the-art algorithms such as Support Vector Machines and Bayesian networks
  • Theoretical concepts and the motivations behind different learning frameworks

Subject Specific Intellectual

Having successfully completed this module, you will be able to:

  • Conceptually understand the role of pattern analysis and probabilistic modeling, together with the mathematical techniques this requires

Subject Specific Practical

Having successfully completed this module, you will be able to:

  • Be able to solve real-world machine learning tasks: from data to inference.

Syllabus

  • Key concepts
    • Supervised/Unsupervised Learning
    • Loss functions and generalization
    • Probability Theory
    • Parametric vs Non-parametric methods
    • Elements of Computational Learning Theory
  • Kernel Methods for non-linear data
    • Support Vector Machines
    • Kernel Ridge Regression
    • Structure Kernels
    • Kernel PCA
    • Latent Semantic Analysis
  • Bayesian methods for using prior knowledge and data
    • Bayesian inference
    • Bayesian Belief Networks and Graphical models
    • Probabilistic Latent Semantic Analysis
    • The Expectation-Maximisation (EM) algorithm
    • Gaussian Processes
  • Ensemble Learning
    • Bagging
    • Boosting
    • Random Forest
  • Dimensionality Reduction
    • CCA, LDA, ICA, NMF
    • Canonical Variates
    • Feature Selection vs Feature Extraction
    • Filter Methods
    • Sub-space approaches
    • embedded methods
  • Low-Rank approaches
    • Recommender Systems
  • Application areas
    • Security
    • Business
    • Scientific

Learning & Teaching

Learning & teaching methods

ActivityDescriptionHours
Lecture24
TutorialOptional tutorials for students who find the mathematical parts difficult and seek extra support.4
Computer LabPart of the teaching will be done in a timetabled hands-on computer lab environment.18

Assessment

Assessment methods

MethodHoursPercentage contribution
Research Report-33.333333%
-%
Exam0 hours66.666666%

Referral Method: By examination

Share this module FacebookTwitterWeibo

COMP6207 Advanced Intelligent Agents

Module Overview

Aims

  • To introduce the students to the key issues of interaction of multiple self-interested parties (a.k.a. agents) and give a broad survey of topics at the interface of theoretical computer science and game theory dealing with such interactions.
  • To provide the theoretical background and practical tools to solve problems arising in settings with self-interested participants, to predict possible behaviour and outcomes, and finally, to design multi-agent systems that would incentivise desirable behaviour.
  • To introduce the students to the specifics of computational game-theoretic techniques in different application areas, ranging from multi-agent systems, electronic marketplaces and networked computer systems to computational biology and social networks.
  • To extend and advance the knowledge obtained in other AI modules (in particular, COMP6XXX Intelligent Agents). 

Aims & Objectives

Aims

Knowledge and Understanding

Having successfully completed the module, you will be able to demonstrate knowledge and understanding of:

  • the main game-theoretic concepts such as Nash equilibrium, dominant strategies, mixed strategies, and Bayesian games
  • simple machine learning approaches for finding Nash equilibria
  • the principles of mechanism design and its use to shape incentives and designing markets
  • the main mechanisms including the second-price and Vickrey-Clarke-Groves auctions
  • potential games and their application to congestion and routing problems
  • the main voting protocols
  • the issues of manipulation in voting
  • cooperative games and coalition formation
  • the computational complexity of finding game theoretic solutions
  • sponsored search auctions and their properties

Intellectual Skills

Having successfully completed the module, you will be able to:

  • as an element of an interactive system with multiple self-interested participants: to reason about the opponents' behaviour and make strategic decisions
  • as a system administrator: to analyse participant behaviours and predict likely outcomes
  • as a system designer: to create incentives for participants that result in systems with desirable properties, and encourage cooperation

Practical Skills

Having successfully completed the module, you will be able to:

  • find dominant strategy and min-max solutions, and compute pure strategy and mixed Nash equilibria in certain game classes
  • apply learning techniques for finding stable outcomes
  • derive parameters for producing optimal/efficient mechanisms in specific application domains
  • apply cooperative solution concepts, such as the Core and the Shapley value, to analyse and design effective cooperative systems

Syllabus

Basic game-theoretic concepts: non-cooperative games

  • strategic interactions as (normal form) games
  • solution concepts: dominance and iterated dominance; minimax strategies; Nash equilibrium; computing and evaluating the quality of solutions
  • games with pure strategy equilibria; potential functions and equilibrium dynamics
  • other game forms and solutions concepts: extensive-form games; subgame perfect equilibrium; correlated equilibrium; strong equilibrium, Bayes-Nash equilibrium

Basic game-theoretic concepts: cooperative games

  • coalition formation
  • characteristic function and other representations
  • solution concepts (the Core, Nucleolus, Shapley value, Banzaff index) and their computation

(Computational) social choice

  • voting rules; desirable properties of voting rules
  • Arrow's impossibility theorem; Muller-Satterthwaite impossibility theorem
  • Manipulation; Gibbard-Satterthwaite impossibility theorem
  • convergence to stable outcomes in strategic voting

(Algorithmic) mechanism design

  • standard auction formats: English; Dutch; first-price; second-price
  • revenue maximisation and revenue equivalence theorem
  • general mechanisms: formalism; revelation principle; desirable properties
  • Vickrey-Clarke-Groves mechanism
  • advanced mechanisms: combinatorial auctions; simultaneous auctions; sequential auctions; double auctions

Learning in games

  • Fictitious play
  • Regret minimisation

Applications

  • e-Commerce (ad auctions)
  • Network and routing games, (generalised) congestion games
  • Smart grid

Learning & Teaching

Learning & teaching methods

ActivityDescriptionHours
Lecture36
Tutorial12

Assessment

Assessment methods

Teaching and learning activities

Teaching methods include

  • Directed Reading: There is a combination of lecture notes, selected research papers and book chapters for directed reading, which is a necessary preparation for the lectures.
  • Lectures: Three hours per week during the teaching weeks, supported by handouts and class discussion.
  • Tutorials: One hour per week during the teaching weeks, focusing on the application of the practical aspects of computational game-theoretic techniques and problem solving.
  • Assessment: There are 4 home take Assignments.

Learning activities include

  • Work in groups: Reading and discussion groups with a plenary feedback during the tutorials. Participation, while not compulsory, is encouraged.
  • Individual study: Certain amount of (directed) reading is expected during your private study time. It is strongly recommended that you read around the subject areas covered in the lectures. Refer to the list of background texts and ask the lecturers if you require further resources.
  • Exercise:  Applying theoretical knowledge and practical tools obtained in the lectures to solve example problems provided in the recommended literature and home take assignments.

Feedback and student support during module study

  • Assignments will be marked and feedback given during the tutorial sessions.
  • Reading and discussion groups with a plenary feedback during the tutorials.

Relationship between the teaching, learning and assessment methods and the planned learning outcomes

  • The knowledge, understanding and intellectual skills listed will be taught in lectures. In completing the assignments and examination you will demonstrate your mastery of all the skills listed.
  • The purpose of the tutorials is for you to master the skills and provide feedback on your understanding of topics not covered by, or are difficult to fully assess in, an assignment.
MethodHoursPercentage contribution
-25%
Exam0 hours75%

Referral Method: By examination

Share this module FacebookTwitterWeibo

COMP1204 Data Management

Module Overview

This module aims to:

  • Explain the role of database systems in information management.
  • Introduce students to standard UNIX tools and techniques (e.g., vi editor, ed, sed and awk).
  • Develop the student's skills in the effective use of Unix tools for document preparation, software development and system administration.
  • Introduce students to command line working and to help develop their appreciation of its strengths/weaknesses relative to GUIs.

Aims & Objectives

Aims

Knowledge and Understanding

Having successfully completed the module, you will be able to demonstrate knowledge and understanding of:

A1.  The role of database systems in information management.

A2.  The concept of data modelling

A3.  The relational model of data

A4.  The structure and facilities of the Unix system and its application to system tasks

Intellectual Skills

Having successfully completed the module, you will be able to:

B1.  Support the design and develop software making effective use of Unix based tools and facilities

B2.  Apply entity-relationship modeling.

B3.  Normalise data.

Subject Specific Skills 

Having successfully completed the module, you will be able to:

C1.  Make effective use of data manipulation tools.

C2.  Construct new tools using shell scripts, pipes and filters.

C3.  Make effective use of markup languages.

C4.  Use SQL to create, update and query a database.

Syllabus

  • The Unix family of operating systems (Linux, BSD, OS X)
    • The Unix philosophy and environment; files, processes, pipes, filters and basic utilities
    • Data manipulation tools; editors, grep and other utilities.
    • Scripting
    • Shells and shell programming.
    • Program development tools.
  • Structured documents and markup languages
    • LaTeX
    • XML-based languages (HTML, DocBook)
  • Database systems
    • Rationale behind Database Systems
    • Database Modelling using the Entity-Relationship Model
    • Data Models and Data Sublanguages
    • Practical SQL
  • The Relational Model
    • Relations, domains, attributes, keys, dependencies
    • Normalisation

Learning & Teaching

Learning & teaching methods

ActivityDescriptionHours
Lecture36
Tutorial12

Assessment

Assessment methods

Note that a University Approved Calculator may be used during the examination.

MethodHoursPercentage contribution
Database Coursework-15%
UNIX Coursework-10%
Exam2 hours75%

Referral Method: By examination

Share this module FacebookTwitterWeibo

Pages