During 2021-22 I will teach the following courses:
- Artificial Intelligence Search (10 lectures; a sub-module of the module COMP2261 Artificial Intelligence)
This Level 2 sub-module shows how to translate problems into a search problem framework and then introduces generic problem-solving techniques such as: breadth-first search and uniform-cost search; depth-first search and depth-limited search; greedy best-first search; A*-search; iterative deepening; local search; hill climbing; simulated annealing; genetic algorithms; ant colony optimization; and particle swarm optimization.
- Interconnection Networks (10 lectures; a sub-module of the module COMP4177 Networks and their Structure)
This Level 4 sub-module explains the role of interconnection networks in distributed-memory multiprocessors. We consider four core aspects of interconnection networks: topologies (structure, properties, performance and cost); routing (algorithms, deadlock and livelock); flow control and switching (circuit switching, store-and-forward, cut-through, wormhole and virtual channel); and broadcasting (multi-node, single-node scatters and total exchanges). We concentrate on the hypercube, k-ary n-cube, cube-connected cycles and 2-ary n-flies topologies.
I usually also supervise Level 3 and Level 4 project students but not in 2021-22.
During 2022-23 I will teach the above two sub-modules as well as the following new module:
- Natural Computing Algorithms (20 lectures)
This Level-3 module builds on Artificial Intelligence Search (above) and provides an introduction to some of the facets of natural computing. Specific algorithms will be drawn from some of the following paradigms: evolutionary computing (e.g., genetic algorithms, evolution strategies, differential evolution); social computing (e.g., particle swarm optimizations, ant colony algorithms, bee foraging algorithms, glow-worm algorithms, bat algorithms); immunocomputing (e.g., artificial immune systems, dendritic cell algorithms, clonal expansion algorithms); developmental and grammatical computing (e.g., Lindenmayer systems, grammatical evolution algorithms, tree-adjoining grammars); and physical computing (e.g., simulated annealing, DNA computing, self-assembly systems).
I will also supervise Level 3 and Level 4 project students with most projects offered being within natural computing.
(updated 2nd January 2022)