Teaching

Introduction to machine learning

Three part lecture given for the PASCAL Artificial Intelligence Bootcamp, 2011. Video lectures available online, also code and data for the speech classification example.

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

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

Philosophy of Computing reading list

eschercube

2007 course for new computing PhD students at Makerere University (with input from Charles Fox, University of Oxford).

Models and representation

  • Models in Science (Stanford Encyclopedia of Philosophy)
  • What is Occam’s Razor? (class handout).
  • Domingos (1998), Occam’s Two Razors.
  • Harman (2003), Inductive Simplicity and the Matrix.
  • Davis et al (1993), What is a knowledge representation?
  • Linhares (2000), A glimpse at the metaphysics of Bongard problems.
  • Bensusan (1998), God doesn’t always shave with Occam’s razor.

Minds and machines

  • Turing (1950), Computing Machinery and Intelligence.
  • LeCun, Malik, Russell, Sutton (2005), “Towards Human-Level AI” workshop slides.
  • Chalmers (1995) Facing up to the problem of consciousness.
  • Dennet (1995) Facing backwards on the problem of consciousness.
  • Hut and Shepard (1996), Turning the Hard Problem Upside Down and Sideways.
  • Harman (2000) Practical aspects of theoretical reasoning.
  • Nilson (2004), Human level AI? Be serious!
  • Nilson (2002), Considerations regarding human level AI.
  • Schmidt et al (2006) Sense and Nonsense.

Causality and Bayes

  • An intuitive explanation of Bayesian reasoning. (class handout).
  • Brown (2002), Bayes’ theorem and the philosophy of science.
  • Griffiths and Tennenbaum (2006), Statistics and the Bayesian mind.
  • Pearl (2003), Statistics and Causal Inference: A Review.
  • Goodman’s ‘New riddle of Induction’.
  • Spirtes et al (2004), Causal Inference.