Skip to main content

Dr Keith Leonard Mannock

  • Overview

    Overview

    Biography

    A bit of history...

    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 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 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. 

    Highlights

    • I am a senior 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

    • AAISB - Association for Artificial Intelligence and Simulation of Behaviour

    • IET - The Institution of Engineering and Technology

    ORCID

    0000-0001-5988-6895
  • Research

    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

    Research projects

    Jellibeans is a web search tool for assisting users with Autistic Spectrum Disorder (ASD)

  • Supervision and teaching

    Supervision and teaching

    Supervision

    If you have any ideas for a project that fits within my interests, then please feel free to come and discuss it with me. If you are trying to find a topic, here are some areas to consider:

    • Automated Web Navigation
    • A mini interpreter for Swift - NEW for 2023-24
    • Cleaning "dirty" data
    • Autonomous Agent Toolkit
    • Content-based spam filtering
    • Web Search with paragraph spreading...
    • Document Image Analysis
    • Reputation systems
    • Mobile Game Design
    • Online Job Portal
    • Search Engine Improved Page Ranking
    • Image segmentation by clustering methods FlashMob
    • Pattern Classification Algorithms
    • Visualisation of web query results
    • Self-Organizing Imagery

    I look to take on intelligent students (which you are by definition of being a Birkbeck student) who are interested in the project they are about to undertake. Students should be self-motivated and keen to explore their topic. Do not be afraid to express your ideas and follow them. However, you must balance your approach and practice scientific practices to evaluate your work. We can work together to create a good, solid project if you have the basics.

    I like to see students take control of their projects and run with their ideas and thoughts. This means that students exercise a degree of independence - however, I don’t expect this to translate to going off into a dark corner and never consulting me. My role is to provide some guidance and advice. There is clearly a conflict between these two expectations, so we need to work together to strike a suitable balance between self-direction/independence and guidance.

    Bottom line - it is your project, and the supervisor only makes suggestions...

    Teaching

    My teaching focuses on software-based topics utilising blended learning techniques.

    Current teaching modules

    • Software and Programming III (since 2012)
    • Introduction to Computer Systems (since (2019)
    • Applied Software Engineering (since 2020)
    • Programming Primer in Python (since 2014)

    Past teaching modules

    • Software Design and Programming (2012-2022)
    • Programming Language Paradigms (2011-2022)
    • Programming Paradigms and Languages (2011-2022)
    • 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)
    • Applied Software Engineering (BUCI090S7)
  • Publications

    Publications

    Book Section

    Conference Item

  • Business and community

    Business and community

    Outreach

    • 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.