School of Electronic Engineering and Computer Science

Mr Andrew Lewis-Smith


Room Number: Peter Landin, CS 438


Information Systems (Postgraduate)

This module consolidates previous work on internet and distributed programming and extends this to issues in the design, implementation and deployment of real-world e-commerce/ m-commerce/ distributed systems built on Java/.net technology and to develop novel distributed applications built on middleware technologies.

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.

Logic and Discrete Structures (Undergraduate)

The module consists of two parts, each of fundamental importance for any serious approach to Computer Science: Logic and Discrete Structures. Logic has been called the Calculus of Computer Science. It plays a very important role in computer architecture (logic gates), software engineering (specification and verification), programming languages (semantics, logic programming), databases (relational algebra and SQL the standard computer language for accessing and manipulating databases), artificial intelligence (automatic theorem proving), algorithms (complexity and expressiveness), and theory of computation (general notions of computability). Computer scientists use Discrete Mathematics to think about their subject and to communicate their ideas independently of particular computers and programs. They expect other computer scientists to be fluent in the language and methods of Discrete Mathematics. In the module we consider Propositional logic as well as Predicate Calculus. We will treat Propositional Logic and Predicate Calculus as formal systems. You will learn how to produce and annotate formal proofs. As application we will briefly consider the programming language Prolog. This module will also cover a variety of standard representations, operations, properties, constructions and applications associated with selected structures from Discrete Mathematics (sets, relations, functions, directed graphs, orders).

Probability and Matrices (Undergraduate)

This module covers: Probability theory Counting permutations and combinations Conditional probabilities Bayesian probability Random variables and probability models Vector and matrix algebra Linear equations Vector spaces Linear combinations, linear independence

The Semantic Web (Postgraduate/Undergraduate)

The idea of putting semantic information on the Web has been around for a long time: we now have the beginnings of a practical application. This has its foundations in what is called Description Logic, which strikes a good balance between tractability and usability. This has led to a Web language called OWL, which is at the centre of modern work on the Semantic Web: there are now useful implementations, and there are workable, if modest, applications of this technology.


Research Interests:

Substructural Logics; Algebraic semantics and algebras in general; Proof theory.