The University of Southampton

COMP6229 Machine Learning (MSc)

Module Overview

This module aims to introduce the mathematical foundations for machine learning and a set of representative approaches to address data-driven problem solving in computer science and artificial intelligence.

This module will be taught together with COMP3206: Machine Learning. This module will have higher requirements on the desired learning outcomes which will be assessed by a different set of coursework.

Aims & Objectives

Aims

Knowledge and Understanding

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

  • Underlying mathematical principles from probability, linear algebra and optimisation
  • The relationship between machine learning and neurophysiology

Subject Specific Intellectual

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

  • Characterise data in terms of explanatory models
  • Use data to reinforce one/few among many competing explanatory hypotheses
  • Gain a critical appreciation of the latest research issues

Subject Specific Practical

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

  • Systematically work with data to learn new patterns or concepts
  • Gain facility in working with algorithms to handle data sets in a scientific computing environment

Syllabus

  • Historical Perspective
    • Biological motivations: the McCulloch and Pitts neuron, Hebbian learning.
    • Statistical motivations
  • Theory
    • Generalisation: What is learning?
    • The power of machine learning methods: what is a learning algorithm? what can they do?
  • Probability
    • Probability as representation of uncertainty in models and data
    • Bayes Theorem and its applications
    • Law of large numbers and the Gaussian distribution
    • Markov and graphical models
  • Supervised Learning
    • Classification using Bayesian principles
    • Perceptron Learning
    • Support Vector Machines and Kernel methods
    • Neural networks/multi-layer perceptrons (MLP)
    • Features and discriminant analysis
  • Linear Algebra
    • Using matrices to find solutions of linear equations
    • Properties of matrices and vector spaces
    • Eigenvalues, eigenvectors and singular value decomposition
  • Data handling and unsupervised learning
    • Principal Components Analysis (PCA)
    • Blind source separation using Independent Components Analysis (ICA)
    • K-Means clustering
    • Spectral clustering
    • Manifold learning
  • Regression and Model-fitting Techniques
    • Linear regression
    • Polynomial Fitting
    • Kernel Based Networks
  • Optimisation
    • Convexity
    • 1-D minimisation
    • Gradient methods in higher dimensions
    • Constrained optimisation
    • Dynamic Programming
  • Case Studies
    • Example applications: Speech, Vision, Natural Language, Bioinformatics.

Learning & Teaching

Learning & teaching methods

ActivityDescriptionHours
LectureLectures using whiteboard and slides20
Computer LabTimetables computer labs during weeks 8 and 96

Assessment

Assessment methods

MethodHoursPercentage contribution
Assignment on implementing machine learning algorithms-20%
-%
Exam2 hours80%

Referral Method: By examination

Share this module FacebookTwitterWeibo

COMP6060 MSc Project for DTC Complex Systems Simulation

Module Overview

Aims & Objectives

Aims

Learning & Teaching

Learning & teaching methods

ActivityDescriptionHours
Lecture36
Tutorial12

Assessment

Assessment methods

MethodHoursPercentage contribution

Referral Method: By examination

Share this module FacebookTwitterWeibo

WEBS6203 Interdisciplinary Thinking

Module Overview

[NB This modules is called Interdisciplinary Studies. Please correct.]

This module is offered in the context of a multi-disciplinary programme that requires students to both demonstrate appropriate appreciation of disciplines which are foreign to them (including an understanding of current research and research methods, an awareness of the current limits of knowledge in that discipline) and an appreciation of the possibilities of multi- and inter-disciplinary research opportunities.

No specific pre-requisites.

Aims & Objectives

Aims

  • the concepts in two different disciplines (of your choice) that are applicable to studies of the Web
  • the differences in disciplinary approaches to Web analysis
  • related methodologies and techniques to a range of practical applications
  • The issues surrounding navigating the languages of different disciplines
  • Case studies in the application of interdisciplinary approaches to real-world problems
  • Methods for constructing arguments from multi-disciplinary perspectives
  • Critical analysis in an interdisciplinary setting

Syllabus

This module addresses a large number of problems in web science, chosen by the students as individuals or in groups. Previous issues have included the following:

  • What factors influence credibility on the Web?
  • Does information want to be free
  • What is misinformation and how and why does it spread on the Web?
  • Does the Web have gatekeepers?
  • Identity authenticity or identity anonymity?
  • Should the web’s infrastructure directly protect any of the following: payments, privacy or piracy?
  • The rights of individuals in the media spotlight to privacy in the digital environment appears confused and lacking direction. Is there a balance to be struck here and if so on what principles should it be based?
  • What effect is the Web having on University operation?
  • How can we create/utilise and spread Web memes e.g. viral videos for government to improve public health/public understanding of an issue?
  • Should there be an international law of the web as there is an international law of the sea?
  • Who is shaping the education web - students or faculty?
  • What are the barriers to total adoption of the semantic web across different industries?
  • Will true media convergence require a more open, and less 'walled' publishing web?
  • Assess the problems associated with the development of a coherent policy for the regulation of Internet content in the EU.
  • Can the Web reduce poverty? 

Learning & Teaching

Learning & teaching methods

ActivityDescriptionHours
LectureOne lecture per week10
TutorialStudent-led study groups, once per week10

Assessment

Assessment methods

MethodHoursPercentage contribution
Poster pitch: students make short presentations to their peers presenting an overview of the interdisciplinary analysis of their chosen Web Science. A version of their poster will be printed and on display-0%
Poster: Interdisciplinary Coursework #1 Students have the opportunity to revise the poster they presented earlier in the week, if they choose.-10%
Peer review of draft individual reports (in pairs) -0%
Multidisciplinary Investigation Based on Private Reading, Individual Interdisciplinary Coursework #2-90%

Referral Method: By set coursework assignment(s)

Share this module FacebookTwitterWeibo

COMP2202 Database and Database Applications

Module Overview

To give students an understanding of the role of database systems in information management, the theoretical and practical issues that influence the design, implementation and applications of database management systems and languages.

Aims & Objectives

Aims

Knowledge and Understanding

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

  • Understand the role of database systems in information management.
  • Understand the concept of data modelling.
  • Understand the theoretical properties of relational databases

Subject Specific Intellectual

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

  • To be able to apply entity-relationship modelling
  • To be able to normalise data.
  • To be able to use SQL to create, update and query a database

Syllabus

  • Rationale behind Database Systems
  • Database Modelling using the Entity-Relationship Model
  • Database System Architecture
  • Data Models and Data Sublanguages
  • SQL
  • Database Management Issues: concurrency, security, integrity
  • Application of Database
  • No SQL databases

Learning & Teaching

Learning & teaching methods

ActivityDescriptionHours
LectureEach week you will have 3 one hour lecturers, you will need to prepare for these. Where appropriate for the activity Slide will be up in advance and direct reading will be provided.33
Computer LabA computer laboratories for 4 weeks to practice your skills. Attendance is expected as this is your opportunity to get help and feedback on the practical aspects of the course, which you will need in order to complete the coursework.12

Assessment

Assessment methods

The initial coursework will be on line from week one. However a hand-in of the database design is required in week 3. Formative feedback and in class discussion of an appropriate design will be given in week 4. This will then be used to answer the remaining part of the assignment. None engagement in the excise will limit your understanding of the problem to be addressed.

MethodHoursPercentage contribution
Database design and implement-20%
Exam2 hours80%

Referral Method: By examination

Share this module FacebookTwitterWeibo

COMP1201 Algorithmics

Module Overview

This is a core module for computer science and software engineers.  It teaches the basic data structures and algorithms which underpins modern software engineering.  Without these algorithms most software would be hopelessly slow to the point of unusability.  The course also teaches the principles behind the algorithms and data structures and the software engineering lessons which data structures and algorithms teach us.

Aims & Objectives

Aims

Knowledge and Understanding

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

A1.  Knowledge of common data structures and algorithms

A2.  Understanding of time complexity

A3.  Understanding of how to code data structures using object oriented methods

Intellectual Skills

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

B1.  Choose the most appropriate data structure for a particular problem

B2.  Understand the operation of a number of important computer algorithms using those structures

B3.  Understand how to evaluate an algorithm for efficiency

B4.  Choose an appropriate algorithmic strategy to solve a problem

Subject Specific Skills

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

C1.  Have a greater confidence to write programs in Java

C2.  Be able to code a simple data structure

C3.  Be able to use data structures to build complex algorithms

Employability/Transferable/Key Skills

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

D1. Be able to solve problems algorithmically

Syllabus

  • Introduction
    • Data Objects, Data Structures, Complex Data Structures
  • Algorithm Analysis
    • The big O
    • Correctness
  • Algorithm Design and Strategies
    • Brute Force, Depth-First, Breadth-First, DFID, Best-first, Greedy, Divide and Conquer, Dynamic Programming, Branch and Bound
  • Simple Data Structures
    • List, Stack, Queue, Tree, Tree traversal
  • Sorting
    • Selection Sort, Insertion Sort, Shellsort, MergeSort, QuickSort, Bucket Sort, Radix sort, External sorting
  • Searching
    • Sequential Search, Handling Failure, Binary Search, Binary Tree Search,
  • Advanced Tree Structures
    • AVL Trees, Retaining Balance, Single Rotation, Double Rotation
    • Splay Trees, Red-black Trees, B-trees
  • Hash tables
    • Terminology, Hash table size, Hash function collision resolution, Separate chaining, Open Addressing, Re-hashing
  • Priority Queues (Heaps)
    • Terminology, Simple implementations, Binary heaps, Heap sort
  • Graphs
    • Terminology, Adjacency Matrix and List, Connectivity, Breadth vs Depth first search, Topological sort, Shortest path algorithms, Unweighted graphs, Breadth first search, Weighted Graphs, Minimum Spanning Tree, Prim's algorithm, Biconnectivity, Articulation points
  • Geometric algorithms
    • Convex hull, …

Learning & Teaching

Learning & teaching methods

ActivityDescriptionHours
Lecture36
Tutorial12

Assessment

Assessment methods

MethodHoursPercentage contribution
Assessed Tutorials-15%
Exam2 hours85%

Referral Method: By examination

Share this module FacebookTwitterWeibo

COMP1206 Programming 2

Module Overview

The aim of this module is to teach the students advanced programming techniques using Java in order to support its use on other modules. C will also be taught in order to introduce explicit memory allocation and the use of pointers.

Aims & Objectives

Aims

Intellectual Skills

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

B1.  Construct Java applications with Graphical User Interfaces in Swing and AWT

B2.  Construct multi-threaded Java applications

B3.  Use persistent storage for Java applications

B4.  Use pointers to manipulate dynamically allocated storage in C

B5.  Perform testing on Java programs using JUnit

Syllabus

  • Graphical User Interface Programming
    • Writing Swing and AWT user interfaces
    • User interfaces Components
    • Event Handling
    • Graphics in User Interfaces
  • Control Flow and the Java Virtual Machine
    • JVM overview
    • Exceptions and exception handling
    • Recursion in the JVM
    • Multi-threading and synchronisation
  • Storage and Files in Java
    • Garbage Collection
    • Strings and Character Encodings
    • Input/Output and Object Serialisation
  • Validation and Verification
    • Black Box Testing
    • White Box Testing
    • Integration Testing Strategies
  • The C programming language
    • Introduction to the language
    • Pointers and pointer arithmetic
    • Data structures and arrays
    • Comparison with Java
  • Patterns

Learning & Teaching

Learning & teaching methods

ActivityDescriptionHours
Lecture36
Computer Lab12

Assessment

Assessment methods

MethodHoursPercentage contribution
Coursework Assignment-75%
Laboratory Exercises-25%

Referral Method: By set coursework assignment(s)

Share this module FacebookTwitterWeibo

COMP2214 Advanced Software Modelling and Design

Module Overview

This modules aims:

  • To encourage proficient use of structured requirements analysis methods
  • To encourage proficient use of structured design methods and design patterns
  • To increase understanding of the relationship between formal modelling and software engineering
  • To encourage proficient use of refinement and verification in Event-B
  • To increase awareness of the relationship between formal modelling and correct software implementations
  • To raise awareness of a range of formal approaches to software verification

Aims & Objectives

Aims

Knowledge and Understanding

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

A1. Structured requirements analysis methods

A2. Structured design methods and design patterns

A3.  The role of formal methods and their relevance to software engineering

A4.  The role of model refinement in Event-B

A5.  The role of verification in formal development

A6.  The relationship between specifications and implementations

Intellectual Skills

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

B1.  Derive software requirements in a systematic way

B2.  Applying structured design methods to software development

B3.  Construct a formal specification from a set of English language requirements

B4.  Apply refinement to Event-B models

B5.  Apply verification techniques to Event-B models

Subject Specific Skills

C1.  Document and typeset a specification using a standard word processor

C2.  Use a UML drawing tool

C3.  Analyse an Event-B specification using Rodin

Syllabus

  • Goal-structured requirements analysis;
  • Design goals;
  • System/service decomposition;
  • Component models;
  • Formal methods in industry;
  • Modelling in Event-B;
  • Proof in Event-B;
  • Model checking in Event-B;
  • Model structuring and refinement;
  • Model decomposition;
  • Reasoning about programs;
  • Preconditions, postconditions, loop invariants, loop variants

Learning & Teaching

Learning & teaching methods

ActivityDescriptionHours
Lecture
Tutorial

Assessment

Assessment methods

MethodHoursPercentage contribution
Coursework-25%
Exam2 hours75%

Referral Method: By examination

Share this module FacebookTwitterWeibo

COMP2205 Commercial Aspects of IT

Module Overview

This course aims to introduce students to the fundamental commercial issues inherent in IT projects and their contexts, with focus upon smaller rather than larger operations.  The target audience will be taken to be an early-career IT team leader, manager, or entrepreneur.

Aims & Objectives

Aims

Subject Specific Intellectual

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

  • Specify appropriate company structures for different kinds and sizes of IT business
  • Identify financial options and their consequences for starting-up, acquiring, and selling IT businesses.
  • Suggest incentives and reward structures for team members and IT business
  • Construct, track, and restructure project budgets
  • Identify pros and cons of various management and leadership styles for IT project teams.

Transferable and Generic

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

  • to develop written communication skills appropriate to Commercial aspects of IT.

Syllabus

Topic

The viable systems model;  general systems theory;  stakeholders;  external (uncontrollable) factors.

Introduction to the structure and functions of an IT business;  value-added reseller, retailer, services / software house, facilities management, consultancy.  Special case of a research group.

The cost and reward structure of an IT business;  shareholders & classes of shareholder;  contribution / value added, operating profit, profit before tax, declared profit;  dividends.

Buying, starting-up, and selling IT businesses;  loans, venture capital;  exit planning;  financing, leverage;  capitalisation of intellectual property;  valuing the business;  board control, the special case of the 40:40:20 triangle.

Selling shares in the business, flotation, unlisted securities market (USM).

The cost structure of an IT project:  Distinguishing between pay and cost;  direct overheads and allocated overheads;  costs of being in business and of staying in business;  buy or lease;  out-source or in-house.

Project budgeting;  estimating, providing quotations, offers, and estimates;  contracts and bidding:  time & materials, firm fixed price, cost plus;  penalty clauses;  negotiating, re-negotiating, and walking away.

Managing project budgets;  effects of schedule slippage and budget over-run;  staying in business;  cash flows, discounted cash flow, NPV, IRR, break-even.

IPR;  licences and licensing;  confidentiality, non-disclosure.

Risk management and risk analysis;  probability, severity, exposure, amelioration, insurance;  bankruptcy.

Cost-benefit analysis;  customer value, stakeholder value, shareholder value;  link to cash flow;  cost savings, productivity, quality enhancement (faster, quicker, better);

Managing knowledge workers;  management, leadership, and entrepreneurship;  incentives;  selected theories of management & leadership.

Working in the IT industry: retainer, freelance / self-employed, contracted, consultant, employee;  legal and commercial issues including tax, IPR, confidentiality;  career planning;  changing jobs, changing employers, changing roles.

Power, influence, politics, culture;  what matters;  who and what you want to be;  positioning for success

Learning & Teaching

Learning & teaching methods

  • Lecture - 36 hours per semester
  • Tutorial - 12 hours per semester

Assessment

Assessment methods

MethodHoursPercentage contribution
Assignment 1 requires you to submit a project proposal in response to a hypothetical call for tender, working with a colleague. -40%
Assignment 2 requires you to submit an IT “start-up” business plan, working with a colleague. -30%
In-class test: assessment is a supervised unseen restricted time open-book open-Internet individual in-class exercise, undertaken in class time in week 12, comprising 20 multiple-choice questions.-30%

Referral Method: By set coursework assignment(s)

Share this module FacebookTwitterWeibo

COMP1216 Software Modelling and Design

Module Overview

This module aims to introduce students to the software engineering process, its tools, skills, and techniques, particularly modelling, validation, design and its mapping to code. The focus will be on a principled, object-oriented process from requirements modelling and analysis through code, with rolling case study and coursework examples developing the knowledge and skills.

Aims & Objectives

Aims

Knowledge and Understanding

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

A1.  The software development process

A2.  Requirements elicitation and structuring

A3.  Requirements modelling in UML and set-theoretic notations, and their validation

A4.  The use of UML design notations

A5.  The relationship between models and implementations

A6.  Concepts of software architecture, design patterns and their applicability

A7.  Characteristics of appropriate APIs, Tools, IDEs

Intellectual Skills

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

B1.  Specify, analyse and organise requirements for a software product

B2.  Model, analyse and validate such software requirements using UML and set-theoretic notations

B3.  Apply appropriate UML design patterns and notations to the design of components of a product

B4.  Select and use appropriate APIs, Tools, IDEs in mapping these designs to code

Subject Specific Skills 

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

C1.  Apply an appropriate software engineering process and tools to the task of structuring, modelling and validating requirements for a software product

C2.  Apply appropriate software engineering techniques and tools to the task of designing, testing and implementing code from a suitable requirements model

Syllabus

  • From problems (requirements) to solutions (programs): process
  • Software process models, e.g. waterfall, agile
  • Requirements elicitation, modelling, analysis and validation
    • Structuring narrative requirements
    • Structure: class diagrams, state: state machines
    • Modelling, analysis and validation with UML and Event-B
    • Use of tools for analysis and validation of models
    • Modelling and analysis case studies
  • UML  design notations: use cases, scenarios: sequence diagrams
  • Design patterns, generics
  • Architecture
  • From design to code
  • APIs, Tools, IDEs (e.g. version control, testing)

Learning & Teaching

Learning & teaching methods

ActivityDescriptionHours
Lecture36
Tutorial12

Assessment

Assessment methods

MethodHoursPercentage contribution
Exam-70%
Small group requirements modelling/ analysis coursework-15%
Small group design-to-code coursework-15%

Referral Method: By examination

Share this module FacebookTwitterWeibo

ELEC6050 Group Project A

Module Overview

These can be summarised briefly as:

  1. to provide an introduction to intensive group project work in collaboration with industrial or academic customers
  2. to attain the goal of the project
  3. to divide task into parts to be pursued concurrently by members of a team
  4. to maintain cohesion as a team while attaining the goal
  5. to exercise self and mutual management skills, particularly the management of time
  6. to pursue the project goal notwithstanding economic/time constraints
  7. to encourage effective use of resources including library material
  8. to gain experience of writing reports and, in particular, writing group reports
  9. to gain experience of seminar preparation, public speaking and oral presentation
  10. to encourage innovation and promotion of innovative ideas to group partners
  11. to reflect on and appraise the effectiveness of the chosen approach

Aims & Objectives

Aims

  • concepts from a range of areas including some outside engineering, and the ability to apply them effectively in engineering projects,
  • design processes and methodologies, specialist tools and techniques used to design, analyse, implement and verify systems in your area of engineering.

Learning & Teaching

Learning & teaching methods

ActivityDescriptionHours
Lecture36
Tutorial12

Assessment

Assessment methods

MethodHoursPercentage contribution
Group Technical Contribution-50%
Group Presentations and Report-25%
Individual Contributions (Reflection -5%, Technical and presentation-20%)-25%

Referral Method: By set coursework assignment(s)

Share this module FacebookTwitterWeibo

Pages