Courses taught
Courses I am teaching or have taught previously:
- MCS7217 Pattern Recognition
- MCS7224 Computer Vision
- MCS7118 Advanced Programming
- MCS7116 Graph Theory
- CSC1201 Computational Mathematics II
- CSC2100 Data Structures and Algorithms
- MCS9102 Trends in Computer Science
- MCS9100 Philosophy of Computing and IT
Most of the notes, assigmnents and reading material can be found on the Makerere University E-Learning Environment.
(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