Since the very beginning of my career, I have taught introductory programming classes. When I was still a graduate student that wasn’t a terribly surprising thing, but as I’ve advanced through the ranks my primary focus on novice programmers has become increasingly unusual.
The choice to teach novice programmers also something that I’ve occasionally had to defend. I often hear the statement “anyone can teach introductory programming classes” which is incredibly demeaning to what I choose to do, although I doubt those who say it mean it that way. But the belief behind that statement is why I’ve had to fight to ensure that fulltime faculty, and talented and motivated ones at that, are the ones put into the introductory programming sequences. It’s been especially difficult as enrollments have increased but the size of the fulltime faculty has stagnated. But I’ve continued the battle because I think it’s the right thing to do.
So it’s especially heartening when I find evidence to support the choices I’m making. A recent article in the Chronicle titled “It Matters a Lot Who Teaches Introductory Courses. Here’s Why.” looks at several studies (although not specifically in computer science) of introductory students and their outcomes.
Among other things it says:
- “… community-college students who take a remedial or introductory course with an adjunct instructor are less likely to take the next course in the sequence.”
- [there are] “… negative associations between the proportion of a four-year college’s faculty members who are part-time or off the tenure track and outcomes for STEM majors.”
The issues with adjunct faculty appear to be more about the lack of support provided to them and their lack of advising skills than about their teaching.
The second study cited in the article is particularly troubling for computer science, even though it wasn’t solely focused on CS. As the article says: [the study] “finds that for every 1-percent increase in the share of faculty members who work full time and off the tenure track, students’ chances of graduation drop 1.75 percent. If a college’s professors predominantly work off the tenure track, students are 1.5 percent more likely to change out of a STEM major.” Given the enrollment boom and the hiring crisis in computer science, this worries me a great deal.
But as much as parts of it worry me, the article as a whole encourages me to continue being selective about who teaches the introductory programming classes. As the article notes: “To a student who has never encountered a discipline before, the professor teaching the introductory course is the discipline … That’s one reason Chambliss advocates that colleges put their very best professors in front of as many students as possible, as early as possible. That doesn’t mean every senior professor needs to teach introductory courses, he said — it’s a matter of departments moving a few people around, and rewarding them for their efforts.”
I’ve been teaching programming for a very long time (since 1993 to be precise), and in that time I’ve developed a mental picture of myself as a teacher. One of the important pieces of that perception is that I’m encouraging and supportive. And while I think those are two good qualities to have, I think that some, myself included, can come to imagine that means I’m too easy on students. I once even had a colleague, in a meeting no less, suggest that I’m not sufficiently rigorous with my students. (And, yes, I let him have it. He deserved it for jumping to conclusions based on a single student).
Today I got an email from a student that helps me to feel that while I do a lot to support students, I also do a lot to challenge them:
Professor, thanks for the opportunity to take your class. It was an intense learning experience, and I appreciate it.
There is no world in which I can interpret “intense learning experience” to mean that I’m not pushing them in my class. It’s a tricky balance to both encourage and challenge them, but I think I may be managing it.
It’s been a quiet May for me on this blog, and for good reason. Again this year I was asked to present at the ACM Turing Celebration Conference that took place in Shanghai, China May 19th and 20th. As with last year I enjoyed a lot of things about the conference. Most striking to me was the continuing energy and enthusiasm of the SIGCSE China members. Luckily this time I got a picture of some of the organizers, thanks to Ju-min Zhao who provided all the pictures in this post.
SIGCSE China also had the most diverse set of speakers in their program, with multiple women and several people from outside China represented. Unfortunately the organizing committee and the keynotes in the regular part of the conference were again overwhelmingly male as you can see below.
It makes me proud that SIGCSE China is doing all the great work they are. In terms of the regular part of the conference I think I enjoyed Raj Reddy’s optimistic take on the future of AI the most, although I was told by other attendees that Michael Jordan’s talk was excellent. Unfortunately I had some health issues during the conference and had to miss parts of it. There were some fun additions this year to the conference, including the wall of signatures which is seen below.
It’s possible that the first instance of the fourth SIGCSE conference, tentatively named SIGCSE Global, will take place in conjunction with the 2019 TURC conference, so I’m hopeful that more SIGCSE members from outside China will get to see the great work that the SIGCSE China organizers are doing. If that happens I just hope that my health will cooperate so that I can see more of the conference!
One of the classes I helped develop and regularly teach is a bridge class designed to help students move from the introductory Python sequence to the data structures courses taught in Java. I’m the only one who teaches the class, so it isn’t offered every quarter. At some point in 2017 a student who wasn’t able to take the class at the right time contacted me and asked for my notes and examples so he could study the material on his own. I was happy to oblige.
Fast forward to this quarter when I was walking the halls between my classes. A student I didn’t recognize called my name, and I stopped to talk to him. He explained that he was the one who had asked for my Java notes, and he said they had really helped him. I was having a tough week, and that moment of gratitude really boosted my mood. It meant so much that he saw me, recognized me, and took the time to tell me how useful my materials had been.
It made me realize that there are people out there who make my life easier in a lot of ways, but I don’t often take the time to thank them for it. And I need to change that. So every week I plan to let someone know how much better they make my lives by what they do. Often the small things that people do can make a big difference to others, and I need to start making sure people in my work life realize how much I appreciate them.
I take teaching introductory programming seriously, and I do my absolute best to be inclusive and encouraging in the classroom. But it’s hard for me to judge the kind of job I’m doing, and like most people I tend to focus on the things I get wrong more than the things I get right. So getting feedback from former students means a lot to me. Yesterday I got the following (slightly edited to remove identifying information):
I was one of your Python students a couple years ago and I’ve been meaning to send a data point for how well I think you handle newcomers to the programming world. When I took your course I was a music major who had a reinforced lack of self-confidence in math and anything computer related, but you were the first educator I ever had that presented these topics with the subtext that anyone can pursue these topics with the right interest and intention to practice. Had I taken this course in more of a “programming gatekeeper” scenario, I think I would have shrugged and moved on from it all.
I didn’t technically leave DePaul with a CS degree (stuck with music), but I found a love for programming, ended up a C++ developer for <company in location>, and I would not have started on this path without the way you presented the realm of computing.
I might not get everything (or on some days most things) right, but I do sometimes and for some students make a difference. That’s good to know.
Let me start off this post by admitting that I’m exhausted. Last week was the 2018 SIGCSE Technical Symposium, which is a long run of fun and exciting things that keep all of us who volunteer for SIGCSE busy and not sleeping nearly enough. Final exams for winter quarter at DePaul are just around the corner. And winter isn’t done with Chicago yet, so grey skies have rolled in again. All of this makes maintaining a positive attitude more of a struggle than it would be fully rested under blue skies.
Today I was a presenter at an event for high school women hosted by College Connect, an organization at DePaul that works to encourage high school students to go to college. At the event I was supposed to talk about careers in computing, and thanks to NCWIT and my college’s web page I had a lot of great things to mention. During the question session afterward, the College Connect organizer asked me to name a barrier for women in computing. I told her that confidence was a big problem, that women with high GPAs drop out of computing programs when men with lower GPAs stay. And I specifically mentioned the tendency of men in computing classes to ask questions and make comments as a way to show off, since it can contribute to the lack of belonging that women feel by eroding their confidence.
I came home from the event to work and the first thing I saw was a report about a study of technical recruiting sessions. The study found that the very phenomenon I was talking about this morning, men showing off via questions and comments, was something seen in recruiting sessions for technical companies. They also found all sorts of behavior that is highly discouraging for women (and frankly some men).
And my first reaction, in my tired state, was to be discouraged myself. Even if we’re successful in getting some of those women at the event today to major in the School of Computing and to complete their degrees, they might face the very same behavior I was warning them about when they go to interview. I want to believe that what I’m doing makes a difference. It’s just hard on days like today.
Most of the time this blog is about my personal experiences and not about broader topics. But this month’s Communications of the ACM had two articles that I think everyone needs to read, so I’m going to write a post pushing them.
The first is an article by Mark Guzdial talking about bias in student course evaluations. Because I’m at an institution that values teaching and because course evaluations are standard practice for evaluating instructors, I’ve spent a lot of time reading both my evaluations and the evaluations for people coming up for promotion and tenure. Mark makes some very good points about why we might want to re-evaluate the idea of student evaluations as a metric for teaching and also pointing out that doing so would be difficult.
The second article that caught my attention was one by Jodi Tims who is the current ACM-W chair. In it she talks about the idea that improving gender equity in computing needs to be an effort made by all people in the field, not just those organizations focused on the topic and most especially not just by women in computing themselves. Jodi makes very specific suggestions for what individuals can do, but I also urge everyone to join a more organized group focused on gender equity. It’s a tough problem, and tough problems need to be solved through a large collective effort.