Courses taught

Courses I am teaching or have taught previously:

Most of the notes, assigmnents and reading material can be found on the Makerere University E-Learning Environment.

Graph Theory files


(Gnucleus peer network; human neuron connections; Tokyo subway map)

This is a short course introducing the basic concepts in graph theory, with an emphasis on algorithms and practical techniques for solving combinatorical problems.

Outline lecture notes
Week 1 notes: Introduction to graph theory
Week 2 notes: Trees, minimum spanning trees
Week 3 notes: Connectivity
Week 4 notes: Euler tours
Week 5 notes: Matchings and coverings
Week 6 notes: Colourings
Week 7 notes: Directed graphs
Week 8 notes: Network flow
Week 9 notes: Message passing in graphs

Practical files (requiring Python/Matplotlib/NetworkX):
Network flow example: flow.py
Matching example: matching.py
List of pairs for connectivity practical: pairs.txt
Shortest path example: shortestpathdemo.py
Sudoku solver with brute force search: sudoku_BruteForceSearch.py
Sudoku solver with generate and test: sudoku_GandT.py
Sudoku solver with arc consistency: sudoku_Arc_Consistency .py