My name is Jeff, and 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).
This is my (much) less formal site.
* My [official faculty page](https://cs.uwaterloo.ca/about/people/j2avery) contains my contact information.
* My [GitLab homepage](https://git.uwaterloo.ca/j2avery) has code samples and related teaching materials.
## Teaching
Recent course offerings include:
| Course | Terms |
| ------------------------------------------------------------------------------------ | --------------------------------- |
| [CS 346: Application Development](https://student.cs.uwaterloo.ca/~cs346/) | W22, F22, W23, F23, W24 |
| [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.
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 |