## 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