Skip to main content

Dr Keith Leonard Mannock

  • Overview



    A bit of history...

    I received a B.Sc. degree with first-class honours in Computer Science (CNAA) from the Polytechnic of Central London. I also have an HND with Distinction in Computer Studies! Studying at a Polytechnic was a conscious decision for me — I wanted to avoid the "ivory towers" view of life; I received some support from Esso (bang goes my Green credentials).

    Whilst an undergraduate, I did a fair amount of external consultancy — the money came in very useful! I then studied for my PhD at University College London in electronic document retrieval under Professor Clement Leung. As a research student, I continued to do external consultancy and teaching at various Colleges.

    I took up a full-time lectureship at Birkbeck in 1986 (that long ago!). I've continued to foster links with industry (see my research pages) and work in the areas of programming languages (especially languages for the JVM and OSX), software engineering, and visual information systems (multimedia information retrieval).


    • I am a lecturer in Computer Science at Birkbeck, University of London.
      I am involved in several open-source and commercial programming projects.
      I used to do commercial consultancy - but now I’m too busy (and probably need a rest!).
      I ❤️ writing software and trying to convince others of its elegance and artistry!

    • "It was a lot more fun being 20 in the '70s than 70 in the '20s" — Joe Walsh

    Office hours

    Please use the booking facility on MS Teams...

    Web profiles

    Administrative responsibilities

    • Programme Director for the MSc in Information Technology
    • Home and International Recruitment and Admissions Lead in the School of Computing and Mathematical Sciences
    • Library representative

    Professional memberships

    • BCS - British Computer Society

    • IEEE Computer Society - Institute of Electrical and Electronics Engineers

    • ACM - Association for Computing Machinery

    • AAAI - American Association for Artificial Intelligence

    • ALT - Association for Learning Technology

    • IET - The Institution of Engineering and Technology

    • AAISB - Association for Artificial Intelligence and Simulation of Behaviour


  • Research


    Research interests

    • Programming languages - all types and forms but especially multi-paradigm languages
    • Software engineering
    • Environments, methodologies, and tools for teaching programming
    • Self modifying machine learning architectures
    • Information retrieval with particular attention focused on content-based image indexing and retrieval
    • Location aware mobile applications
    • Cloud and distributed computing as applied to the Enterprise
    • Software tooling
  • Supervision and teaching

    Supervision and teaching


    Doctoral alumni since 2013-14



    My teaching focusses on software based topics utilising blended learning techniques.

    Past teaching modules

    • Software Design and Programming (2012-2022)
    • Programming Language Paradigms (2011-2022)
    • Programming Paradigms and Languages (2011-2022)
    • Programming Primer in Python (2014-2021)
    • Enterprise Computing (2012-2020)
    • Component Based Software Development (2000-2020)
    • Principles of Programming I (2017-2018)
    • Principles of Programming II (2017-2018)
    • Programming in Java (2011-2018)
    • Software and Programming II (1994-2013)
    • Middleware (2010-2012)
    • Introduction to Software Development (2009-2012)
    • Object-Oriented Design and Programming (2007-2011)
    • Component Technologies (2000-2010)
    • Introduction to eBusiness (1999-2006)
    • Object-Oriented Programming in Java (1997-2006)
    • Software and Programming I (1993-1999)
    • Object-Oriented Programming in C++ (1991-1996)
    • Neural Networks (1990-1994)
    • Information Retrieval (1990-1993)
    • Advanced Programming Techniques I and II (1987-1992)
    • Expert Systems and Artificial Intelligence (1986-1995)
    • Operating Systems (1986-1989)
    • Database Systems (1982-1989)

    Teaching modules

    • Introduction to Computer Systems (BUCI008H4)
    • Software and Programming III (BUCI056H6)
  • Publications


    Book Section

    Conference Item

  • Business and community

    Business and community


    • I've given invited talks on my research work, both on academic and industrial concerns.
    • I've run research projects, most of which have been industry-related.
    • I've also been involved in several web events in the industry, which are tiring but fun.
    • I've been an external examiner on various BSc and MSc programmes and PhDs.
    • I have given invited lecture courses at many places….
    • In my copious spare time, I write articles and books and develop online courses for programmes, whether that be beginners or professionals.