Elements of My Teaching Style
Facilitating students' learning at each stage of their learning cycles
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:

PreRecorded 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 prerecorded 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 prerecorded 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 reread the book. Another student took notes in a separate notebook as she watched the prerecorded 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 prerecorded 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 PreRecorded 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 inclass 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 InClass Labs & Activities for Computer Science Classes
Individual inclass 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.

PairedProgramming Labs
In addition to developing students' skills and confidence, the pairedprogramming 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 lowstakes avenues to give me feedback about their learning and the course, such as before class reading reflections and inclass 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 inclass activities, as well as all their scratch work for homework and inclass 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 tenweeks 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.