Teaching
As a graduate of Queen's University Faculty of Education, I am passionate about computer science education at every level.
Here's a list of my current and past course offerings. I try to make sure course resources are freely available, so please don't hesitate to report broken links! (Bonus: enjoy the progression of my website designs.)
- CSC148 (Fall 2023): Introduction to Computer Science
- CSC111 (Winter 2023): Foundations of Computer Science II
- CSC209 (Winter 2023): Software Tools and Systems Programming
- EEB125 (Winter 2023): Introductory Computation and Data Science for the Life and Physical Sciences
- GGR274 (Winter 2023): Introductory Computation and Data Science for the Social Sciences
- CSC110 (Fall 2022): Foundations of Computer Science I
- ENG286 (Fall 2022): Literature and Data
- CSC111 (Winter 2021): Foundations of Computer Science II
- CSC110 (Fall 2020): Foundations of Computer Science I
- CSC165 (Winter 2020): Mathematical Expression and Reasoning for Computer Science
- CSC197 (Fall 2019): What, Who, How: Privacy in the Age of Big Data Collection
- CSC324 (Fall 2019): Principles of Programming Languages
- CSC165 (Winter 2019): Mathematical Expression and Reasoning for Computer Science
- CSC324 (Fall 2018): Principles of Programming Languages
- CSC148 (Fall 2018): Introduction to Computer Science
- CSC165 (Winter 2018): Mathematical Expression and Reasoning for Computer Science
- CSC324 (Winter 2018): Principles of Programming Languages
- CSC148 (Fall 2017): Introduction to Computer Science
- CSC209 (Fall 2017): Software Tools and Systems Programming
- CSC165 (Winter 2017): Mathematical Expression and Reasoning for Computer Science
- CSC148 (Fall 2016): Introduction to Computer Science
- CSC263 (Fall 2016): Data Structures and Analysis
- CSC209 (Winter 2016): Software Tools and Systems Programming
- CSC148 (Fall 2015)
- CSC324 (Fall 2015): Principles of Programming Languages
- CSC343 (Winter 2015): Introduction to Databases
- CSC324 (Winter 2015)
- CSC324 (Fall 2014)
- CSC148 (Fall 2014)
- CSC236 (Winter 2014): Introduction to Theory of Computation
- CSC165 (Summer 2013)
Course Notes
Here are the latest versions of the course notes I have written over the years. Please feel free to contact me with any typos and corrections you find!
- CSC110, Foundations of Computer Science I, and CSC111, Foundations of Computer Science II (co-authored with Mario Badr)
- CSC148, Introduction to Computer Science
- CSC165, Mathematical Expression and Reasoning for Computer Science (co-authored with Toniann Pitassi)
- CSC236, Introduction to the Theory of Computation
- CSC263, Data Structures and Analysis
- CSC324, Principles of Programming Languages