School of Electronic Engineering and Computer Science

Dr Matthew Huntbach



Telephone: +44 20 7882 5818
Room Number: Peter Landin, CS 303
Office Hours: Wednesday 10:00-12:00


Algorithms and Data Structures (Undergraduate)

The module is an introduction to Algorithms and Data Structures. It covers topics such as running time of algorithms, asymptotic complexity, simple and advanced sorting algorithms, divide and conquer algorithms, recursion, dynamic programming, greedy algorithms, basic data structures (strings, arrays, lists), linked lists, trees, hash tables.

Object-Oriented Programming (Undergraduate)

Major topics include the concepts of class, object, method, subclass, inheritance and their use in programming. The relevance of the object oriented style with respect to concrete software problems will be stressed both in lectures and labs. There will be two hours of lectures per week, and each student will have a weekly timetabled lab session. In addition, you will be expected to spend further time outside scheduled lab periods in the lab (or at home machines if they are available), and to read textbooks and review notes.

Software Engineering (BUPT joint programme)


Research Interests:

Concurrent/Declarative Programming Languages Declarative programming languages are based on an abstract model of computing rather than the actual hardware. With an abstract model which breaks down clearly into pieces with defined patterns of interaction, we can write programs which are less likely to contain bugs than conventional programs and more easy to analyse. Another reason for using declarative languages is that as they are not tied to the standard single-processor architecture they may more easily be mapped onto multi-processor architectures, while saving the programmer from having to be concerned with low-level aspects of controlling these architectures. The challenge is to design programming languages which are easy for ordinary programmers to use, which fit into the modern pattern of computing which is as much about interaction is about calculation, and which have a clear abstract model underlying them.


  • HUNTBACH MM (2007). The Core Language of Aldwych. Communicating Process Architecture
  • HUNTBACH MM (2003). Features of the Concurrent Programming Language Aldwych. ACM Symposium on Applied Computing
  • HUNTBACH MM (2001). The Concurrent Language Aldwych. World Multiconference on Systemics, Cybernetics and Informatics vol. XIV
  • HUNTBACH MM, RINGWOOD GA (1999). Agent Oriented Programming From Prolog to Guarded Definite Clauses. nameOfConference