Undergraduate and Masters

At Hertfordshire I teach the Human Dimension of Computing and provide various lectures on Cyber Security.

I taught the following courses at Brookes: Digital Control of Sound and Light, Graphics and Animation, Image Technology, The Human Dimension, Machine Vision, Computer System Design, Artificial Intelligence.

I taught the following courses at Cambridge: Artificial Intelligence, PROLOG Programming, Data Structures and Algorithms, Computer Vision, Neural Computing, Programming in LISP and in assembly language.

I taught the following courses at Edinburgh: Programming in POP-2 and in PROLOG.


If you are considering doing a Ph.D. in a field related to intelligent systems or cyber security, please think carefully before contacting me (a) why you wish to do this, and (b) how you will fund yourself. A part-funded or fully-funded studentship can be made available to exceptionally well qualified candidates.

I have had the privilege of supervising the following students for their Ph.D. (showing date of degree, brief topic, and last known occupation):
M.P. Shanahan (1988) Exploiting dependencies in search and inference mechanisms. (Professor, Imperial College London)
M.E. Leeser (1988) Reasoning about the function and timing of integrated circuits using Prolog and temporal logic. (Professor, Northeastern University, USA)
A.J. Morgan (1989) Qualitative analysis of dynamic physical systems. (Consultant, Malaysia)
C.S. Klein (1990) Exploiting or-parallelism in Prolog using multiple sequential machines. (Lady of the Manor, UK)
C.W.M. Restivo (1990) Some properties of first-order state-spaces. (Consultant, USA)
K.L. Wrench (1990) A distributed multiprocessor AND/OR parallel Prolog system. (University professor, USA)
A.W. Moore (1991) Efficient memory-based learning for robot control. (Director of Google Research, Pittsburgh)
R.P. Gore (1992) Cut-free tableau and sequent systems for normal propositional modal logics. (Professor, Australian National University)
I.A. Benson (1992) Reasoning about contingent events in distributed systems. (Consultant, UK)
T.U. Vogel (1992) Learning in large state spaces with an application in biped robot walking. (Research fellow, Germany)
I.A. Ferguson (1993) An architecture for rational autonomous agents. (Computer industry, Canada)
S. Saraswat (1996) Performance evaluation of the DelPhi machine. (Computer industry, Canada)
K.F. MacDorman (1997) Symbol grounding: Learning predictions for coordination in autonomous robots. (Professor, Indiana University, USA)
I.J. Lewis (1998) PROLOGPF: Parallel logic and functions. (Director of Cambridge University Computing Service)
B. Reis (1999) Simulating music learning with autonomous learning agents. (Professor, Harvard Medical School, and Children’s Hospital, USA)
M.S.M. Khorsheed (2000) Arabic handwriting recognition. (Director of National Center for Robotics and Intelligent Systems, Saudi Arabia)
R. Nopsuwanchai (2004) Hidden Markov models for Thai handwriting recognition. (Computer industry, Japan)
P.P.J. Fernando (2004) Generalised moments for Syriac handwriting recognition. (Chaplain, Oxford Brookes University)
C. Restif (2006) Segmentation methods for biological cell images. (Research fellow, Rutgers University)