I'm a Continuing Lecturer in the [Cheriton School of Computer Science](https://cs.uwaterloo.ca/), at the [University of Waterloo](https://www.uwaterloo.ca/). I regularly teach human-computer interaction, software engineering and programming courses, and I also work as an [undergraduate advisor](https://cs.uwaterloo.ca/advising). Other relevant links: * My [official faculty page](https://cs.uwaterloo.ca/about/people/j2avery) links to my research profile, and includes contact information. * My [GitLab homepage](https://git.uwaterloo.ca/j2avery) has code samples and teaching materials. ## Teaching Recent course offerings include: | Course | Terms | | ------------------------------------------------------------------------------------ | ------------------------------------ | | [CS 346: Application Development](https://student.cs.uwaterloo.ca/~cs346/) | W22, F22, W23, F23, W24, (F24) | | [CS 349: User Interfaces](https://student.cs.uwaterloo.ca/~cs349) | W20, F20, W21, S21, F21, S22, S23 | | [CS 116: Introduction to Computer Science 2](https://student.cs.uwaterloo.ca/~cs116) | W21 | ## Research My interests span programming practices, software engineering, and human-computer interaction. I’m most interested in: - Software architecture and design, particularly the design of interactive systems. - Input and interaction technologies; multi-touch and gestural interaction. - Optimizing systems for common, everyday tasks; personal computation. - Computer science education and pedagogy. My publications are listed on my [Google Scholar profile](https://scholar.google.com/citations?user=cO7VNP8AAAAJ&hl=en). ## Education | Degree Awarded | Institution | | ----------------------- | ---------------------- | | Ph.D Computer Science | University of Waterloo | | B.A.Sc Computer Science | McMaster University | | M.A Anthropology | McMaster University | | B.A Anthropology | McMaster University |