Teaching Philosophy

“We need to do away with the myth that computer science is about computers. Computer science is no more about computers than astronomy is about telescopes, biology is about microscopes or chemistry is about beakers and test tubes. Science is not about tools, it is about how we use them and what we find out when we do.”

– Micheal R. Fellows and Ian Parberry

Why do students think computer science is about computers? Due to the scarcity of K-12 computer science education, many students’ ideas about computer science are grounded only in what they’ve seen in popular culture, leading to a wide array of misconceptions. Contrary to popular belief, computer security is not principally concerned with defending against hackers rapidly typing inscrutable symbols. Artificial intelligence is not principally concerned with creating anthropomorphic robots who, if they cannot love, can at least pass the Turing test.

As an educator, I seek to strip away these preconceptions, and to show students that while computer science may be more mundane than its Hollywood depiction, it is even more wondrous and exciting, because it teaches a new way to think.

Unfortunately, many computer science classes fall victim to the mode of thinking criticized by Fellows & Parberry in the quote above. These classes proceed linearly through the chosen course material, presenting each algorithm or technique as an isolated tool to be added to the student’s toolbox.

In contrast, my goal is for students to be able to look at any problem they encounter in the world like the Necker cube shown below. Students should see how a problem can, like the cube, be viewed in different ways through a shift in perspective, and should understand the relationships between those perspectives.


To foster this way of thinking, I require students to reflect deeply on course material through both expository and persuasive writing. This reflects my belief that development of writing skills is crucial for computer science students. While some tout the ability to break down problems computationally as the “new literacy,” students will need to master “traditional literacy” regardless of whether they go on to become researchers, educators, programmers, or elect not to continue in computer science at all.

In addition to encouraging deep reflection through structured writing, I also strive to promote student understanding by providing concrete groundings to theoretical concepts whenever possible. In the classroom this is effected through exercises which demystify concepts by showing them to be straightforward and intuitive. For example, in the Artificial Intelligence course I co-designed and co-taught, students learned about Constraint Satisfaction Problems (CSP) by designing crossword puzzles and then analyzing the strategies they used in that process. Students learned about approximate inference by playing a novel take on Clue which simulated Gibbs sampling. Outside the classroom, I try to design programming assignments which provide concrete computational groundings without burdening students with busywork, i.e., coding for coding’s sake. For example, after the in-class crossword puzzle exercise, students were asked to to implement CSP heuristics to improve the performance of an automatic crossword creator.

In designing both programming assignments and in-class exercisese, I try to find ways to apply course material to domains beyond the sciences. Skills such as computational modeling are becoming important in suprisingly diverse areas, from literary analysis and sociology to history and archaeology. Emphasizing the power which both computational thinking and computational techniques can bring to these areas, a movement known as the “Digital Humanities,” not only serves to expand the horizons of students in STEM fields but also to hook the interest of students of other backgrounds. Diversity in the classroom is an asset which can be exploited to help students discover other ways to view the Necker cubes of their academic and personal lives.

Finally, central to my teaching philosophy is the belief that learning starts in the classroom but does not end there. I seek to make students aware of research opportunities where they can further investigate the material they’ve learned in class, and encourage them to view their classmates not only as study-buddies but as potential teammates for collaboration outside the classroom. I would not be where I am today were it not for the four summers of research I was lucky to take part in as an undergraduate at Hamilton College, and during my time as a Masters and PhD student at Tufts I had the good fortune to mentor many undergraduate research assistants, some of whom have gone on to graduate school themselves. I find the process of mentoring students to be exciting; undergraduate research is not about recruiting students to serve as research tools, but rather how we can share the world of research with our students, and when we do, what we can discover together.

Leave a Comment