y experiences as a student, TA, and teacher over the last decade have shaped my views of what makes a good educator. While at Harvey Mudd College, I was a tutor for a variety of computer science courses, and at Northwestern I was a TA for four years, receiving my department's TA of the year award for the 2015/2016 academic year. I also directly taught small section summer courses in linear algebra, multivariable calculus, and single variable integral calculus while at Northwestern. Now at Duke, I have had the opportunity to create two new classes: a graduate level algorithms course for the Department of Electrical and Computer Engineering with over 100 students from their masters program, and a small trial section for an introduction to programming course aimed at undergraduate mathematics majors. Outside of the classroom, I have been a private tutor for several students over the years, and I have participated in outreach programs where we gave scientific talks for advanced, underrepresented minority high school students. Throughout these experiences, I have assessed firsthand a variety of teaching approaches while managing both small discussions and large lectures, and designing new courses.

For me, the essential pillar of good teaching is student engagement; where students actively participate in the course. This engagement begins in the lectures where many of the critical ideas are first introduced. At first I gave chalk-based lectures. But then students asked me to provide electronic notes since they sometimes had trouble following lectures while so focused on taking notes. Now I provide electronic presentation slides to students before lecture. This way I lecture while facing my students, and use standard public speaking methods for maintaining attention: movement, gesticulation, vocal inflection, cadence, and, critically, eye contact.

Working example problems is an important part of my teaching process. I prefer to do this live on the board, later providing students with annotated slides of the worked examples. My students have told me that I am very good at expressing complex material through simple ideas. A big part of this is my in-class examples, and students often ask me for even more worked examples in their course feedback. When demonstrating a new technique, I choose examples simple enough to work through on the board, while also being effectively instructive. When working examples in class, I take a Socratic approach, prompting the students to provide the next step. This promotes student engagement, since they tend to ask more questions during these examples. My students have provided positive feedback about my willingness to address these questions in class, and I make an effort to prompt for questions throughout my lectures.

Student engagement is also served when I take a little lecture time to discuss concepts beyond the precise subject of the course. I give the students a glimpse into the complex applications of the material they are learning, emphasize the importance of that material, and break up particularly dense or repetitive portions of the course. For example, when introducing the dry subject of Riemann sums in single variable calculus, I have students think about how a computer might evaluate an integral, and how the different endpoint rules and other methods we discussed relate directly to numerical integration techniques used in my research. In another recent example, I noticed my algorithms students were getting lost and not asking questions during our discussion of undecidable problems. This is a rather dense and confusing topic (Turing machines as inputs to other Turing machines), so this year I used an interlude to ask students where they thought humans fit in our hierarchy of computation. We then discussed the implications of the famous Turing test with them, and how they now had the skills necessary to understand it.

In my teaching career, I have also employed a variety of active participation techniques. Most involved a work sheet or a prepared problem set, and a standard approach was to have the students work on the problems in groups. I prefer having my students work on the boards so I can watch their mistakes as they occur and provide immediate feedback. But participation techniques can be ineffective if not done correctly. For example, I was once a TA for a set of courses that tried making very difficult worksheets, with the theory that it would force the students to work as a team to figure them out. In practice, these worksheets just made the students anxious, with only a handful students able to understand the problems. Therefore I try to choose problems that are challenging, but can still be worked through on time and provide my students with a sense of accomplishment when they write the answer on the board.

Another form of active participation I tried in my small summer classes involved calling individual students to the board to work through problems in front of the class. This sounds terrifying at first, but the purpose is to have only the students work through the problem. If the student at the board makes a mistake, it is up to the other students to help fix it. The idea is that this process helps the students become more confident in their work, while exposing them to the common mistakes and pitfalls. I take time to explain this goal before we start, and to remind them of it throughout the process. Meanwhile my role is encouraging the students while they are at the board and when they think they have spotted a mistake. In practice, this method worked well. After a few tries, the students themselves could see the value of this approach, and warmed up to it.

These board based active learning techniques are infeasible for very large classes like my algorithms course at Duke. In that class, I like to employ think-pair-share. I provide students with a prompt. They then have a few minutes to talk about it with their neighbors while I wander the room, listen in, and sometimes join discussions. When enough time has passed that a few groups have started to hit on the important concepts, I bring the class back together and have some of the students share what their group discussed.

Student engagement starts in the classroom, but should not end there. Office hours are a major part of my approach to teaching because they give me the chance to work one-on-one or in small groups with my students. I try to take a Socratic approach during office hours so that the students can end up answering the questions themselves, and feel an ownership over their solutions. Student give positive feedback about my office hours, the only complaint being long lines for my large algorithms class. This year, I have alleviated that problem by asking several of my TAs to join me, treating office hours more as a study hall session.

Because I believe that office hours are so important, and because my office hours have received

Another way I try to engage my students with the course material is the design of the homework assignments and projects. My homework assignments typically have a handful of easy, more standard problems, but also include a couple difficult, complex, and hopefully fun problems that force my students to really think. While this is not something that works for the limited time in-class active learning techniques, these problems fit much better for longer term homework assignments where the students have plenty of time to ask questions and seek help at my office hours. For projects, I like designing complex problems that can be broken down into a series of relatively easy tasks. This gives the students a clearly defined objective, while also providing them with that sense of satisfaction at having completed a rather complex task.

For me, the essential pillar of good teaching is student engagement; where students actively participate in the course. This engagement begins in the lectures where many of the critical ideas are first introduced. At first I gave chalk-based lectures. But then students asked me to provide electronic notes since they sometimes had trouble following lectures while so focused on taking notes. Now I provide electronic presentation slides to students before lecture. This way I lecture while facing my students, and use standard public speaking methods for maintaining attention: movement, gesticulation, vocal inflection, cadence, and, critically, eye contact.

**Using Examples**Working example problems is an important part of my teaching process. I prefer to do this live on the board, later providing students with annotated slides of the worked examples. My students have told me that I am very good at expressing complex material through simple ideas. A big part of this is my in-class examples, and students often ask me for even more worked examples in their course feedback. When demonstrating a new technique, I choose examples simple enough to work through on the board, while also being effectively instructive. When working examples in class, I take a Socratic approach, prompting the students to provide the next step. This promotes student engagement, since they tend to ask more questions during these examples. My students have provided positive feedback about my willingness to address these questions in class, and I make an effort to prompt for questions throughout my lectures.

**Going Beyond The Subject**Student engagement is also served when I take a little lecture time to discuss concepts beyond the precise subject of the course. I give the students a glimpse into the complex applications of the material they are learning, emphasize the importance of that material, and break up particularly dense or repetitive portions of the course. For example, when introducing the dry subject of Riemann sums in single variable calculus, I have students think about how a computer might evaluate an integral, and how the different endpoint rules and other methods we discussed relate directly to numerical integration techniques used in my research. In another recent example, I noticed my algorithms students were getting lost and not asking questions during our discussion of undecidable problems. This is a rather dense and confusing topic (Turing machines as inputs to other Turing machines), so this year I used an interlude to ask students where they thought humans fit in our hierarchy of computation. We then discussed the implications of the famous Turing test with them, and how they now had the skills necessary to understand it.

**Active Participation Methods**In my teaching career, I have also employed a variety of active participation techniques. Most involved a work sheet or a prepared problem set, and a standard approach was to have the students work on the problems in groups. I prefer having my students work on the boards so I can watch their mistakes as they occur and provide immediate feedback. But participation techniques can be ineffective if not done correctly. For example, I was once a TA for a set of courses that tried making very difficult worksheets, with the theory that it would force the students to work as a team to figure them out. In practice, these worksheets just made the students anxious, with only a handful students able to understand the problems. Therefore I try to choose problems that are challenging, but can still be worked through on time and provide my students with a sense of accomplishment when they write the answer on the board.

Another form of active participation I tried in my small summer classes involved calling individual students to the board to work through problems in front of the class. This sounds terrifying at first, but the purpose is to have only the students work through the problem. If the student at the board makes a mistake, it is up to the other students to help fix it. The idea is that this process helps the students become more confident in their work, while exposing them to the common mistakes and pitfalls. I take time to explain this goal before we start, and to remind them of it throughout the process. Meanwhile my role is encouraging the students while they are at the board and when they think they have spotted a mistake. In practice, this method worked well. After a few tries, the students themselves could see the value of this approach, and warmed up to it.

These board based active learning techniques are infeasible for very large classes like my algorithms course at Duke. In that class, I like to employ think-pair-share. I provide students with a prompt. They then have a few minutes to talk about it with their neighbors while I wander the room, listen in, and sometimes join discussions. When enough time has passed that a few groups have started to hit on the important concepts, I bring the class back together and have some of the students share what their group discussed.

**My Pledge To My Students**Student engagement starts in the classroom, but should not end there. Office hours are a major part of my approach to teaching because they give me the chance to work one-on-one or in small groups with my students. I try to take a Socratic approach during office hours so that the students can end up answering the questions themselves, and feel an ownership over their solutions. Student give positive feedback about my office hours, the only complaint being long lines for my large algorithms class. This year, I have alleviated that problem by asking several of my TAs to join me, treating office hours more as a study hall session.

Because I believe that office hours are so important, and because my office hours have received

__such positive feedback ,__I have ways to encourage students to attend. I tell my students that*if they are willing to put in the effort to seek me out and ask questions, then I am willing to work with them for as long as it takes*to understand the answers. For me, these are not just words: I follow through. I have often extended office hours to help a couple struggling students, have scheduled individual meetings with students who have asked, and have made myself available to answer questions after hours and over weekends through email or a course forum..**Learning Through Homework**Another way I try to engage my students with the course material is the design of the homework assignments and projects. My homework assignments typically have a handful of easy, more standard problems, but also include a couple difficult, complex, and hopefully fun problems that force my students to really think. While this is not something that works for the limited time in-class active learning techniques, these problems fit much better for longer term homework assignments where the students have plenty of time to ask questions and seek help at my office hours. For projects, I like designing complex problems that can be broken down into a series of relatively easy tasks. This gives the students a clearly defined objective, while also providing them with that sense of satisfaction at having completed a rather complex task.

**Course Evaluations:**

teaching_evaluations.pdf | |

File Size: | 1333 kb |

File Type: |

**Sample Lecture Notes:**

algs_bellmanford_lecture_notes.pdf | |

File Size: | 421 kb |

File Type: |

algs_greed_lecture_notes.pdf | |

File Size: | 981 kb |

File Type: |

**Sample Course Syllabus:**

algssyllabus.pdf | |

File Size: | 330 kb |

File Type: |

**Sample Homework:**

590_algshw5.pdf | |

File Size: | 108 kb |

File Type: |

290_ppimhw6.pdf | |

File Size: | 112 kb |

File Type: |

dwarves.pdf | |

File Size: | 58 kb |

File Type: |