Interactive System Design (Undergraduate/Postgraduate)
The main areas of study are (i) interaction and design (ii) modelling of interaction (iii) the design process (iv) design principles and (v) usability evaluation. Various types of interfaces will be considered including those encountered on the web and mobile computing devices. A historical perspective is encouraged in order to provide a means of understanding current and projected developments in the discipline and profession of interactive computer system design. The module will include seminars and group laboratory classes in which analysis, design and evaluation methods will be used in practical contexts. Students will be expected to participate fully in the seminars by presenting and discussing their own designs and evaluations. Students will be required to construct prototype interfaces using techniques of their own choice (e.g. Java, Director).
Procedural Programming (Undergraduate)
This is an introductory module in computer programming using Java. You will learn the basic concepts of programming and learn to write and reason about simple programs. The main topics covered are: storing and manipulating data, control structures, methods and recursion, and algorithms for searching and sorting data. Classes include weekly lectures and lab sessions. You will be assessed by coursework throughout the term and by an end-of-term exam. Both will require you to demonstrate that you can write programs and understand theory.
My research combines the areas of interaction design, automated reasoning and formal verification. I also have a strong interest in the public understanding of science.
Formal Cognitive Modeling and Human Error
My main focus at the moment is on human error, extending my work on the verification of hardware/software systems to human-computer systems. The idea is to consider the human operators of such interactive systems as part of the system under verification, so bringing systematic human error, not just software and hardware error, within the scope of the approach. I am, in particular, exploring the use of formal models of human behaviour based on results from cognitive psychology in the design of interactive systems. This work is in collaboration with UCL Interaction Center. Questions we are exploring include: 'How can formal models of human behaviour form the basis of verification methods that can detect design flaws that lead to systematic human error?'; 'How can empirical investigations inform the development of formal models of human behaviour used for verification, and vice versa?' and 'How can formally-based usability evaluation methods best support the analyst?'
Verification of Verification Systems
My work on the design and verification of hybrid verification systems is in collaboration with Concordia University. We developed a verification system that combined the power of the MDG and HOL tools. It harnesses the abstraction techniques of the automated MDG multiway decision diagram (which is superior to boolean decision diagrams) system combined with theorem proving power of HOL to manage the process. In related work we developed a novel methodology that justifies importing results into a theorem prover using verified linkage theorems. It is based on a combination of compiler verification techniques.
Social Aspects of Interaction Design
I am also working on several projects investigating social aspects of interaction design, for example related to navigation and design for all. Questions of interest include: 'How can systems be designed so as to build on our cognitive strengths, especially as we age?'. Navigation systems designed to exploit and extend our cognitive maps rather than replace them are being used as an exemplar of this.
Public Engagement in Science
A major aspect of my work is in the public engagement in computer science (and science, maths and engineering more generally). I am aiming to generate excitement not just about the department's research but about research in the subject more generally. The main way of achieving this is through the internationally renowned webzine cs4fn (www.cs4fn.org) that I created with Peter McOwan. I gave an invited keynote at the ACM ITiCSE (Innovation & Technology in Computer Science Education ) conference on this work. cs4fn was also commended in the 2006 EPSRC International Review of Computer Science.