University courses
NC State University
Jan–May 2026
Introduction to Programming (CSC 113)
Co-Instructor · 250+ students
Co-taught this introductory MATLAB course with Dr. Lina Battestilli. Delivered selected lectures, designed active-learning activities, co-led weekly meetings for 16–18 undergraduate TAs, and co-wrote guidance on appropriate GenAI use.
Preparing the Professoriate Fellow (2025–2026), including a Fall 2025 course audit; Mentored Teaching Fellow (Spring 2026).
May–Aug 2026
Discrete Mathematics (CSC 226)
Teaching Assistant · 22 students
Delivered three lectures and supported students through grading and office hours.
May–Aug 2023
Introduction to Computing Environments (E 115)
Instructor · 58 students
Coordinated curriculum implementation, student support, and a team of teaching assistants for this hybrid course.
Jan–May 2022
Automated Learning and Data Analysis (CSC 422/522)
Teaching Assistant · Approximately 100 students
Designed coding and written assessments, graded coursework, and held office hours.
Aug–Dec 2021
Data Structures and Algorithms (CSC 316)
Teaching Assistant
Supported students through office hours and graded assignments and exams.
K–12 teachers & outreach
Summer 2026
ExLAIM
Program Lead · Six-week co-design program
Led nine K–12 teachers and seven undergraduate developers in building classroom AI tools, using proposal discussions, progress presentations, and peer testing to support their collaboration.
Jun 2023–
Jun 2024
How to Integrate LLMs into K–12 Classrooms
Co-Instructor and Mentor
Co-designed and co-led three iterations of a one-week professional development program on responsible classroom use of ChatGPT. The workshop materials are openly available for other instructors to adapt.
Jul 2022
Art, Coding, Action!
Teacher and Curriculum Consultant · 20+ high school students
Led a one-week block-based programming camp in which students created games and art in Snap!, with worked examples built into the activities.
Teaching approach
Evaluation-first learning
I prioritize giving students practice judging solutions, not only producing them, since they can now generate solutions on demand. In CSC 113, I designed a Prompt–Observe–Explain activity that starts away from code: pairs prompted AI to make a short piece of music, wrote predictions before hearing it, and recorded what was present, absent, and surprising in Top Hat, which kept quieter students in the conversation.
I then walked students through mapping each step onto coding with AI: state requirements, predict the result, run it, revise, and explain why it worked or failed. This way, they practiced judging AI output with the same steps they later applied to their own programs.
Collaborative reasoning
I prioritize having students reason together before they reason in front of the class. In my first lecture as co-instructor of a 250+ student course, I asked students to share their reasoning and met silence. In the second, I had them talk in pairs first, and the room opened up: trying an answer with a peer made students more willing to share it with the class. I rely on pair talk because students learn more by explaining and building on each other’s reasoning than by listening (the ICAP framework), and it takes little class time even at this scale.
Modeling, scaffolding, and articulation
Worked examples helped me more than anything else when I was learning to program, and I teach with them for the same reason: they let learners see an expert’s choices and checks, step by step. I lean on them most in first courses, where beginners benefit most. In a one-week camp I led for 20+ high school students, we built worked examples into every activity, and more than 80% of daily feedback responses said the examples and activities helped students grasp the material.
I also give beginners support that does part of the work for them, so they can focus on the rest. I saw this in my own research with middle schoolers: those who got Parsons problems, the blocks of a correct program in scrambled order, reached better results in less time and ran their code more often. The scaffold took away the search for blocks and left them more time to test their ideas.
GenAI can now produce the code, so a working program no longer tells me whether a student understands it. That is why I ask students to explain their own work. In CSC 113, group projects included individual walkthrough videos in which each student explained the code, and they showed me what each student understood, not just what the group produced. Cognitive apprenticeship calls these three practices modeling, scaffolding, and articulation, which make an expert’s thinking visible to students, and theirs visible to me.