Communication Networks, Combinatorial Algorithms.
My research interests lie in designing computational tools, protocols, mathematical models, and combinatorial algorithms with guaranteed performance measures for the design and analysis of computer networks. Recent projects include:
The first of two courses on algorithm design and analysis, with emphasis on fundamentals of searching, sorting, and graph algorithms. Examples include divide and conquer, dynamic programming, greedy methods, backtracking, and local search methods, together with analysis techniques to estimate program efficiency. Prerequisites: CMPUT 175 or 275 and CMPUT 272; one of MATH 100, 113, 114, 117, 134, 144, 154, or SCI 100.Fall Term 2021
Introduction to computer communication networks; protocols for error and flow control; wired and wireless medium access protocols; routing and congestion control; internet architecture and protocols; multimedia transmission; recent advances in networking. Prerequisites: CMPUT 201 and 204 or 275; one of CMPUT 229, E E 380 or ECE 212; and STAT 252 or 266.Winter Term 2022
Introduction to the structure, components, and concepts behind modern general-purpose operating systems. Processes: process state transitions; operations on processes; interrupt processing; multiprocessor considerations; resource allocation; synchronization; critical sections and events; semaphores; deadlock: avoidance, detection, and recovery; memory management; virtual memory; paging and segmentation; page replacement strategies; working sets; demand paging; process scheduling; scheduling algorithms; file system functions; file organization; space allocation; virtual machines. Prerequisites: CMPUT 201 and 204, or 275; one of CMPUT 229, E E 380 or ECE 212.Winter Term 2022