Teaching philosophy
High expectations, structured support, and opportunities to grow.
I teach computer science with the conviction that ability is developed, not predetermined. Students enter college with unequal prior opportunities, but every student should encounter high expectations, structured support, and repeated opportunities to improve. I want students to leave my courses with stronger technical skills and the belief that they can continue growing as computer scientists and mathematicians.
Make the path into difficult ideas visible
I transferred into computer science as an undergraduate and entered graduate study with less preparation in formal theory than many of my classmates. In a formal languages course, a professor took the time to work through derivations and point me toward readings that filled gaps in my preparation. The intellectual standard stayed high; the path into the material became clearer.
That experience continues to guide my teaching. Confusion can signal a missing foundation, an unfamiliar explanation, or a need for more time. I respond by offering another representation, a targeted resource, or a manageable next step. I recognize students’ strategies, curiosity, effort, and progress instead of assigning fixed labels to their ability.
Make reasoning a shared activity
In a flipped-classroom format, I use class time for conceptual questions and problems that ask students to formulate, articulate, and revise their reasoning. Students first commit to an answer, explain and challenge their reasoning with peers, and then join a whole-class debrief.
My use of peer instruction is informed by Jacques Rancière’s principle of intellectual equality in The Ignorant Schoolmaster (1987). Students can contribute to one another’s learning. Someone who has just crossed a conceptual threshold may remember the misconception or missing assumption that made an idea difficult.
My role is to design the questions, listen for misconceptions, ensure participation, and connect students’ explanations to precise disciplinary language. Frequent, low-stakes polls help me decide when to move forward and when to revisit an idea.
Use AI to deepen thinking
I developed a website with a purpose-built large language model tutor. Students first formulate their own solution and then use the tutor to test their reasoning. The tutor is prompted to challenge assumptions, ask follow-up questions, and help identify gaps.
This creates an additional opportunity for individualized dialogue. It also asks students to examine and verify AI responses. My aim is to expand opportunities for thinking, feedback, and revision while keeping students’ intellectual work and the instructor’s judgment central.
Offer multiple routes to rigorous learning goals
I create visual explanations of difficult concepts, particularly in machine learning, using tools such as Manim and Remotion. Visualizations help learners develop the intuition needed to engage with mathematical and algorithmic reasoning.
I combine these representations with targeted resources and aligned challenge problems. Students who need support can revisit a foundation; students ready to extend a lesson can explore edge cases or connect an idea to a more advanced application.
Listen, reflect, and revise
I evaluate my teaching through an ongoing cycle of evidence and adjustment. Polls and discussions reveal misconceptions in real time. Student solutions, projects, and presentations show how learners apply and communicate their understanding. Open-ended feedback helps me understand students’ experiences and identify areas for improvement.
I have also mentored undergraduates whose research was presented at undergraduate conferences. Supporting that progression—from learning established ideas to producing and explaining work—reinforces my commitment to student agency.
Across introductory programming, machine learning, computer vision, and reinforcement learning, my goal is consistent: make rigorous computer science accessible and help students see themselves as people capable of continuing to learn it.