I am a computer science PhD student, with background in Pure and Applied Mathematics. My journey from being a major in Mathematics to becoming a researcher in CS is fueled by my passion for problem solving and programming. I am most enthusiastic about combining tools from mathematics and theoretical computer science to come up with solutions to real-world problems.
As much as I enjoy programming, I also derive joy in teaching it, most especially the essential components that embodies programming (computational thinking, problem solving, etc.). So when I am not working on my research, you can find me in the CS undergraduate lab at the Boyd Orr building where I spend time guiding the students as they explore the world of programming.
I am also very passionate about using my skills to help people. In my spare time, I find myself reflecting on how best to inspire and pass on my computing skills to young Africans studying in a STEM related field, with the hope that they can also grow to become creative thinkers. Consequently, they can contribute to pushing Africa forward on the frontiers of science and technology. All of these thoughts and reflections led to PWSAfrica - an initiative focused on empowering scientists in Africa with basic programming skills.
In my spare spare time, I spend some time taking care of my mental health at the University gym. I mostly find myself heading to Powerplay on Level 2 for weighlifting, and when I'm feeling too lazy to think about a workout routine, I join some of the fitness classes (which includes, Kettlebells, FortyFive, Roar, Core15, Box15, ... ).
My research interests lie mainly in the area of Algorithms and Complexity. At present, I am working on the design of efficient algorithms for matching problems, which arise when we seek to match a set of agents to a set of objects (e.g., kidney donors to patients, junior doctors to hospitals, and students to projects). Typically, agents may have ordinal preferences over a subset of objects, and there may be constraints on the number of agents that each object can accommodate. A natural goal is to find an optimal allocation of agents to objects, according to the given preferences and constraints. A practical application of matching problems, where university departments seek to allocate students to dissertation projects, is referred to as the Student-Project Allocation problem (SPA). For my PhD, I am focused on generating new structural and algorithmic results for variants of SPA.
hopcroftkarp 1.2.4: A Python library that finds a maximum matching in bipartite graphs.