
Below are the courses I've taught at various institutions, including my current UChicago schedule. Student evaluations are linked for past courses, where available.
If you are a student at UChicago interested in introductory computer science, please feel free to reach out to me for information! You may also find these two FAQs about the CS major and intro sequence helpful. If you are currently enrolled in a class of mine, refer to Canvas for course details and updates.
I am always looking for methods of engaging surface or "strategic" learners, as distinguished from "deep" learners by Marton and Säljö. I recognize a former version of myself in the strategic learner - optimizing one's time and studies with the intent to obtain high grades while minimizing effort, at the potential expense of a deeper understanding.
Many CS classrooms are well-suited to strategic learning. Programming assignments and projects are completed asynchronously, and lecture recordings are frequently offered for flexibility. To the extent that there is a trend away from in-person exams, it is for good reason - an exam poorly assesses the patience, resourcefulness, and large-scale design and critical thinking skills that a computer scientist needs to succeed in the real world.
But while deep learners will appreciate being assessed on their real programming skills, strategic learners may find themselves opting-in to a shallower experience, especially now that AI coding assistants have made it easier to produce convincing and correct assignments without spending the necessary time engaging with core concepts. As educators, if we do nothing in the face of these developments, then our in-person teaching effort is no more useful to students than a free asynchronous online course. I believe deeply in the value of in-person, collaborative learning, so I am always pursuing ways to authentically engage strategic learners in active learning.
I'm proud to have earned the Advanced Track certification (the highest possible) from Columbia CTL's Teaching Development Program for "sustained teaching development in graduate school."
I was one of 3 TA's in a staff of 32 for Yale's offering of CS50 to receive the inaugural SCAZ award (named in good humor after Professor Brian Scasselati) for "superior committment and zeal" in fulfilling my many TA responsibilities.