My sabbatical stretch goal: teaching high school CS

Sabbaticals are usually a time for faculty to escape from the daily grind of teaching and service to read, write, and discover new perspectives on their scholarship. Some people travel to other universities to immerse themselves in other cultures and ideas. Others go to industry to find new collaborators. Others still forego a full salary and just use it as time to recover from six exhausting years of modern tenure-track faculty life.

I decided it to use it to teach high school students computer science. Eek!

Now, I knew this would be crazy. I knew it wouldn’t be recovery time. And I knew it could be exhausting. At some earlier point in my career, I thought it might be fun to do it for a whole year of high school teaching, just to really stretch my mind, and support my pivot to computing education research. I eventually decided to reduce my ambitions, and instead teach a short six-week summer elective for the University of Washington’s Upward Bound program.

Upward Bound is a federally-funded program that helps first-generation college students prepare for and gain admission to college. Our program primarily serves south Seattle, which tends to be a lower socioeconomic class and higher racial diversity than the mostly white Seattle. This also fit with some of my sabbatical forays into privilege, giving me a chance to encounter students without most of the privileges I had as a high school student.

I won’t go into too much detail about the course itself, as I’m planning on publishing some work on data I’m gathering as part of the students’ experience. But I will say that it’s a web design course and I’m investigating the benefits of explicitly bringing ideas of community of practice and identity development into the classroom, teaching the students about privilege, imposter syndrome, stereotype threat, and prior knowledge. As I write this, I’ve just finished our third week, with three more weeks to go.

I’d like to share some observations I’ve made as a first time high school CS teacher. Most of these are going to read as pretty obvious to any one who’s done this before. The notable thing to me was how salient these issues have become in my mind.

  • There is a massive amount of prior knowledge required to successfully learn HTML and CSS. To name some of it: English, touch typing, spelling, case, the concept of files and file extensions, typography, the idea that browsers request files, what “quotes” are, the idea that content can be represented symbolically, the idea that content can retrieved by name, the concept of separating content from presentation, etc.
  • There’s nothing natural or obvious about any of this required prior knowledge. It’s all artificial and if students haven’t picked it up in classes or at home, they’re going to have to pick it up while they learn.
  • Some students need to spin in a chair to pay attention. Others need to make eye contact with the teacher. Most won’t pay attention unless they’re extremely motivated or extremely compliant. Using a student’s name gets their attention for a minute, but not much longer. The Gates Foundation was right: teacher classroom management skills are a fundamental prerequisite for effective teaching.
  • Most concepts in computer science and programming languages are incredibly boring and arbitrary to students, even when they’re placed in personally meaningful contexts. One of my students is deeply passionate about shoes and is therefore making a website about shoes, but even this isn’t enough to make the difference between a “div” and a “p” tag interesting.
  • Showing students a rich, authentic picture of the larger world and connecting it to their knowledge seems to be a really powerful way of motivating students to learn boring things. When I can draw a line between CSS class selector rules and the path to a job that might bring a students’ family out of poverty, that student will actively engage in learning.
  • Teachers are powerful. When I genuinely care about each student and their learning, and I show this to them, students respond with engagement, respect, and trust. When I can find the single statement of positive feedback that a student needs to change their self-concept, I can pivot their interests and passions. That’s a scary amount of power.
  • Everything above breaks down considerably when there are more than about 10 students in class. I have 11, and when someone is absent, my ability to attend to each individual feels profoundly different.
  • It’s important that I have 15 years of experience with everything that can possibly go wrong in web development. It allows me to debug any problem a student encounters quite quickly, and for me to formulate, on demand, an explanation that builds new, more robust knowledge in a student’s head that helps them fix the problem in the future, but also prevent it with that new knowledge.

I’ve worked many jobs in my life time, from blue collar manual labor, to service, to engineering, and management. Teaching high schoolers computer science is by far the most difficult thing I have ever done, despite my vast experience as a computer scientist and a software developer.

This has changed some of my perspectives in computing education research. For example, I’ve actually become more skeptical of the feasibility of training high school computer science teachers. I think there’s too much domain knowledge required to teach it well and at the scale of most 25-30 student classrooms. I also think that teaching software engineers to be CS teachers (even if they were willing to take a massive pay cut) seems hard too. Teaching is such a difficult skill, I think an engineer would need to make a serious pivot to become a great teacher. Even if we get 25,000 teachers, I suspect they’re going to have a very difficult time teaching well. We’ll have a lot of ineffective teaching. (Which is I suppose what we have in other disciplines too).

Evidence-based, interactive, highly intelligent curriculum may help, where the instructional materials themselves have the domain knowledge, and teachers can focus on classroom management. I’m investigating some of these opportunities in my lab. But it’s going to be a long road.

dealing with teacher guilt

I shouldn’t be writing this. I should be doing my research. In fact, I want to do my research, even right now.

But there’s some thing else nagging me, something I can’t seem to get out of my head this quarter. I have this overriding sense of guilt that despite all of the efforts I make to be a passionate, engaged, and thoughtful teacher, it’s not enough. I see signs of this every day when my students express confusion, frustration, and anxiety about the things I say, the assignments I give, and the deadlines I set. I’m doing this to them. I’m the one causing their pain and suffering, their sleepless nights. Did they really consent to this? What gives me the right?

Of course, these thoughts are mostly silly. Of course they consented to this: they know what school is. I might see glimpses of confusion and frustration, but I also see classrooms full of nodding, laughter, understanding and excitement. I see them struggling, overcoming, and ultimately learning as they jump through the hoops I design. I may be causing them acute sleep depravation, but I’m helping them convert exhaustion into invaluable knowledge and skills. Right?

I think so. But watching my students go through such turbulent emotional states is still such a visceral experience for me, it’s felt much more critical and immediate in the past six months than the research goals I have for this year. Summer quarter will be a nice reprieve, a three month from hiatus from the constant tradeoff between excellent teaching and excellent research.

Actually, make that two months and three weeks. I have a new course to design for the fall and I don’t know how to half-ass it!

grading rant

I ranted about grading to my class today (that’s not my class above, that’s Joonhwan Lee’s thesis defense!). My basic argument was that before grading, approximately 150 years ago, we gave detailed, concrete, faceted feedback to students because there was no other way. We didn’t feel compelled to convert all of a student’s skills and knowledge into a single number or a letter grade. And, not only were there wonderful benefits to this form of feedback, but that form of assessment was devoid of all of the problems of a numerical assessment. Students cannot “game” a verbal assessment, but they can game a test. Teachers could spend the time they would normally spend grading paying closer attention to their students’ progress.

The worst part about modern grading is that most employers don’t care. They might use grades as a low-pass filter, to ignore applicants with less than a 2.5, but what they really care about is what a person can do. They want examples of writing, of thinking, of decision making. They don’t want numerical proxies for these, they want to see the results of these skills.

So who cares about grades? Students, faculty, and universities. That’s good news for me, since I’m universities are run by faculty and faculty guide students. Now its just up to me to convince a few thousand colleagues over the next 50 years that I am right.