In Winter 2014, after being a sessional lecturer for a few years, I accepted a full-time faculty position as a Lecturer at UW. This position focuses on teaching and CS academic advising with committee work.
CS 135 Files
CS 246 Files
CS 341 Files
Teaching
Fall 2026
- CS 135 Designing Functional Programs (3 sections)
If my count is correct, as of the completion of S26, I have reached 100 courses at UW and 115 overall.
| Course | Terms Taught (sections) | Total Terms | Total Sections |
| CS 115 | W11 (2) | 1 | 2 |
| CS 135 | F25 (3), F24 (3), F23 (2), F16 (3), W16 (3), F13 (3), F12 (1) | 7 | 18 |
| CS 136 | W21 (2), W18 (3), S17 (3), W15 (2), F14 (2), W13 (2), S12
(2), W12 (2), S11 (1) | 9 | 19 |
| CS 230 | W10 (1) | 1 | 1 |
| CS 240 | W26 (1), S24 (3), S22 (2), W22 (2), F21 (2), S21 (2), F20
(2), W20 (1), W19 (1), F17 (3), W17 (1), S16 (2), S13 (3) | 13 | 25 |
| CS 241 | S26 (3), W26 (1), W20 (1), F19 (2), S19 (2), W19 (1), F18
(2), F10 (1), S10 (1) | 9 | 14 |
| CS 246 | S25 (2), S23 (2) | 2 | 4 |
| CS 341 | W26 (1), W25 (2), F22 (2), S15 (2), S14 (2), W14 (2) | 6 | 11 |
| CS 360 | W17 (1), F12 (1), S12 (1), S11 (1), W06 (1) | 5 | 5 |
| CS 466/666 | S16 (1) | 1 | 1 |
| WLU | CP 213, CP 264 CP 102 | 8 | 11 |
| LakeheadU | CS 1431, Math 1281 I & II, CS 0315 | 3 | 4 |
| Totals for UW | 45 | 100 |
| Total for all universities | | 115 |
Other intersting stats: 18 terms of 3 or more courses (most was 5 in F13 - 3 at UW, 2 at WLU), 2 terms with 3 different courses (W26, F12).
Spring 2026
- CS 241 Foundations of Sequential Programs (3 sections)
Winter 2026
- CS 341 Algorithms
- CS 241 Foundations of Sequential Programs
- CS 240 Data Structures and Data Management
Fall 2025
- CS 135 Designing Functional Programs (3 sections)
Spring 2025
- CS 246 Object-Oriented Software Development (2 sections)
Winter 2025
- CS 341 Algorithms (2 sections)
Fall 2024
- CS 135 Designing Functional Programs (3 sections)
Spring 2024
- CS 240 Data Structures and Data Management (3 sections)
Fall 2023
- CS 135 Designing Functional Programs (2 sections)
Spring 2023
- CS 246 Object-Oriented Software Development (2 sections)
Fall 2022
- CS 341 Algorithms (2 sections)
Spring 2022
- CS 240 Data Structures and Data Management (2 sections)
Winter 2022
- CS 240 Data Structures and Data Management (2 sections)
Fall 2021
- CS 240 Data Structures and Data Management (2 sections)
Spring 2021
- CS 240 Data Structures and Data Management (2 sections)
Winter 2021
- CS 136 Elementary Algorithm Design and Data Abstraction (2 sections)
Fall 2020
- CS 240 Data Structures and Data Management (2 sections)
Winter 2020
- CS 240 Data Structures and Data Management
- CS 241 Foundations of Sequential Programs
Fall 2019
- CS 241 Foundations of Sequential Programs (2 sections)
Spring 2019
- CS 241 Foundations of Sequential Programs (2 sections)
Winter 2019
- CS 240 Data Structures and Data Management
- CS 241 Foundations of Sequential Programs
Fall 2018
- CS 241 Foundations of Sequential Programs (2 sections)
Winter 2018
- CS 136 Elementary Algorithm Design and Data Abstraction (3 sections)
Fall 2017
- CS 240 Data Structures and Data Management (3 sections)
Spring 2017
- CS 136 Elementary Algorithm Design and Data Abstraction (3 sections)
Winter 2017
- CS 240 Data Structures and Data Management
- CS 360 Theory of Computing
Fall 2016
- CS 135 Designing Functional Programs (3 sections)
Spring 2016
- CS 466/666 Algorithm Design and Analysis
- CS 240 Data Structures and Data Management (2 sections)
Winter 2016
- CS 135 Designing Functional Programs (3 sections)
Spring 2015
- CS 341 Algorithms (2 sections)
Winter 2015
- CS 136 Elementary Algorithm Design and Data Abstraction (2 sections)
Fall 2014
- CS 136 Elementary Algorithm Design and Data Abstraction (2 sections)
Spring 2014
- CS 341 Algorithms (2 sections)
Winter 2014
- CS 341 Algorithms (2 sections)
Starting Winter 2014 I have accepted a Faculty Lecturer position in the School of Computer Science at UW.
Fall 2013
- CS 135 Designing Functional Programs (3 sections)
- CP 102 Information Processing with Microcomputers (2 sections at WLU)
Spring 2013
- CS 240 Data Structures and Data Management (3 sections)
Winter 2013
- CS 136 Elementary Algorithm Design and Data Abstraction (2 sections)
- CP 102 Information Processing with Microcomputers (2 sections at WLU)
Fall 2012
- CS 360 Theory of Computing
- CS 135 Designing Functional Programs
- CP 102 Information Processing with Microcomputers (at WLU)
Spring 2012
- CS 360 Theory of Computing
- CS 136 Elementary Algorithm Design and Data Abstraction (2 sections)
Winter 2012
- CS 136 Elementary Algorithm Design and Data Abstraction (2 sections)
- CP 102 Information Processing with Microcomputers (2 sections at WLU)
Fall 2011
- CP 102 Information Processing with Microcomputers (at WLU)
Spring 2011
- CS 360 Theory of Computing
- CS 136 Elementary Algorithm Design and Data Abstraction
Winter 2011
- CS 115 Introduction to Computer Science 1 (2 Sections)
- CP 102 Information Processing with Microcomputers (at WLU)
Fall 2010
- CS 241 Foundations of Sequential Programs
Spring 2010
- CS 241 Foundations of Sequential Programs
Winter 2010
- CS 230 Introduction to Computers and Computer Systems
Fall 2009
- CP 213 Object Oriented Programming in Java (at WLU)
Winter 2006
- CS 360 Theory of Computing
Fall 2002
- CP 264 Data Structures in Java
Fall 2000
- CS 0314 Introduction to Computers for Engineers (at Lakehead University)
Summer 1999
- Math 1281 Discrete Mathematics I & II
Winter 1999
- CS 1431 Data Structures in C
Research
My primary research area is computational geometry with a focus on algorithms for morphing planar graph drawings. This area is also closely related to other areas such as graph drawing, computer graphics, and medical imaging.
Published in Refereed Journal
- Morphing orthogonal planar graph drawings, with Therese C. Biedl, Anna Lubiw, and Michael J. Spriggs, ACM Transactions on Algorithms 9.4 (2013), 29.
- Morphing planar graph drawings with bent edges, with Anna Lubiw, J. Graph Algorithms Appl. 15.2 (2011), 205-227.
- Disjoint clique cutsets in graphs without long holes, with E.M. Eschen, C.T. Hoang, and R. Sritharan, Journal of Graph Theory 48, 2005, 277-298.
|