“Tell me and I forget. Teach me and I remember. Involve me and I learn.” — Benjamin Franklin
I believe in hands-on learning and real-world applications. My courses emphasize practical problem-solving, collaborative work, and connecting theory to current challenges. I also try to create space for students to reflect on how their values and worldview shape the way they think about technology and its role in society.
Prerequisites, office hours, and course materials are posted on individual course sites. Advanced students interested in joining a research project are welcome to get in touch.
For educators: some of my course materials — including agent-based modeling tutorials, social computing datasets, and programming assessment rubrics — are available for adaptation. Email me if you’d like to discuss.
Currently Teaching — Spring 2026¶
CS112 — Introduction to Data Structures — Fundamental data structures and algorithms.
CS214 — Concepts of Programming Languages — Comparative study of programming language paradigms.
CS354A — Database Management Systems — Introduction to database design and management.
Previous Semesters¶
Fall 2025
CS112 — Introduction to Data Structures — Fundamental data structures and algorithms.
HNRS251 — Social Computing — Honors course exploring computational social science.
Spring 2025
CS112 — Introduction to Data Structures — Fundamental data structures and algorithms.
CS354A — Database Management Systems — Introduction to database design and management.
Fall 2024
CS112 — Introduction to Data Structures — Fundamental data structures and algorithms.
CS300b — Agent Modeling — Intermediate course on agent-based modeling and simulation, with opportunities to contribute to active research projects.