I have had the privilege to interact with students of all ages in a variety of teaching roles, all of which have shaped my philosophy on teaching. My experience includes instructing college courses, serving as a teaching assistant in labs, leading outreach activities, and crafting curriculum for independent learners. Additionally, the domains I have taught have varied, including human-computer interaction, database systems, and introductory programming. Below are more detailed descriptions of these experiences. A complete overview of course I have taught can be found in my CV.


Instructor Experience

Homeschool CS Elective, Madison, WI
I worked as a computer science tutor for a local high school student. After passing the AP CS A exam as an eighth grader, I worked with this student twice a week during the 2012-2013 and 2013-2014 school years on advanced computer science topics, including introductions to data structures, algorithms, GUIs, computational photography, compilers, and AI. My goal in this work was to keep this student challenged, equipping him with the skills necessary to implement his innovative ideas.


Introduction to Human-Computer Interaction, University of Wisconsin–Madison
Introduction to Human-Computer Interaction (CS 570) covers basic principles and applications of designing for the human-computer interaction experience. The course was taught through a series of lectures, paper readings, and course projects. As the instructor for this course in spring 2012, I was responsible for planning the curriculum, assigning homework and projects, preparing and grading exams, and advising for 10 groups every five weeks, with 3 students per group.


Grandparents University, University of Wisconsin–Madison
Grandparents University (GPU) is a two day program where grandparents and their grandkids (ages 8-14) pick a topic to “major” in. The social robotics major was offered for the first time in the summer of 2011. I prepared curriculum that was appropriate for grandkids while still engaging grandparents using a combination of presentations, videos, hands-on activities and programming with Lego Mindstorms. I taught all three sessions of social robotics for GPU in 2011 and 2012, and the first and third session in 2013. You can see pictures for 2013 [session I and session III], 2012 [session I, session II, and session III] and for 2011 [session I, session II, and session III]. Wisconsin News also has an article on GPU across campus.


Global Wisconsin Idea Program, University of Wisconsin–Madison
The Global Wisconsin Idea Program aims to bring together academically gifted high school students from China and America to study emerging technologies for a month. As part of their robotics curriculum, I put together a two day lesson in social robotics. The first day covered the concept of social robotics and involved discussion amongst the students of how robots are viewed in their respective cultures. The second day had the students work together to implement social behaviors on Lego Mindstorms. You can read more about my two days of teaching in the summer of 2011 here and here.


Middle School CS Elective, Madison, WI
I prepared and taught an elective computer science and programming curriculum for two middle school boys at Cherokee Heights Middle School during the spring semester of 2011. My two students were each interested in programming, but had drastically different backgrounds with computer science. Since I was responsible for teaching both students during the same time period, I created separate, self-guided curricula for each of them according to skill level. During our lessons, each student would have points built into their study that required them to show me their program or talk with me about a concept, allowing me to effectively balance each students' needs while ensuring they were mastering the material.


Teaching Assistant Experience

Introduction to Human-Computer Interaction, University of Wisconsin–Madison
Introduction to Human-Computer Interaction (CS 570) covers basic principles and applications of designing for the human-computer interaction experience. The course was taught through a series of lectures, paper readings, and course projects. As the teaching assistant for this course in spring 2011, I was responsible for grading reading quizzes, homework, and projects, as well as holding weekly office hours and facilitating team discussion during class. I would occasionally lead the lecture when the professor was unavailable.


Introduction to Programming, University of Wisconsin–Madison
Introduction to Programming (CS 302) is the first course in a sequence of fundamentals courses in the computer science department, covering introductory programming techniques with students in Java. I lead three lab sections, helping students learn to apply lessons covered earlier in class to practical assignments. I also helped grade homework assignments and held office hours.


Introduction to Database Systems, Rose-Hulman Institute of Technology
Introduction to Database Systems (CSSE 433) covers introductory database concepts in terms of the relational model, such as ER diagrams, data modeling, indexes, and transactions, as well as learning how to use Microsoft SQL. My primary responsibilities were grading homework and holding weekly office hours. In addition, I was in charge of preparing two labs during the quarter, which included updating lab instructions, helping out during the lab sections, and then grading the labs.