Clack is a Professor at University College London (UCL), where he has been involved in undergraduate and postgraduate teaching for over 30 years.

  • Teaching Overview

    Current taught modules:

    Supervisor for student projects:  (see main topic "Student Projects" below for project suggestions)

    • 2021-2022
      • Undergraduate: Ali Ghariani
    • 2020-2021
      • Postgraduate:  Gordon Cho, Hamza Chaudhry, Siyuan Liang, Piotr Moren, Lehui Ma, Alvaro De La Vega
    • 2019-2020
      • Postgraduate: Tianci Cai, Ioanna Charalambous, Adir Saly Kaufmann

    Personal Tutor to:

    • 2021-2022
      • Luis Ontaneda Mijares, Sachi Lad, Ali Ghariani, Ruiyi Zhou, Henry Walton, Antreas Michael, Hugo McLaughlin, Aaneel Bin Srazali, Ofir Francis, Qiwen Lin
    • 2020-2021
      • Jiayi Chen, Xinyi Liu, Simon Fattal, Yihang Li, James Hennessy, Joseph George, Lehui Ma, Naiwen Tian, Giorgia Chillon, Melanie Chen
    • 2019-2020
      • Sean Brown, Simon Sive, Louyu Zhang, Yuexi Fang, Yutong Guo, Gaoyuan Wu, Carlton Ji (Y3), Yihang Li (Y4), Ioan-Bogdan Nitescu (Y4), Mingyi Lim (Y3)

    Administrative role:   Academic coordinator for MSc programmes (2020-)

    Text books: Co-author of three text books, all published by Prentice Hall but now out of print. The English version of the Miranda book can however be downloaded by following the link (the copyright has reverted to the author).

    Office hours: Arranged privately with tutees.

  • Academic Coordinator for MSc Programmes (UCL Computer Science)

    The Academic Coordinator for MSc Programmes in the Department of Computer Science at UCL facilitates interaction between the MSc Programme Directors and encourages the sharing of best practice and solution to common teaching issues.  The MSc Programmes currently active (as of January 2021) and their key contacts are:

    Artificial Intelligence for Health

    Programme Director and Admissions Tutor

     

     

      Administrator  

     

    Artificial Intelligence for Sustainability

    Programme Director and Admissions Tutor

     

     

      Administrator  

     

    Computational Finance

    Programme Director and Admissions Tutor

    Guido Germano

      Administrator Ricki Madawho

    Computational Statistics and Machine Learning   

    Programme Director and Admissions Tutor

    Dmitry Adamskiy

     

    Administrator

    Elizabeth Awad (on secondment until 02/08/21)

    Computer Graphics, Vision and Imaging

    Programme Director

    Lourdes de Agapito Vincente

     

    Admissions Tutor

    Tobias Ritschel

     

    Administrator

    Martin Nolan

    Computer Science

    Programme Director

    Federica Sarro

     

    Admissions Tutor

    Ghita Kouadri Mostefaoui

     

    Administrator

    Thomas Whitney

    Data Science (International)

    Programme Director and Admissions Tutor

    Pontus Stenetorp

     

    Administrator

    Samantha Bottomley   

    Data Science and Machine Learning

    Programme Director and Admissions Tutor

    Dariush Hosseini

     

    Administrator

    Elizabeth Awad (on secondment until 02/08/21)

    Disability, Design and Innovation

    Programme Director and Admissions Tutor

    Tim Adlam

     

    Administrator

    Aeesha Bhaiyat

    Emerging Digital Technologies Programme Director Jiahua Xu

      Deputy PD & Admissions Tutor Paolo Barucca

      Projects coordinator Paolo Tasca

      Administrator Nhu Nguyen

    Financial Risk Management

    Programme Director and Admissions Tutor

    Fabio Caccioli

     

    Administrator

    Ricki Madawho

    Financial Technologies Programme Director Nikhil Vadgama

      Deputy PD & Admissions Tutor

    Silvia Bartolucci

      Projects coordinator Paolo Tasca

      Administrator

    Nhu Nguyen

    Information Security

    Programme Director

    Philipp Jovanovic

     

    Admissions Tutor

    Philipp Jovanovic

     

    Administrator

    Samantha Bottomley (currently on 9 month secondment)

    Machine Learning

    Programme Director and Admissions Tutor

    Mark Herbster

     

    Administrator

    Samantha Bottomley (currently on 9 month secondment)

    Robotics and Computation

    Programme Director and Admissions Tutor

    Simon Julier

     

    Administrator

    Martin Nolan

    Robotics (from 2024)

    Programme Director and Admissions Tutor

     

     

     

    Administrator

     

     

    Sensor Systems

    Programme Director and Admissions Tutor

     

     

     

    Administrator

     

     

    Software Systems Engineering

    Programme Director and Admissions Tutor

    Jens Krinke

     

    Administrator

    Ricki Madawho

  • Student Projects

    Suggestions for the Academic Year 2022-2023:

    Smart Contracts are currently a hot topic, including both Blockchain-based and non-Blockchain-based Smart Contracts. I supervise projects in the research area of Smart Legal Contracts, as used for example to automate the performance of legal (especially commercial) contracts.  "Computable Contracts" are a particular way to write Smart Legal Contracts using a Domain Specific Language that also looks like Natural Language (e.g. English, as used by lawyers in drafting contracts).

    If interested in any of the following, send an email to: 

    • Compare Smart Contract development for at least 2 different Blockchain architectures - e.g. Ethereum and Hyperledger.  Deploy a private blockchain, write test smart contract code, explore limitations and idiosyncracies (eg ease of deployment, ease of coding, oracle architecture and ease of use, achieving workflow and temporal sequencing, ability to respond to external events).
    • Contribute to current research into the design and operation of new domain-specific languages for creating legal agreements. For some time the use of formal logical expressions has been advocated to represent legal contracts, since they can be compiled directly into a logic language such as Prolog that can then provide (i) analysis of contracts and (ii) a route to automation as Smart Contracts. Both Logical English (https://www.doc.ic.ac.uk/~rak/papers/LPOP.pdf) and Lexon (http://lexon.tech/) are good examples but (i) what are their limitations? and (ii) can we do better? Specifically:
      • Analysing the language "Logical English" (LE) - establishing how the language should be tested, learning to program and create contracts using LE, running tests, generating code, and evaluating the language - either in a Blockchain context, or non-Blockchain, or both.
      • Alternatively, do exactly the same for Lexon.  Or (if you have time, do both and coduct a comparative study).
      • Designing a new DSL to improve on LE/Lexon.  This would suit a student who is interested in the design of programming languages, and would probably involve writing a prototype parser to read the new DSL and convert it into a lower level language (most likely either a logic language or a functional language, or perhaps converting into Lexon or Logical English). The student would explore different DSL designs to support modularity and compositionality. As a stretch objective the student could explore writing some contract analysis tools (eg detecting inconsistencies or missing cases).
    • Temporal Semantics of Smart Contracts: continue and extend previous work that has captured the requirements for describing the temporal aspects of legal documentation. The previous work on requirements needs to be extended to provide (i) formal representations of time objects, (ii) a formal definition of for each kind of time object to state what it means, (iii) a set of operators that can be applied to time objects, defining the properties of those operators (eg commutative? associative?), and a definition of the meaning of the output of each operator, and (iv) a comparison with existing semantics/logics. There is scope to implement this work as a prototype so that its operation can be validated.
  • Past Projects

    The following is a limited selection of previously supervised student projects, with links to their dissertations where available.

    Finance

    1. "Profitable, Return-Enhancing" Portfolio Adjustments - An Application of Genetic Programming with Constrained Syntactic Structure (Wei Yan, MScCS 2003, Distinction) (link to Wei's project report)
    2. Are Genetic Algorithms and Genetic Programming suited to incremental learning? (David Koo, 3rdyr 2004)
    3. An investigation into the application of a continuous learning strategy to the use of GA techniques for trading Portfolio Optimisation (Lisa Billet, MScIS 2004)(link to Lisa's project report)
    4. Dynamic Optimisation of Technical Trading Rules Using Genetic Programming (Thomas Graham, MScIS 2004) (link to Tom's project report)
    5. Cytoskeleton Simulation applied in financial portfolio optimisation (Bo Zhang, MScCS 2005) (link to Bo's project report)
    6. Financial portfolio optimisation (Nicky Tsang, BSc 2005) (link to Nicky's project report)
    7. Financial portfolio optimisation (Fuad Sulejmanovic, MSci 2005) (link to Fuad's project report)
    8. Venture Analytics Web Application (Michael Le, MSci 2006) (link to Michael's project report)
    9. FTSE 100 Price Prediction with a multi-factor model using Genetic Programming (Harjinder Bagria, BSc 2006) (link to Harjinder's project report) (User Manual) (System Manual) (Test Results) (Stocks) (Code Archive) (Data Archive) (data file manager)
    10. Using an agent-based simulation to explore hedging pressure in futures markets (Jonathan Duke, MSc IS 2006)
    11. A Study of Linkage Identification in Financial Time Series Analysis (Theodore Chiotis, MSc IS 2006)
    12. GP portfolio optimisation (Yaning Liu, MSc CS 2006)
    13. GP based options pricing (Faisal Muhammed, MSc CS 2006)
    14. GP Portfolio optimisation (Nick Watson, MSc CS 2006)
    15. Effects of combining ALPS and SPEA2 genetic programing algorithms in a portfolio optimization problem, (Khalid Al-Abid, MScIS 2007);
    16. Hedging pressure in futures markets (Carl Aranjo, BSc 2007)
    17. Research infrastructure for parallel GP system experiments in portfolio optimisation, (Ali Adeli, BSc 2007);
    18. GP prediction of American Options Bid-Offer spreads (Jignesh Halai, BSc 2007)
    19. VaR optimisation using Genetic Programming (Sunpreet Grewal, MSci 2007)
    20. Comparison of GP diversity preservation mechanisms for non-linear portfolio optimisation (Suneer Patel, MSci 2007)
    21. GP prediction of American Options Bid-Offer spreads (Amy Willis, MSci 2007)
    22. Credit Derivatives - Pricing and Bootstrapping, (Mi Sun, MScFC 2009-2010, Distinction);
    23. Release Builder: Automating Code Build and Deployment for Large Software Projects, (Lemin Li, MScFC 2009-2010, Distinction);
    24. An Agent-Based Simulation of Trader Behaviour in Modelling Emergent Phenomena in Stock Market, (Teng Jiang, MScFC 2010-2011, Distinction);
    25. Novel Order Book Rules to Promote Trading System Price Stability, (Lingcen Huang, MScFC 2010-2011, Distinction).
    26. Modeling the Financial Markets, (Peter Hilton, MScCS 2012, Distinction);
    27. Eugene: Agent-Based Market Simulator for use in Validation and System Testing of Trading Algorithms (Jakub Kozlowski, MEng 2012, Distinction, IBM Prize);
    28. The Stochastic Pi-Machine and Finance, (Gernot Roetzer, MScCS 2012, Distinction);
    29. Interference and interaction between trading algorithms, (Andrei Airimitoaie, BSc 2012);
    30. Simulating Interaction in Financial Markets, (Vikram Bakshi, MScCS 2015).

    Life Sciences

    1. Drug Patient Database (Sameera Waheed, MScCS 1994)
    2. ECOSERVER (a website where users can request information from a data structure, written in a functional language, capable of producing web pages to display that information dynamically) (Andrew Oldfield, MScCS 1995)
    3. Design and Implementation of a Java Application for Interactive Manipulation of Protein Sequence Alignments (Cleopatra Karapanagioti, MScCS 1998)
    4. Learning algorithms applied to Malaria diagnosis (Clarence Sittampalam, MScCS 2004)
    5. Simulation of cancer tumour therapy using agent-based programming and a cellular automaton (Mo Radif, BSc 2005) (link to Mo's project report)
    6. Simulation of Cancer Tumour Therapy by Using Agent-Based Modelling (Anastasia Semenova, MSci, 2005) (link to doc file)(link to pdf file)
    7. Modelling the movement of antibodies towards the tumour in Cancer Chemotherapy. (Chih-Chun Chen, MScCS 2005) (link to Chih-Chun's project report).

    Business and underlying technology

    1. Development of a Prototype Intelligent Browsing System utilising Boolean Query Generation using Genetic Programming (Dan Morrison, MScCS 1994)
    2. Introducing GPMail - A Personalised Email Agent Using Genetic Programming (Youssef Lababidi, MScCS 1996)
    3. GUESS: An Adaptive Genetically-Programmed E-mail Assistant written in Haskell (Dzofrain Azmi, MScIT 1996)
    4. Optimisation of Sainsbury's Stock Control Data (Daniel Shaya, MScCS 1996)
    5. Adaptive e-mail classification and routing, a UCL implementation using Genetic Programming (Jude Umeh, MScCS 1997, Pass)
    6. A Natural Selection Solution to a Complete Problem (Steve Evans, MScCS 1998)
    7. Supply Chain Scheduling using a genetic algorithm (Prajesh Patel, MScCS 2000)
    8. Supply Chain Scheduling Using a Genetic Algorithm (Jaspal Gill, MScCS 2000)
    9. Electronic Mail Filtering Using Genetic Algorithms (Smeeta Sharma, MScIT 2003)
    10. The Spam Filter System (Amit Sharma, MScCS 2003)
    11. A Feasibility Study of a Novel Adaptive Memory Management System (Idris Drief, MScIT 2003)
    12. Selective Crossover Using Gene Dominance as an Adaptive Strategy for Genetic Programming (Chi Yuen, MScIS 2004) (link to Chi's project report)

    Memory Management

    1. A Simulation Study of an Exact-Fit, Peer-Group Memory Allocator (Sundeep Kooner, MScCS 2000)
    2. A Feasibility Study of a Novel Adaptive Memory Management System (Idris Drief, MScIT 2003)
    3. Co-evolution of Worst-Case Optimal Memory Management Policies (David Coffin, MScCEugeneS 2004)
    4. An Investigation into the fragmentation performance of the Symbian Operating System memory allocator, and a critical assessment of the extensibility of the allocator framework (Dan Kolb, MScCS 2004, Distinction) (Link to Dan's project report)

    Functional Programming

    1. GRIP Performance Monitoring (Perminder Thandi, MScCS 1988)
    2. High Bandwidth Parallel Interface between GRIP and an HLH Orion (Peter Traps, MScCS 1989)
    3. Functional Image Processing (Chung Wing Man, 3rdyr 1990)
    4. A DIGRESS SYstem Profile Display Tool (Bruce Attah, MScCS 1993)
    5. Haskell Core to FLIC Compiler (Sapna Patel, MScCS 1994)
    6. Feasibility study into the implementation of the nuG machine on the DIGRESS system (Steven Crossan, MScCS 1994)
    7. A CORE Compiler (Alexandra Crouch, MScCS 1994)
    8. ECOSERVER (a website where users can request information from a data structure, written in a functional language, capable of producing web pages to display that information dynamically) (Andrew Oldfield, MScCS 1995)
    9. GUESS: An Adaptive Genetically-Programmed E-mail Assistant written in Haskell (Dzofrain Azmi, MScIT 1996)
    10. Feasibility Study: Incorporating Lexical Profiling into the Glasgow Haskell Compiler (Tina Callaghan, MScCS 1996)
    11. Miranda Functional Spreadsheet (Yat Sun NG, 3rdyr 1997)
    12. Analysis and research into errors produced while compiling a Miranda program and examining how these errors can be resolved, (Patrick Kielty, 3rdyr BSc 1997);
    13. CLOVER Spreadsheet Editor (Sieu Ngu, 3rdyr 1997)
    14. A Teaching Program for the Lambda Calculus (Ekaterini Metallinou, MScIT 2003)

    Other

    1. Multi-User Diagram-Editor (Eli Kalati, 3rdyr 1991)
    2. Distributed UNIX Booking System (Lotfi Berrada, MScCS 1993)
    3. Amanuensis - Indexing with LaTeX (Steven Gould, MScCS 1994)
    4. Access rule-based system for building maintenance (Apostolos Kontogeorgis, 3rdyr 1995)
    5. A Feasibility Study into developing a prototype platform-independent program for remote development of platform-independent code (Micah Levy, 3rdyr, 1996)
    6. The Production of a Data-Flow Diagram Editor Applet for Use in an Application Development Environment (Oliver Wood, MScIT 1996)
    7. Multi-user Spreadsheet Program (Erik Emin, 3rdyr 1998)
    8. Dynamic web application for graphical display of result sets (Claire Worledge, MScIT 2001)
    9. Real-Time Interactive Data Over the Internet (Mark Hilton, MScCS 2001)
    10. A Website that allows Statistical Testing (Sachin Kumar, MScCS 2002)
    11. Camera Support for the Symbian OS Emulator for Windows (Aleem Juma, 3rdyr 2004)
    12. Extreme Tube - A live view of the tube network, using wireless networks (Adnaan Shirazi, 3rdyr 2004)
  • Past modules (no longer taught)
    • COMPG013 - Market Microstructure
    • COMPGF01 - Financial Business Analysis and Project Management
    • COMPGC06 - Database Systems
    • COMP3C13 - Database and Information Management Systems
    • COMPB261 - Systems Architecture
    • COMPB11a - Introductory Programming in Miranda
    • COMPB400 - Introductory Programming in Fortran
    • Complexity and Intractability
  • Past Administrative Roles
    • Affiliate Tutor (2017-2020)
    • Careers Tutor (twice)
    • Founding Director, Financial Computing MSc Programme 2007-2012
    • Admissions Tutor, Financial Computing MSc Programme
    • Admissions Tutor, Computer Science MSc Programme
    • Director, Computer Science MSc Programme
    • Chair of Services Committee
    • Publications and Publicity

Christopher D. Clack
Department of Computer Science
UCL
Gower Street
London
WC1E 6BT