Teaching

MathSoc, the students' society of the Faculty of Mathematics at the University of Waterloo, awarded me 1995-96 Instructor of the Year.

Term Course Size Title
S17 CSE355 366 Intro Theory of Computation
S17 CSE555 6 Theory of Computation
F16 CSE355 350 Intro Theory of Computation
F16 CSE691 6 Interaction Testing Theory and Practice
S16 CSE355 275 Intro Theory of Computation
S16 CSE555 25 Theory of Computation
F15 CSE355 110 Intro Theory of Computation
F15 CSE551/591 135 Advanced Algorithms
S15 CSE555 49 Theory of Computation
F14 CSE355 132 Intro Theory of Computation
F14 CSE457/598 35 Formal Languages
F14 CSE550 45 Combinatorial Algorithms and Intractability
S14 CSE555 30 Theory of Computation
S14 CSE591/MAT591 25 Combinatorial Design Theory
F13 CSE355 82 Intro Theory of Computation
F13 CSE552 33 Randomized and Approximation Algorithms
S13 CSE355 60 Intro Theory of Computation
S13 CSE555 45 Theory of Computation
F12 CSE 420/598 64 Computer Architecture I
F12 CSE457/598 45 Theory of Formal Languages
S12 CSE355 100 Intro Theory of Computation
S12 (x3) ASU 101 19 The ASU Experience
F11 (x2) CSE301 55 Ethics in Computing
S11 CSE355 82 Intro Theory of Computation
S11 CSE591/MAT591 25 Combinatorial Design Theory
F10 CSE355 43 Intro Theory of Computation
F10 CSE552 17 Randomized and Approximation Algorithms
S10 CSE591 4 Perfect Hashing
S10 CSE457 8 Theory of Formal Languages
F09 CSE424 19 Systems Capstone II
S09 CSE301 55 Ethics in Computing
S09 CSE355 61 Introduction to Theoretical Computer Science
S08 CSE420 40 Computer Architecture
S08 CSE591 (online removed) 6 Interaction Software Testing
F07 CSE420/598 68 Computer Architecture
S07 CSE434 (online removed) 39 Computer Networks
S07 IEE598 (online removed) 26 Optimization II (Integer Programming)
F06 CSE355 55 Introduction to Theoretical Computer Science
S06 CSE591 (online removed) 7 Interaction Software Testing
S06,F05 CSE412/598 (online removed) 35 Database Management
F05 CSE 534 (online removed) 20 Advanced Computer Networks
F04 CSE434 (online removed) 27 Computer Networks
F04 CSE591 (online removed) 9 Network Reliability
F03 CSE434/598 (online removed) 55 Computer Networks
F03 CSE591/CBS598 (online removed) 14 Genomics: Sequencing and Mapping
F02(2) CSE310 80 Data Structures
S01 CS 103 (online removed) 30 Programming Languages
F00 CS201 (online removed) 33 Operating Systems
S00 CS 222 (online removed) 33 Computer Architecture
F99 CS 101 (online removed) 39 Computer Organization
F98 CS 266 (online removed) 23 Network Security and Cryptography
F97 CS 265 (online removed) 22 Computer Networks
S97 CS395 (online removed) 10 Cryptography
F96 CS243 (online removed) 17 Theoretical CS
96(1st) 415(CS).701 (online removed) 15 Network reliability
F95, F94, F92 C&O438/638 15 Combinatorial Computing
F94, F91 C&O434/634 14 Combinatorial design
S94 E&CE203 90 Discrete Math for Engineers
W94, F92, S89(twice), W88 C&O230 50 Introduction to combinatorics
W94, S88 (twice) C&O351 40 Network Flows
F92, F91, S91, S88 C&O454 30 Scheduling theory
F91 C&O750B/CS756 10 Topics on network reliability
S89 MATH 134b 100 Linear algebra
W89 MH371A 24 Discrete mathematics 1
W88 C&O380 12 Invention and discovery in mathematics
S87 CS766 14 Topics in network algorithms
S87, F86, S85 CS466/666 40 Analysis of algorithms
F86 CS234 150 Programming principles
F86 C&O739/CS756 15 Combinatorics of network reliability
F85 CSC2427F 8 Topics in graph theory
S85 CS756 17 Topological design of networks
S85, S84 CS450/650 35 Computer architecture
W85 CS435 30 Computer Applications
F84 CS462/662 20 Formal Languages and Parsing
F84 CS354/554 60 Software Systems
S84 CS766 12 Network Reliability: Algorithms and Complexity
F83 CMPT 419.3 3 Computability and Complexity Theory
F83 CMPT 416.3 12 Combinatorial and Geometric Algorithms
F83, W83 CMPT 230.6 70 Software Design
F83, F82, F81, F80 CMPT 882.3 3 Topics in the Theory of Computing
W83 CMPT 361.3 20 Theory of Computation 2
W83 CMPT 424.3 45 Computer Communication Networks
F82, W82, W81 CMPT 313.3 90 Software Design
W82 CMPT 419B 1 Introduction to Combinatorics
W82 CMPT 326B 70 Theory of Computation 1
F81 CMPT 427A 12 Analysis of Algorithms
F81 CMPT 212A 70 Assembly Language Programming
W81 CMPT 419B 5 Recursive function theory and computability
F80 CMPT 180A 240 Introduction to CS
F80 CMPT 375A 75 Computing for accounting majors
W80 CSC 208S 40 Assembly Language Programming
S79 CSC 258H 50 Computer Organization