Flipped Math & CS Classrooms

My teaching style is focused on students' learning cycles and uses techniques that engage students before and after each class meeting and that also complement classroom activities. Before each class meeting, students interact with course material to prepare them for the in-class activities. During class, we explore concepts from the course material, often through activities, and motivate future course material. These activities are intended to not only deepen students' understanding of the course material, but also to build students' confidence in their abilities. Students are given several opportunities for reflection on course material through assigned homework, reading assignments, and surveys. Students demonstrate their mastery of course material through individual homework, traditional assessments, such as quizzes and exams, and projects.

My teaching style has been influenced and informed by being a teaching assistant, participating in the Dartmouth College Department of Mathematics Teaching Seminar, teaching my own courses, participating in the Active Learning Institute (ALI) at the Dartmouth Center for the Advancement of Learning (DCAL), the Future Faculty Teaching Seminar at DCAL, and by participating as a fellow in the NSF GK-12 Project at Dartmouth College ``Fostering Scientific Creativity by Building Connections and Improving Science Communication Skills." For both my broad experience and my successful implementation of innovative teaching methods at Dartmouth College, I was awarded the Dartmouth Graduate Studies Teaching Award (formerly the Filene Graduate Teaching Award) in June 2013

Below is an example of my teaching philosophy applied to a Calculus course and below that are some of the techniques that I use in my courses to facilitate students learning at different stages of their learning cycles.

A Day in Math 8

Example of My Teaching Philosophy Applied to Calculus Classroom at Dartmouth College

Below is a brief description of what a day looks like in my classroom. Please click on the links to download the materials. Unless noted, the below materials are from January 11, 2012 when we learned about and worked with improper integrals.

Before Class

Students 'watch' a lecture via a pencast.

Because the other sections of Math 8 were not using pencasts, I kept the pencasts to about 25 minutes or less.

Note: Pencasts are best viewed with an Adobe Product. I have also been alerted to issues with playing pencasts on Linux machines.

During Class

Each class begins with a slideshow. These slideshows included information about the upcoming week in the course, the mathematician of the week, and the course learning outcomes. Note: The seventh slide did not appear until the next slide show.

There can be a brief lecture, if additional material needed to be addressed, or if students have emailed questions about the pencast. The bulk of class is spent doing collaborative learning. In addition to learning about improper integrals, this activity was designed to help students work in groups more effectively.


Over the course of Math 8, students gave feedback in two ways. The first method of feedback was asking students to write something on an index card: a comment, question, concern, or anything else. The second method was asking students to fill out a survey.

Note: This survey is from the January 13, 2012.

Elements of My Teaching Style

Before Class: Kickstart Students' Learning of New Material

Students first encounter course material before class meetings at their own pace. By requiring this first encounter with the course material to happen before class meetings, class meetings can now be used to explore topics more deeply as well as allowing for more focused class discussions addressing topics that are most challenging for the students.

Below are two examples of the techniques that I rely on to kickstart students' learning of new material before each class meeting:

  • Pre-Recorded Lectures for Math Classes

    For math classes with a traditional textbook, I create downloadable video documents that allow students to ``watch" the lecture before class. Students can pause the lecture, rewind and rewatch it, and can even speed it up, as each student individually needs or desires. I was inspired to incorporate pre-recorded lectures into my courses after a presentation at ALI by Professor of Chemistry F. Jon Kull, now Dean of Graduate Studies at Dartmouth College, who uses similar pre-recorded lectures in his introductory chemistry course. This technique allows and empowers students to interact with new material in the way that best suites their learning. For example, one student in my section first read the textbook, then listened to the lecture, and then re-read the book. Another student took notes in a separate notebook as she watched the pre-recorded lectures. One student had the lectures open on her laptop as she worked practice problems, referring to lectures as needed. My students also discovered further benefits for pre-recorded lectures, such as being able to rewatch relevant lectures again in the days leading up to exams or before the next course in the sequence.
  • Interactive Textbook Readings for Computer Science Classes

    For Comp 123 at Macalester, one of the textbooks is Think Python: How to Think Like a Computer Scientist an online interactive text book that allows students to both read course material and try implementing the material in small scripts embedded in the pages of the book. This book has multiple choice and true/false questions to check students conceptual understanding of the material. There are also excerises that allow students further programming practice.

During Class: Deepen Understanding & Build Confidence

Since students come to class having already interacted with the course material once on their own, the goals for class meetings are to olidify students' understanding of the new material and to continue building their confidence in their skills. To accomplish both of these goals, most of the class meeting time is spent working activities with short lectures responding directly to students' feedback on the before class work.

The activities during class make use of techniques and concepts from the material discussed in either the Pre-Recorded Lectures or the Interactive Textbook. Class activities are designed to guide students through answering challenging questions by breaking the solution into smaller pieces. These activities emphasize both the procedure involved in the solution, but also why each step of the procedure makes sense. These activities demonstrate that addressing questions in mathematics and computer science is a reflective process, not simply an answer, and can increase a student's confidence in one's own skills. These class activities also help me stay in touch with the needs of the whole class as well as the individual needs of each student; I can then tailor our class activities to their specific needs.

  • Collaborative Learning Activities for Math Classes

    Collaborative learning activities are group activities during class where students work together to deepen and hone their understanding of the course material. The small group settings provide opportunities for students who are more confident with the material to further their understanding by explaining the relevant concepts to others in their groups. For students who are less confident in their skills, these small group settings can be more comfortable space for asking peers for clarification. Additionally, these collaborative activities often expose when a student has simply memorized a procedure without understanding the conceptual underpinnings, as these students will have trouble effectively communicating their thought processes to other students. Based on anonymous in-class surveys during my Math 8 course at Dartmouth College, most students consistently agreed or strongly agreed that the collaborative learning activities helped them learn. One student wrote ``my favorite thing so far has actually been the hard examples in group work because they force me to learn." Another said ``I like working with people on the worksheets in class, and learning by doing problems in class."
  • Individual In-Class Labs & Activities for Computer Science Classes

    Individual in-class activities for computer science courses aim to deepen and hone students understanding of course material by encouraging students to experiment in an actual programming environment. During these activities, students are directed and encouraged to try various approaches to problems. By explicitly encouraging experimentation, students discover organically programming principles, common syntax issues, and how to address avoid programming missteps. This organic process naturally deepens students understanding of the course material. Additionally, this experimentation based activities also strengthen students' confidence both in their programming skills and in their programming process.
  • Paired-Programming Labs

    In addition to developing students' skills and confidence, the paired-programming labs emphasize students' ability to effectively communicate with others about code. In pairs, students act as either the navigator, dictating how a particular program should work, or the driver, typing the actual code as well as asking the navigator for further clarifications. In this restricted environment, students are challenged to discuss code in less technical language and are encouraged to learn from each other's programming styles.

Reflective Activities: Supporting the Learning Cycle

Reflection is an important part of learning, and therefore my teaching style makes use of several different techniques to both encourage and support students reflecting about their learning as well as the course and course material. Additionally, it is important for students to have low-stakes avenues to give me feedback about their learning and the course, such as before class reading reflections and in-class surveys. Below are a few techniques that I use in my courses to support various kinds of reflection.

  • Code Books for Computer Science Courses

    Students in my computer science courses are expected to maintain a code book throughout the course. This bounded notebook should contain all their reading notes, notes from class meetings and in-class activities, as well as all their scratch work for homework and in-class activities. The purpose of the code book is to give students a place to put all their ideas, questions and thoughts about the material for the course. These code books also give students permission to take notes that facilitate and support their unique learning. I collect the code note books a few times per term to gain further insight into my students' learning and coding process.
  • Mathematician/Computer Scientist of the week

    For both my mathematics and computer science courses, my students play a weekly game that challenge the notion that one's mathematical or technical abilities are innate. With a chocolate bar as the prize, students could have fun without having the game being tied to their grades. For my math classes, the game is called ``Mathematician of the Week" where students identify a mathematician from an image and share a fact about that person. One goal of this game is to show that mathematics has a long history and is a living, breathing subject. Students also witness that the concepts they are working to master in just ten-weeks have taken hundreds of years to develop and codify. For my computer science classes, the game is called ``Computer Scientist of the Week" where students identify a computer scientist from an image, identify a contribution to computer science made by that person, and share a fact about that person. One goal for this version of the game is to show that computer science is a very young field that is still rapidly growing and evolving. Additionally, students learn some context that has led to the technology that they are learning in my course and the technology that we all rely on in our daily lives.

To learn more about my teaching style and philosophy, please download my teaching statement.