Responding to midterm evaluations

I have a confession to make: I have fallen out of the habit of doing midterm course evaluations.

I don’t know why, exactly, I did. I’ve always found midterm evaluations to be useful as a way of taking the pulse of the course. Even if I think I have a pretty good sense of how things are going and what the major complaints are, I still learn useful information from my students. I’ve discovered problems with textbooks, problems with the timing of due dates, and problems with the sight lines in a classroom from midterm evaluations. I’ve learned surprising things about what things my students enjoy and what they value. (Hint: they are not always the same things.) I often use them as an opportunity to check the learning objectives I’ve set for the course, and how well students think we’re meeting those.

They are invaluable in helping me recalibrate my courses.

So I’d fallen out of the habit. But last term, I taught a course I haven’t taught since 2012. And it was a struggle to get back into the rhythm of the material and the pace of the class and the workload and such. So I thought that would be a golden opportunity to bring back the midterm evaluation into my life.

Boy, am I glad I did.

I’d had a sense that the class was going ok, but that something seemed off, and I couldn’t quite place why. The midterm evaluations illuminated the issues very quickly, and also explained why it was so hard for me to figure out the source of the issues. In a nutshell: The students couldn’t make sense of much of anything in the book. My version of flipped classroom pedagogy requires my students to do some targeted reading and complete targeted reading quizzes before class, so that I can see what they got out of the readings and where I need to spend some extra time before we dive into deeper practice with the material, and then deeper still on the problem sets. Since they were lost when reading the book, they were lost when attempting the quizzes. Sometimes they gave up, and sometimes they just kept guessing until they got the right answer. This means their foundation was shaky, and they were not really prepared to engage with the material in class. But the way I had the quizzes set up, it was hard for me to see the depth of the problems. And then, because they couldn’t engage with the material in class at the level I’d expect based on what I saw in the reading quizzes, they weren’t prepared to engage with the problem sets — which are challenging.

A perfect storm of chaos, basically.

I’ll admit that it was hard to read this set of evaluations. Mostly, I felt like I had let my class down, and berated myself for being a “bad professor”. Which is human but not really constructive. So I sat with the comments for a few days, planning how to address them. Clearly my course needed a restructuring, one that would work around the shortcomings of the textbook while still remaining true to my pedagogy. But I wasn’t sure how to do this.

As my class took an exam in the first half of the following Monday’s class, I finally figured out what I wanted to do, and sketched out a plan on slides. When the last student handed in the exam, I said we were going to talk about the evaluations. And I summarized their concerns. And outlined the “perfect storm” I described above, and how I thought this was affecting their learning. How finding a good textbook for this type of class at this level is difficult, and how I’ve successfully used this book for many years, but that’s irrelevant because what mattered most is that they struggled with it so that means it was not a good fit for this class, and how I will take this into account the next time I teach this class and have to pick a textbook.

And then I outlined a plan for the rest of the term, one that I hoped allowed them to attempt the readings more successfully and with a bit more focus (reminding them that I do give them hints on what to focus on, through a set of reading questions in addition to the quizzes). We would start each class explicitly with the key points from the readings listed on the board along with my impression of what concepts they found most challenging, giving them the opportunity to agree/disagree with my assessment. This might mean that I had to change my planned examples and exercises on the fly, which made me a bit nervous since I was still relearning the material along with them — but I promised to be honest with them when I felt like my free-wheeling might lead us into rough waters, and they seemed to be ok with that. That I’d dedicate more class time to giving them the opportunity to start/work on problem sets, so that they could ask questions right away and we could figure out together if they need some extra practice before attempting the problem sets.

I am grateful that I work at an institution where students feel safe enough to be honest with me about what is and is not working for their learning. I am grateful for the level of thoughtfulness and self-reflection my students bring to the learning process. Students here place high expectations on faculty and expect a lot from us (which they should!), and their feedback and observations make me a much better teacher. Responding to this feedback, and restructuring my course, proved an interesting challenge and a good opportunity for me to reflect on my pedagogy — not just my philosophy, but my practice.

I don’t think I completely hit the mark on everything I intended to do last term, but I do think things improved, for both me and the students. And, as I put together my course for spring term, I realized that I could and should incorporate some of these same practices (extra checking in with the students, being explicit about the key points from the readings) into that course as well. We’re only a week and a half into the new term, but I’m excited to see how things go. And, I’m already looking forward to what this batch of students will share on this term’s midterm evaluations.

Advertisements

Introducing CS 1 students to algorithmic bias via the Ethical Engine lab

There’s a lot of recent interest around the ethics of technology. From recent popular press books like Algorithms of OppressionAutomating Inequality, and Technically Wrong*, to news stories about algorithmic bias, it seems like everyone is grappling with the ethical impacts of technology. In the computer science education community, we’re having our own discussions (and have been for some time, although there seems to be an uptick in interest there) on where ethics “belongs” in the curriculum, and how we can incorporate ethics across the curriculum — including in introductory courses.

One initiative aimed at touching on ethical issues in CS 1 particularly caught my attention. In July 2017, Evan Peck, at Bucknell University, posted about a programming project he and Gabbi LaBorwit developed based on MIT’s Moral Machine, a reworking of the classic Trolley Problem for self-driving cars. This project, the Ethical Engine, had students design and implement an algorithm for the “brains” of a self-driving car, specifically how the car would react if it could only save its passengers or the pedestrians in the car’s way. After implementing and testing their own algorithms, students audited the algorithms other students in the class designed.

Justin Li at Occidental College built upon this lab, making some changes to the code and formalizing the reflection questions and analysis. He wrote about his experiences here. In particular, Justin’s edits focused more on student self-reflection, having them compare their algorithm’s decisions against their manual decisions and reflecting to what extent their algorithm’s decisions reflected or did not reflect their priorities.

I was intrigued by the idea of this lab, and Justin’s version seemed like it would fit well with Carleton students and with my learning goals for my intro course. I decided to integrate it into my fall term section of intro CS.

Like Evan and Justin, I’ve made my code and lab writeup freely available on GitHub. Here are links to all three code repositories:

Framework

Based on Justin’s and Evan’s writeups, I made several modifications to the code.

  • In the Person class, I added “nonbinary” as a third gender option. I went back and forth for a bit on how I wanted to phrase this option, and whether “nonbinary” captured enough of the nuance without getting us into the weeds, but ultimately decided this would be appropriate enough.
  • Also in the Person class, I removed “homeless” and “criminal” as occupations, since they didn’t really fit in that category, and made them boolean attributes, similar to “pregnant”. Any human could be homeless, but only adults could have the “criminal” attribute associated with them.
  • In the Scenario class, I removed the “crossing is illegal” and “pedestrians are in your lane” messages from the screen output, since in this version of the code these things are always true.

I also made it a bit clearer in the code where the students should make changes and add their implementation of the decision making algorithm they designed.

Execution

I scheduled the lab during Week 8 of our 10 week course, just after completing our unit on writing classes. We take a modified “objects-early” approach at Carleton in CS 1, meaning students use objects of predefined classes starting almost immediately, and learn to write their own classes later in the term. The lab mainly required students to utilize classes written by others, accessing the data and calling upon the methods in these classes, which conceivably they could have done earlier in the term. However, I found that slotting the lab in at this point in the term meant that students had a deeper understanding of the structure of the Person and Scenario classes, and could engage with the classes on a deeper level.

I spread the lab over two class periods, which seemed appropriate in terms of lab length. (In fact, one of the class periods was shortened because I gave a quiz that day, and the majority of the students had not finished the lab by the end of class, which leads me to believe that 2 whole class meeting periods at Carleton, or 140 minutes, would be appropriate for this lab.) As they do in all our class activities, students worked in assigned pairs using pair programming.

On the first day, students made their manual choices and designed their algorithm on paper. To ensure they did this without starting with the code, I required them to show their paper design to either my prefect (course TA) or myself. A few pairs were able to start implementing the code at the end of Day 1. On the second day, students implemented and tested their algorithms, and started working through the lab questions for their writeups. Most groups did not complete the lab in class and had to finish it on their own outside of class.

At the end of the first day, students submitted their manual log files. To complete the lab, students submitted their algorithm implementation, the manual and automatic logs, and a lab writeup.

Observations

Unexpectedly, students struggled the most with figuring out how to access the attributes of individual passengers and pedestrians. I quickly realized this is because I instruct students to access instance variables using accessor and mutator methods, but the code I gave them did not contain accessor/mutator methods. This is a change I plan to make in the code before I use this lab again. I also plan to look a bit more closely at the description of the Person and Scenario classes in the lab, since students sometimes got confused about which attributes belonged to Scenarios and which belonged to Persons.

Students exhibited a clear bias towards younger people, often coding this into their algorithms explicitly. One pair mentioned that while their algorithm explicitly favored younger people over the elderly, in their manual decisions they did “think of our grandmas”, which led to differences in their manual and automatic decisions in some places. A fair number of students in this class came from cultures where elders traditionally hold higher status than in the US, so the fact that this bias appeared so strongly surprised me somewhat. Pregnant women also got a boost in many students’ algorithms, which then had the effect of overfavoring women in the decisions — which many students noted in their writeups. While nearly all pairs explicitly favored humans over pets, a few pairs did give a small boost to dogs over cats, while no one gave any boost to cats. I’m not sure why this class was so biased against cats.

I was impressed by the thoughtfulness and nuance in many of the lab writeups. Most students were able to identify unexpected biases and reason appropriately about them. Many thoughtfully weighed in on differences in their algorithm’s choices versus the choices of their classmates’ algorithms, one pair even going so far as to reason about which type of self-driving car would be more marketable.

In the reflection question about the challenges of programming ethical self-driving cars, many students got hung up on the feasibility of a car “knowing” your gender, age, profession, etc, not to mention the same characteristics of random pedestrians, and being able to utilize these to make a split-second decision about whom to save. This is a fair point, and in the future I’ll do a better job framing this (although to be honest I’m not 100% sure what this will end up looking like).

One of the lab questions asked students to reflect on whether the use of attributes in the decision process is ethical, moral, or fair. Two separate pairs pointed out that the selection of attributes can make the decision fair, but not ethical; one pair pointed out the converse, that a decision could be ethical but not necessarily fair. I was impressed to see this recognition in student answers. Students who favored and used simpler decision making processes also provided some interesting thoughts about the limitations of both “simpler is better” and more nuanced decision-making processes, both of which may show unexpected bias in different ways.

Conclusions and takeaway points

Ten weeks is a very limited time for a course, so for any activity I add or contemplate in any course I teach, I weigh whether the learning outcomes are worth the time spent on the activity. In this case, they are. From a course concept perspective, the lab gave the students additional practice utilizing objects and developing and testing algorithms, using a real-world problem as context. This alone is worth the time spent. But the addition of the ethical analysis portion was also completely worth it. While I have yet to read my evaluations for the course, students informally commented during and after the exercise that they found the lab interesting and thought-provoking, and that it challenged their thinking in ways they did not expect going into an intro course. I worried a bit about students not taking the exercise seriously, and while I think that was true in a few cases, by and large the students engaged seriously with the lab and in discussions with their classmates.

I teach intro again in spring term, and I’m eager to try this lab again. The lab has already sparked some interest among my colleagues, and I’m hoping we can experiment with using this lab more broadly in our intro course sections, as a way to introduce ethics in computing early in our curriculum.

*all of which are excellent books, which you should definitely read if you haven’t done so already!

A snapshot of (the quickly ending) Fall Term

It’s Week 9 of our 10 week Fall Term, and I am sitting here wondering just where the hell September and October went. Seriously, wasn’t yesterday the start of the term? (Guess I should take “Goals for Fall Term” out of the blog post idea queue, then….)

It’s been a busy fall term, and it feels like I have a lot more on my plate than usual. I chalk this up to a combination of a number of projects currently on my plate plus continuing recovery from my broken elbow this summer. All of it interesting (for varying definitions of “interesting”). So here’s a look at some of what I’ve been up to the past couple of months.

Teaching: Revisiting an Old Favorite Class

I love teaching Intro. I love guiding students through their first (or one of their first) experiences with programming, algorithm design, and algorithmic thinking. I love the pace of the class, the creativity my students bring to the projects and in-class exercises, the material, and even the wide variety of backgrounds and experiences of my students.

I used to teach Intro all the time. But an influx of young ‘uns and visitors and general scheduling oddities meant that I haven’t taught it since Winter 2015. So I was thrilled to see Intro on my schedule twice this year, Fall and Spring term. But also a bit worried: would this be like a new prep for me, given the long-ish layoff?

Complicating matters is that I switched from a textbook I loved, but for which I could no longer justify the hefty price, to a perfectly fine lower cost textbook. Which meant I’d have to rework my reading assignments, at the very least.

The layoff and the textbook switch led me to approach the class as if I hadn’t taught it before. I revisited and revised all of my learning goals. I did a full backwards design of the class. I mapped topics and projects to learning objectives to make sure they still matched and were still relevant. I added a lab on ethics (which I’ll be blogging about in the coming weeks) and replaced the two exams with 5 quizzes (really mini-exams). I committed to using Slack as a communications medium — with, I’ll be honest, a bit of trepidation.

Luckily, the workload has been manageable. I spend a reasonable amount of time prepping (nowhere close to new prep time, but a bit more than “I recently taught this” time). The majority of my class is first year students, which makes for a really neat class dynamic — and I’m really enjoying the mix of personalities. I truly look forward to teaching every MWF and I’m having a good time in the classroom. The Slack experiment is going better than expected — and has been extremely useful for sharing code with students during and after class. All in all, it’s been a most excellent return to the realm of Intro CS!

Research: Papers, Papers, Papers

Being at an undergraduate-only institution means my research collaborators are undergraduate students. And I’ve lucked out in the student department lately. I have two amazing student researchers, both now junior CS majors, who have worked with me since last spring. They designed and ran their own experiment this summer, and even recruited an interviewee, conducting and then transcribing the interview, too! This fall, we’ve concentrated on analyzing the results from the summer experiment, and are using these results to plan out our next set of experiments.

My stretch goal for my students was to have them submit an extended abstract to the student research competition at SIGCSE, since SIGCSE’s in Minneapolis next year. I’m happy to say they met this goal! I have no idea how reviewers will receive our work, but in any case, it was a good experience for my students — and a good opportunity for me to reflect on where the work is now and where we should go next.

My students are working on one aspect of my larger research project, and my goal this fall was to primarily work on that as well. But, I have a rejected conference paper that I’ve been sitting on since last spring, from the other aspect of my project. And I happened to stumble upon a CFP for a conference that’s a pretty good fit for the paper. And the deadline was a bit uncomfortably close, but not impossibly so. So, I was able to revise that paper and get it back out into the review stream. Bonus: revising that paper helped me think through the next stages of that project, and I’ve moved that project back into the rotation. Our upcoming long break between Fall and Winter terms will be the perfect time to get some sustained work on that project completed, and move me towards my next conference paper.

So, I went from maybe 1 paper-ish thing submitted to 2 paper-ish things submitted! Gold star for me.

Career Planning: What Do I Want to Be When I Grow Up?

I’ve had the idea in the back of my head that someday, maybe, I’d go into academic administration. Within the past year or so, I decided to explore this path more proactively. I did the scary thing of VERBALIZING TO A DEAN that I was contemplating administration. I applied for a few grants (unsuccessfully) that would have funded some leadership-type projects I’ve been considering. (I’m still working on the projects, just without the funding.) I mentioned my goals in conversation with faculty colleagues from other liberal arts schools at Tapia.

Lately, I’ve taken this up a notch or 5.

First, I was accepted to, and am participating in, the HERS Institute at Wellesley this academic year. The homework, and the activities and sessions at the first weekend in October, have been extremely useful so far. And a bit scary, since some (many?) of them drive me outside my comfort zone. My cohort is full of amazing, inspiring, energetic women — my 60 new colleague best friends. 🙂 I’ve figured out so much about myself, my strengths, my weaknesses, my unstated goals, already! I feel like this experience is preparing me very well for whatever comes next in my career — and has helped me thing more broadly and expansively about the possibilities. The next session is coming up next weekend, and I can’t wait!

Second, and scarier: I put my name forth for consideration for an administrative position at my institution. No matter what the outcome, putting myself forth has helped me think through my priorities, and will be a good experience for figuring out how to pursue opportunities in the future.

Life: Recovery Takes Time, and a Boatload of Medical Appointments

My newest hobby is attending multiple occupational therapy appointments each week, as I continue to rehabilitate my broken elbow. The good news is that the breaks are completely healed, and I’ve been cleared to do whatever I want! I’ve worked my way slowly back to running, and on Monday I ran 30 minutes nonstop. Which doesn’t seem like much given I’m a 3-time marathoner, but was a huge milestone after months of “just” walking or walk/running to avoid jostling my elbow too much. I can now fully participate in taekwondo, although I still can’t do a full pushup (not even on my knees). But that will come in time. I’ve also started swimming again, and while I need to make a few adjustments to account for my reduced range of motion, swimming has felt good.

The not as good news is that it’s been a long, slow, uncomfortable slog to regain my range of motion and strength. Apparently, elbows are difficult entities. My therapy exercises are uncomfortable and sometimes painful. My progress stalled out for a while (thanks, scar tissue in the elbow!), but I now seem to be moving forward again, thanks to ultrasound and Graston treatments. There is a chance I might need surgery again to clear out the plethora of scar tissue that’s formed in the elbow, but I hope I can avoid that.

I used to scoff when people said they could “feel the weather changing” in their joints. I don’t scoff any more, because this is now my lived experience. I feel old.


Even with everything on my plate, it’s been a manageable term. Sure, some days require some Herculean logistics, and I’ve had to move around my office hours more than I care to admit to accommodate the less-movable OT appointments, but I’ve managed to keep my weekends mostly work-free and my sanity mostly in check. Here’s hoping the end of the term is as manageable as the rest of the term has been (fingers crossed).

 

Random thoughts, Friday before first day of classes edition

The week before classes is traditionally very busy. Lots of meetings, faculty retreat, Academic Fair, advising especially if you have first year advisees — not to mention, the rush to get everything ready for the first day of classes. And the busy-ness and franticness, I’m finding, is amped up to 11 (on a scale of 1-10) when you’re coming off sabbatical.

I’m finding a few things more challenging than usual:

  • Interacting with people. Oh, so many people! Comparatively at least, since I’m used to working by myself at home with only my cats for company. I’ve found I need a lot more alone time to recover after these encounters, more time than usual. Tuesday and yesterday afternoon were especially brutal — Tuesday because of faculty retreat (a half day filled with people! ack!), and yesterday due to a combination of meetings + Academic Fair (where first years can go and learn about the academic departments and services) without a break. Last night I could barely function or think. Good times.
  • Emails. Emails emails emails. I’m realizing I was spoiled on sabbatical: not only was I getting way fewer emails, but also I could ignore about 90% of the ones I did get. Not so anymore. I’ve fallen way behind on email processing this week, so in addition to the 1000 other tasks I have to do today to get ready for next week, I have to pencil in time to tackle at least the more pressing ones. And let’s not mention the Slack channels I’m on, where conversations have ramped up quite a bit in the last week.
  • Getting all the logistics in place for the term. This includes things like coordinating meetings with community and campus partners for our capstone projects, which affects the times and days of the week I meet with my capstone groups. And reserving lab space for in-class labs. And finding a meeting time and place for the science fellows seminar. Which, you guessed it, means lots of emails. Oh yeah, and figuring out office hours and blocking off time for research and class prep and and and …. ok, deep breaths.

I know that This Too Shall Pass and Everything Will Somehow Get Done By Monday. Deep breaths. Deep breaths. ….

* * *

I’m really enjoying my new office and my new building. My hallway consists of me, the director of our learning and teaching center, and the new writing program director. Lots of potential for great conversations and maybe projects with both. The Cinema and Media Studies/Music admin offices are across the hall, as well as CAMS and Music faculty offices and the Learning and Teaching Center. Being in such an interdisciplinary spot is going to be really interesting!

Our department has a Slack channel now, since we’re spread out (2 of us are in my building, and the rest are spread between 3 floors of another building), as a way of communicating small things and having small discussions/getting questions answered. I’m also getting used to the fact that my colleagues now call me on the phone to have once were quick hallway conversations. I’m used to ignoring my phone — I guess I can’t do that any longer.

I do hope the construction noise outside my window ends when classes start.

My building is 2 blocks from downtown, which means 2 blocks from coffee shops and the bagel place and restaurants and such. Plus there is a coffee shop in my building. I foresee a lot of coffee and bagels in my future this year. Perhaps I won’t be losing the Sabbatical 5 Pounds I gained last year. But, on the other hand, this means more interesting places to walk when I am feeling stir-crazy and need to clear my head.

* * *

And on that note, it’s back to class prep and email taming and all of the other Friday before classes start tasks. To all the Carls new and returning: see you on Monday, and have a fabulous fall term!

A rough return to teaching

I’ve spent the past few summers (minus last summer when I was on sabbatical) teaching in a summer high school program. The program consists of 3 weeks of morning classes and afternoon guided research with a faculty member. I really, truly enjoy it. Teaching high school students is an interesting challenge. And by and large the students have been thoughtful, engaged, creative, and eager to learn. (It’s also very gratifying to see some of them as Carleton students post-high school!)

So when my colleague approached me last fall about teaching again this summer, I agreed. The program, I reasoned, would give me the opportunity to ease back into teaching before returning to the classroom in the fall. Plus I already had curriculum and research projects ready to go. What could possibly go wrong?

Suffice it to say that my envisioned triumphant return to teaching was anything but.

The actual mechanics of teaching? That went easier than I anticipated. The rust fell away quickly, much to my surprise. Being in front of students felt natural to me, and I found my teaching groove in short order. Pacing was still tricky at times, but pacing is always a bit of an inexact science.

What I didn’t anticipate, and what was roughest about re-entry: the small but active minority of students in my research group who decided early on that what I was teaching, human-computer interaction (HCI), was not Real Hard Core Actual Computer Science Because We’re Not Programming 24-7. And the undercurrent of disrespect for my authority, and for my RA’s authority (also a female computer scientist).

Now, I should pause and make it crystal clear at this point that THIS IS NOT NORMAL FOR THIS PROGRAM. The vast, vast majority of students are respectful and open to learning, and to expanding their ideas of what computer science is. I can count on one finger the number of research students I’ve mentored in this program who have been actively disrespectful of me and the subject matter. Sure, I’ve had some students in the past who were openly or less openly skeptical about the merits of HCI as a computer science field, but by and large those students at least came to appreciate what I was trying to teach them in the end, even if in the end they decided it wasn’t quite their cup of tea. And I’ve had some really interesting conversations with the objectors that have not only strengthened my framing of my material, but have also led me to reflect on what material I choose to include and how I include it. Both of which make me a better, more effective teacher in the end.

I spent a lot of time and energy during the program reflecting on where this particular strain of disrespect originated. Part of it likely relates to the HCI = Not Real Computer Science attitude, which is certainly not limited to the students in my class (and is still somewhat pervasive in the field, unfortunately). Part of it also likely relates to the general bro-ness and toxic masculinity that has always surrounded computer science, something that’s come into sharp focus lately with any number of recent news stories. Why did it emerge in force this year, and not in previous years? That, I’m still trying to figure out.

It’s been a very long time since I’ve had to deal with this level of disrespect in the classroom. I’ve been at Carleton long enough that I’m part of the fabric of the department — I am “accepted”. Gaining seniority (in age and in status) over the years increased my credibility with the students, giving me more authority in their eyes. The close-to-gender parity we have in our faculty also helps quell at least some of the disrespect. So I was caught off-guard.

Once I recognized what was going on, I went into damage control mode. I summoned up my Authoritative Teacher persona from the depths — she hasn’t been around much since my pre-tenure days. I blinded them with science — or, at least, hit them hard with the scientific basis for every psychological or design principle we discussed. I randomly threw out my credentials, just to remind them that Yes I Do Know What I Am Talking About As I Have A PhD In Engineering And Years Of Experience. I occasionally let out my Inner Bitch and used my Evil Mom Stare with abandon.

But I also second-guessed almost everything that I did, and said. I put up my guard in ways I haven’t had to do in a very long time. Teaching, and every single interaction in this program, took up at least twice as much of my mental and emotional energy. Teaching in this program is normally draining, but this year, at the end of the day, I truly had nothing left in my tank. And that was not fair to my family or to myself.

Lots of people have asked me if I’ll teach in the program again next year. I honestly don’t know. On the one hand, I still believe strongly in this program. I have met and worked with so many incredible teens and young adults in this program. By and large, my students are thoughtful, creative, eager to challenge themselves, whip-smart, and funny. Most of my students did outstanding work on their research projects, and embraced the experience and challenge from start to finish. And I enjoy serving as a role model to high school students, both as a female computer scientist and as an HCI researcher. But on the other hand, this summer exacted a huge toll from me. I was exhausted, and bitter, every single day. Why does it feel like it’s just my responsibility to hang in there, fight the good fight, and change their minds? How productive, and happy, would I be if I didn’t have to deal with this crap?

Hopefully, I won’t experience anything like this in the fall when I return to the classroom full time. Or, if I do, at least I’ll be prepared to recognize it and deal with it. That, I suppose, is the sad silver lining in this experience.