← Back to my teaching page.

Teaching Philosophy

Here are a few core beliefs that shape my teaching philosophy:

  1. Student behavior tends to fulfil to instructor expectations.
  2. There are no weak students, only unsuccessful instructors.
  3. My students will succeed, with or without me.
  4. Inclusion done well benefits all.
  5. The system that produced me was not an equitable one.
  6. My role models should look like my students.
  7. Hierarchical systems of education are flawed.
  8. Pedagogical improvement is possible, practical, and necessary.
  9. Teaching is an inherently political act.

To expound a bit on each of these:

Behavior and Expectations

If you worry that your students might be cheating and try to prevent that by locking things down, more students will cheat. If you don’t believe some groups of students will succeed, or even if you just worry more about whether they’ll do well, they’ll do poorly. Consciously or unconsciously, students pick up on your expectations for their behavior, and those expectations can and often do burden them relative to their peers. Whether the mechanism is stereotype threat, or their use of your expectation as a justification for their behavior, expectations alone can shape behavior. Accordingly, as an instructor, I need to practice the creation and maintenance of positive expectations. I need to trust my students, respect them, and believe they can succeed. And these things need to happen both in terms of course policies but also in terms of my private beliefs and especially my communications with other instructors. Of course, optimism and realism will conflict in some cases, and this is not an injunction to ignore students’ learning struggles. But even when learning is not happening according to plan, it’s important that I believe that my students can and will succeed in the end. Especially for students whose learning is not going well, if I end up doubting their ability to ultimately succeed, their chances of success will plummet. This relates closely to the next topic:

Dual Responsibility for Learning

In order to be a good game designer, one must be able to accept player feedback while taking complete responsibility for the outcome, even in cases where players do things completely unexpected. Since the designer is in complete control of the game system, there’s never a case where a player should be blamed for “playing wrong:” Instead, it is always possible and productive to ask the question: “What can I as the designer, in control of every aspect of the game, do better to help the player avoid gameplay patterns that aren’t fun?” The same principle is found more broadly in human-computer-interaction, and applies to teaching as well: Although learning outcomes are ultimately determined by both the student and the instructor, there is never a case where the instructor can’t adjust something about their teaching to help the student succeed.

Of course there are cases where the effort required for a particular intervention is unreasonable for the instructor, but the instant one blames a student for their failures, one stops trying to think of creative ways to help that student. If a student does poorly in your class, rather than dismissing them as a bad or weak student, you should view it as your own failure to educate that student, and you should attempt to imagine what conditions would have been required for you to succeed at that task instead. This exercise is actually incredibly fruitful in improving your teaching for all of your students, not just the ones who struggle.

At the same time, paradoxically, students should also be given full responsibility for their own learning. While as a teacher I need to view their learning outcomes through the lens of what I can do to improve them, students should not be denied agency or responsibility because that is disastrous for their short- and long-term learning. The set of things that students can do to improve their learning outcomes is often different from those an instructor can do, and the best results are achieved when both parties work together to address any problems that come up, and when both are fully invested in that process and take shared responsibility for the outcome.

Success is Abundant, Even When Learning Falters

Most of the students I teach will be broadly “successful” in life, no matter how well or poorly they do in my class. My teaching can certainly have a lot of influences in some cases over things like career paths, but I’m unlikely to be the reason that someone has an ultimately disappointing life. While trying to do the best I can to teach the content of my classes and help students succeed at learning that, it’s helpful to remember that even the students who fail my class will probably do fine in life overall. In some ways, it’s worth trying to focus on teaching broadly applicable skills and individual useful insights because of this, rather than trying to optimize the knowledge students gain if they succeed at everything in the class. Both of these goals are good, but I think we often focus exclusively on the latter, and this point helps control that focus.

Inclusion Pays Dividends

There’s a principle/movement called “Universal Design” which says that designing to be inclusive of everyone will have lots of unexpected benefits. The classic example is that curb cuts which let wheelchair users cross the street are also super helpful for travelers pulling wheeled luggage, and parents pushing children in strollers. When your design includes more people there will also be ways that people you weren’t thinking about benefit from the increased flexibility/simplicity/etc. A concrete example of this from my career is that in our intro class I implemented some audio-based exercises as alternatives to the drawing exercises we used to have. This change was necessary to make the class accessible for a Blind student, but over the years since many students have chosen to do the audio instead of drawing exercises for a variety of reasons, typically about 1/6–1/3 of every class. Some students struggle with getting left/right correct, which the drawing exercises depend on, while others just have trouble imagining paths in two dimensions based on drawing movement commands. The audio exercises still have commands for moving in pitch, volume, and time, but imagining their effects relies on slightly different cognitive skills. In designing to be inclusive of everyone, I ended up benefiting a big group of students, many of whom would never have been able to identify that audio alternatives would have been helpful if the drawing exercises were all that was available.

The System that Produced Me is Flawed

I think a “safe default” we often try to revert to is to teach in the same way that we were taught. We often even have favorite professors that we looked up to and want to try to emulate. While these instincts are often good, it’s important to remember the selection bias that comes from being a professor: we were successful within systems that still today include deep biases of various kinds, and what we liked may not be what is good for everybody (or even more important, what is most equitable when considering marginalized groups). In computer science especially, I think we currently do a mediocre job of teaching the fundamentals in our intro courses, letting those already predisposed to coding succeed while others fail, especially those who society labels as “probably won’t be good at CS” like women. Although it’s not perfect, we might contrast this with math education, where literally everyone is expected to be able to make quite a bit of progress, and the teaching techniques aim to make topics like algebra accessible to everyone.

Cultivate Diverse Role Models

When I was learning CS, almost all of the people mentioned in textbooks were white men. So were almost all of my professors. So was almost every figure in industry and academia that I looked up to. The people I might aspire to be like overwhelmingly looked like me, which is a quite comfortable and privileged position to be in. To prevent the opposite from happening to my marginalized students, I don’t need to find different role models for them. I need to find different role models for myself, so I can be genuinely excited about talking to my students about these people and demonstrate that they’re people everyone can look up to and try to emulate. This is especially pertinent as it turns out that some of the people who used to be role models for me no longer are because of their exclusionary behavior, which I could have predicted had I been more astute. For me, someone like Dr. Nicki Washington is an excellent role model. I see her messages to the SIGCSE mailing list and the work that her lab does and think “Wow, it would be so cool if I could do stuff like that.” Once I started to recognize some of the problems with bias and exclusion in the education system that produced me, I started to seek out people working on those problems, and that group of people turns out to be much more diverse than my old role models.

Hierarchy Undermines Education

I know this is quite controversial, but as an anarchist and just as an educator, I believe that the hierarchical “teacher imparts knowledge to students” model of education is inherently flawed. I’m certainly a bit hypocritical as I do lean on my authority as a professor in a few ways in the classroom, but I still do believe that a teaching environment where teachers are guides and learning is self-directed by students is preferable (and results in much more learning) than an environment where teachers dictate exactly what students must learn and when. This connects to some of my thoughts about grading (generally bad even though assessment is important). The many ways in which modern educational systems set up an essentially adversarial relationship between teachers and students (or at least allow the relationship to develop in this direction) are disastrous to learning. Similarly, when students see each other as competitors this also stifles learning.

I have found that it’s incredibly difficult to dismantle this hierarchy in just a single classroom. For example, if my class lets students self-define learning goals and self-assess progress, they may define very simple goals because the time pressure from their other classes has them in a mode where they want to spend as little time as possible on each class to earn a good grade. That’s not a healthy mode for them to be in, but I can’t single-handedly get them out of that mode when all of their other classes reinforce it. This doesn’t mean that I should give up on this idea or that it’s wrong, just that I’ve got to pick my battles and also consider the wholistic effect of the interventions I do choose.

In cases where you can successfully get students to learn based on their own motivations, I have seen better learning progress and the whole process is more fun for everyone.

Improvement is Possible

The issues with hierarchical and bias I’m outlining here are thorny ones, but it’s important to retain one’s belief that progress is possible, and even practical. Whether it’s new grading schemes or just different lesson plans for teaching core concepts, I think there are a ton of opportunities to improve how we teach right now (in computer science especially). I think that our current CS teaching methodologies will be considered hopelessly outdated within the next 25 years (NOT because of “AI”), and we need to develop new ones.

Teaching is Political

Teaching is an inherently political act, with “I’m just teaching skills/content and staying away from politics” really meaning “I’m letting my students know that I’m fine with the status quo and asking them to reinforce it.” Authors like Paolo Friere and bell hooks have a lot more to say (and more eloquently) than I do here, but it’s necessary to remind myself that not only do my politics (like this teaching philosophy) shape how/what my students learn in subtle ways they can’t easily trace, but either their presence or absence in the classroom will reflect on how my students see me as a professor and see the subject I’m teaching.