Experience
2022
King's College London
Led funded research projects, developed software, conducted research, and taught as part of a tenured academic position focusing on the use of technology to support medical decision making.
2011
King's College London
Taught computer science topics alongside my doctoral studies and research. Regularly presented to classes of 350+ students, and received teaching awards for student engagement and support.
Education
2016
Doctor of Philosophy (Ph.D.) in Computer Science
King's College London
Thesis: 'Cyber Hide-and-Seek'. Explored strategies for network attackers and defenders by simulating their behaviour within a multi-agent (artificial intelligence), distributed research platform. Supervised by Professor Peter McBurney and Professor Michael Luck.
2011
Bachelor of Science (BSc) in Computing
University of Liverpool
Honours project: 'Social networking and information diffusion in automated markets'. Explored the impact of social interactions on the performance of market traders by simulating their behaviour within a multi-agent, distributed research platform. Supervised by Professor Peter McBurney and Professor Katie Atkinson.
Talks
2Using screencasts to teach undergraduate programmingKing's Learning Institute, King's College London, 2017Programming at King'sKing's College London, 2016.
Students
13 · non-exhaustiveNamu-Ujin Natsagnyam
2017
Jahangir Alom
2017
Antonio López Martínez-Carrasco
2022
George Taylor
2025
Manik Aggarwal
2024
Kithia Ngigi
2023
Dengyi Yan
2023
Rishi Ganeshan
2023
Martin Hartt
2017
Mustafa Al-Bassam
2017
Teaching Software
6 reposopenai-serverSimplify interactions with local LLMs for teaching and demonstration purposes
jupyter-teachingAutomatically create and configure a collaborative Jupyter environment for teaching
document-markerA simple program to facilitate the visual marking of assignments.
ppa-serverServe data to students for use in student projects.
ppa-clientA small client-side API designed to enable the acquisition of assignment data.
coursework-generatorFramework to generate unique coursework assignments.
Lectures
25Types and Twilight (Yes, the vampire film)Principles of Health Informatics: Artificial intelligence and machine learningPrinciples of Health Informatics: Clinical decision support systemsPrinciples of Health Informatics: Evaluating medical softwarePrinciples of Health Informatics: Usability of medical softwarePrinciples of Health Informatics: Social networks, telehealth, and mobile healthPrinciples of Health Informatics: Communication systems in healthcarePrinciples of Health Informatics: Terminologies and classification systemsPrinciples of Health Informatics: Representing medical knowledgePrinciples of Health Informatics: Informatics skills - searching and making decisionsPrinciples of Health Informatics: Informatics skills - communicating, structuring, and questioningPrinciples of Health Informatics: Models, information, and information systemsProgramming in Java: Library ClassesProgramming in Java: ArraysProgramming in Java: Control FlowProgramming in Java: Combining ObjectsProgramming in Java: Organising Your CodeProgramming in Java: Getting StartedProgramming in Java: Storing DataProgramming in Java: IntroductionProgramming in Java: Why Object-Orientation?Programming in Java: Object and ClassesProgramming in Java: RecursionProgramming in Java: Arrays and Array ListsAn Introduction to Programming in Java: Arrays
Online Tutorials
35PPA 2016, Assignment 14: Feedback (Component MVC)PPA 2016, Assignment 14: Feedback (Regex and Date Formatting)PPA 2016, Assignment 13: Feedback (View and Controller)PPA 2016, Assignment 13: Feedback (Model)PPA 2016, Assignment 12 and Assignment 13 (Preliminaries): FeedbackPPA 2016, Assignment 13: Hints and TipsPPA 2016, Assignment 11: FeedbackPPA 2016, CWX Requirement 0: Brief (Version Control Part 2)Group selection using Team FeedbackPPA 2016, Week 14, Lecture Prerequisites, Version Control Part 1PPA 2016, Assignment 10: FeedbackPPA 2016, Assignment 9: FeedbackPPA 2016, Assignment 9: Hints and TipsPPA 2016, Assignment 8: FeedbackPPA 2016, Assignment 7: FeedbackPPA 2016, Assignment 7: Hints And TipsPPA 2016, The Class Interface and Encapsulation (Slide 119, Topic 4): Supplementary ExamplePPA 2016, Assignment 6: FeedbackPPA 2016, Static Methods and Fields (Slides 98 - 127, Topic 6): Supplementary ExamplePPA 2016, Assignment 5: FeedbackPPA 2016, Assignment 5: Hints and TipsPPA 2016, Assignment 4: FeedbackPPA 2016, Assignment 4: More Hints and TipsPPA 2016, Assignment 4: Hints and TipsPPA 2016, Assignment 3: FeedbackPPA 2016, Assignment 3: Hints and TipsPPA 2016, Assignment 2: FeedbackPPA 2016, Assignment 2: Hints and TipsModelling a Bank Account (8): Testing Transfer (Slide 85, Topic 4)Introduction to Object-OrientationTube - 4CCS1PRP - King's College LondonBattlefield - 4CCS1PRP - King's College LondonRoomba - 4CCS1PRP - King's College LondonSuperheroes - 4CCS1PRP - King's College LondonNoughts and Crosses - 4CCS1PRP - King's College London
Assignments
12drunkard2025 software sustainability workshop solution
robot2022 software sustainability workshop solution
weather2020 software sustainability workshop solution
ppa-minor-coursework-2016Programming exercises, 2016.
pra-minor-coursework-2016Programming exercises, 2016.
ppa-major-coursework-2017Programming project, 2017.
pra-major-coursework-2016Programming project, 2016.
prp-minor-coursework-2015Programming exercises, 2015.
pra-code-dojos-2016Group programming tasks, 2016.
prp-exercisesProgramming exercises, 2011 onwards. Many in draft form.
Tracking AliensArticle
Tracking SharksArticle