At this point in the series, the title is getting kind of ridiculous, but I didn’t really plan that far ahead. At any rate, let’s talk about my third semester of teaching.
Table of Contents
Unfortunately, I didn’t actually teach this summer. However, I was still technically a graduate teaching assistant, and I was even contracted under more hours than usual. I just wasn’t in front of a classroom—I was grading!
To be more clear, I trained to teach the CSE 2221 (Software 1) course at The Ohio State University. As a part of that training, I basically took the class like a regular student. In other words, I did all the assignments and turned them in to get feedback. In addition, I held office hours and helped in lab as well.
In terms of time commitment, I found myself in the classroom everyday of the week from 10:20 – 11:15 AM. Each day we rotated between the classroom and the lab, so some weeks we had 3 labs and other weeks we had 3 lectures.
As usual, I had about 40 students, but the load was split over four people instead of one. In addition to myself, there was an instructor and two other TAs. As a result, grading was much, much easier this semester (for the most part). In particular, I only had to grade 6 projects. Meanwhile, the other 5 projects and the 20 or so homework assignments were graded by the other TAs. In addition, the 3 exams were administered and graded by the professor.
Unfortunately, I don’t have access to the information of any of my students, but I can give a rough idea of what final grades looked like.
Keep in mind that I pulled these grades before the final, so I’m not sure how things shook out at the end.
As always, I like to take some time to just reflect on the past semester.
By far, my favorite part of this semester was having peers to work alongside. Not only did it make the labs far more enjoyable, but it was nice to just have people I could rely on when I didn’t know an answer to something.
Likewise, I really enjoyed the material. While I think of myself as someone who works best with beginners, it’s definitely more fun to talk about more philosophical topics. In fact, I learned a lot this semester which manifested itself in a handful of articles including:
In addition, I really enjoyed having time to learn from professors and using that knowledge to start lesson planning for the fall. In fact, I already have Top Hat setup for lectures! Hopefully, that saves me some time in the future.
Since this was a summer term, there was no time for breathers. Even as an experienced programmer, I had a hard time keeping up with the material, and I knew that students were growing irritated with my lack of help at times.
In addition, grading was still a pain. Sure, I wasn’t grading nearly as many assignments, but I was spending probably just as much time grading as before. In particular, I was responsible for half of the projects, and they usually took me a couple of days to grade. Unlike last semester where I had a tool to help me grade, this semester the projects were a lot more free-form, so it was hard to establish any sort of routine or grading process.
Finally, there was a lot more student pushback than I experienced in the past. For whatever reason, I felt like the students were less receptive to the material than in the past, and I’m not really sure why that was. Apparently, at this point in the curriculum, a lot of students felt like they already had things figured out, so they didn’t really appreciate our method of teaching. Who knows?!
If you’ve been around awhile, you know I’m bad with criticism. As a hard worker, I think criticism can be a slap in the face. Now, I don’t necessarily think that my work should be praised just because I worked hard on it, but criticism can really make me feel like I wasted my time.
At any rate, I’ve been fortunate enough to not have many people review my code in the past, and I generally think highly of my code despite that fact. Then, this semester I was forced to turn in the same projects as the students to get an idea of the type of feedback I should be giving them.
While the premise made sense, I found the experience disheartening as I’d often get projects back littered with negative comments. As someone who could have just taken the summer (mostly) off to focus my mental health, I often felt like I had made the wrong decision to work.
To make matters worse, we met weekly which usually focused on the mistakes we made in the projects. Naturally, my anxiety ramped up as I got closer to those dreaded meetings—which reminds a lot of the weekly progress meetings I used to have during an internship I had at GE.
As someone who loves teaching, I don’t think it’s fair to complain this much about the job, but I just have to talk about something. Remember my first semester when I had a student that abused my trust? Well, I had another one of those this semester.
As the semester began winding down, I was grading one of the projects. In this project, students were asked to write code to process an expression tree. In essence, the students had to write a recursive function which could handle the four basic arithmetic operations: addition, subtraction, multiplication, and division. As an added wrinkle, they had to implement it twice: once with integers and again with natural numbers (any whole number > 0).
When I performed my testing, I used a handful of XML documents to test things like single node trees, negative subtraction, and division by zero. Of course, just nailing these cases wasn’t enough to get a perfect score. Students were also expected to have good style (which we defined), and they were asked to follow a strict discipline (i.e. no multiple returns, no break, etc.).
At any rate, a few students chose to use a switch case which I felt didn’t mesh well with our discipline for a variety of reasons (i.e. switching on strings, no default case, etc.). As a result, I took a point off. That’s it! Instead of getting a perfect 10, they got a 9.
Well, one student in particular was very upset with the grade, so they allegedly reached out to the professor who said it was fine but neglected to update the grade. Naturally, when the professor wasn’t around, they came to me to cry about the single point they wanted. Of course, I found their argument frustrating because they didn’t reference any of my feedback. They just kept saying that they deserved the point.
In the heat of the moment, I told them they weren’t getting their point back, and if they wanted it, they were going to have to cry to the professor. Of course, when I got home, I thought that maybe the point was stressing them out, so I gave it to them alongside a five paragraph essay hoping to drive the point home.
Less than a week later, I caught the same student trying to pull a fast one on the professor. At the time, they had just gotten their exam back, and they decided to go beg for more points from the professor. In particular, they claimed that someone had changed their answers. Now, I don’t know about you, but to me that’s an insane allegation. There’s just no way to prove that.
Fortunately, the professor basically said “tough luck,” but I can’t imagine that was easy to do. Why do some students feel comfortable putting their teachers in positions like that?
Since I wasn’t teaching this semester, I didn’t get evaluated through the University (aka Student Evaluation of Instruction or SEI). However, I did send out my Google Form as always, so I’ll share those results once again. Like before, I’m a bit too lazy to extract the reviews from just this semester, so all graphs contain data from the previous semesters.
Since it’s my first time teaching a new class, I figured I’d share the statistics around just how many people have filled out the survey and for which classes.
As someone who has been studying data visualization, I sort of cringe at pie charts. That said, all I really need to get across is that I managed to accumulate another 8 submissions since last semester.
Level of Effort
As usual, there was a question related to level of effort on the form. In particular, I asked students to rate how hard they had to work to complete the course.
Even in the new class, it seems students have to work pretty hard to do well. Hopefully, I can find some ways to ease their load next semester.
Contribution to Learning
In addition to level of effort, I asked the students a series of questions about how they felt the course contributed to their learning.
I always find this chart interesting because you can see the learning trajectory for students. In particular, most students say they knew almost nothing about the course at first. However, near the end of the course, most students felt very good about their knowledge of the course.
Skill and Responsiveness of Instructor
Of course, I also asked the students a few questions about how they felt about my teaching.
Naturally, this is my favorite chart because the reviews are always so positive. In addition, I like how the bar charts tend toward excellent the further right you go. Honestly, I don’t know how that worked out, but I like it.
After that, I asked the students to rate the course content.
Unlike previous semesters, I had absolutely no role in the course content. As a result, I didn’t have any sort of effect on these results. In other words, shout out to the course coordinator for putting together quality content for the students.
To gather a bit of demographic information, I also asked the students why they chose to take the course.
To no surprise, the CSE 2221 course is a gateway to the major, so a lot more folks said it was a degree requirement. At this point, this question is sort of nonsensical, but some people might take it for their own enjoyment. Who knows?!
Following all of the multiple choice questions, I like to ask the students an open-ended question about what they found most valuable in the course. In general, most students liked the labs:
The homework’s, the labs, the office hours and the feedback from assignmentsAnonymous, Summer 2019
Labs were very valuableAnonymous, Summer 2019
The labs were super useful in supporting learning from lectures and homework.Anonymous, Summer 2019
To be honest, I was also a huge fan of the labs. Personally, I liked that there were twice as many labs a week as the intro Java class, and that the labs weren’t graded. In other words, students were able to learn the material in a low-stakes environment.
On top of that, one of the students really liked Piazza, our online forum for student questions:
Piazza is quite useful.Anonymous, Summer 2019
While I don’t love Piazza, I can see how some students might benefit from it.
With value out of the way, I like to ask the students for something that they would like to see improved.
Too Material Rich
Perhaps one of the best bits of feedback I’ve ever gotten for a course has to go to the following student:
Too rich in material. I still have only a cursory understanding of how to effectively design a JUnit framework. I also struggled to design the Glossary project, and felt like my plans quickly gave way to a series of forced compromises, proving the inefficacy of my design.Anonymous, 2019
According to this student, the course moved just way too quickly as we bounced from topic to topic without a clear link between. And to be honest, I agree. Of course, it’s important to note that this was a compressed summer course, so there was quite a bit less time to soak up the material.
That said, there were a ton of topics in this course, and many of them came suddenly at the end. To make matters worse, we don’t do a great job of letting students come up with their own solutions. Instead, we provide a lot of templates for students to fill out. When we finally do provide an open-ended project, a lot of students feel lost, and I don’t blame them.
At any rate, I love feedback like this because it helps me think about what I might want a course to look like if I were to ever make one myself.
Not Enough Transition Time
Another one of my students felt like the course didn’t give them enough time to settle in:
I took C++ instead of java so I had to transitions between the two languages. I had to put in a little more work in the beginning to stay caught up but the course felt it moved appropriately. I did feel lost on certain terminology like “class”, “method”, “constructor” and the idea of a project as a whole so maybe giving students a heads up before the semester begins with optional study homework could be beneficial to those coming from C++.Anonymous, Summer 2019
To be honest, this is one of those reviews that really hits home for me. During my undergrad, there was only one formal programming language course: Java. Of course, several professors had their own language of choice, so I sometimes had to learn a language on-the-fly like C, C++, MATLAB, and C#. That isn’t a great feeling as a student.
To make matters worse, a lot of professors had this elitist mentality that programming languages were just tools that you could casually learn in your spare time. As someone who spends a lot of time playing with programming languages, that couldn’t be further from the truth. While language syntax can be easy to pick up, navigating idioms and libraries can be very challenging.
At any rate, this sort of feedback is helpful to me. As soon as I figure out who is in my class, I’ll shoot an email out with some resources.
Finally, I asked to students to share a testimonial. In particular, I look for a nice overall review of me and the course. Typically, I would go through each testimonial and share some of my thoughts, but I think I’ll just dump some of my favorites here:
Excellent knowledge resource. I found myself listening intently every time anyone of close proximity asked [Jeremy] a question, and picked up a lot of good information that way.Anonymous, Summer 2019
Jeremy left helpful feedback on projects and it is obvious he knows what he is talking about and enjoys helping others learn.Anonymous, Summer 2019
I liked all 3 TA’s this semester but I felt [Jeremy was] the most knowledgeable of the 3. I would have been comfortable with [Jeremy] subbing for Swaroop if needed.Anonymous, Summer 2019
Great instructor, would definitely want to learn from him again for another courseAnonymous, Summer 2019
Very effective teaching and incredibly helpful. Feedback on the projects really helped me improve my coding towards the end of the courseAnonymous, Summer 2019
And, that’s it! As someone who loves to teach, I love to see that effort shine through in these testimonials. As always, I have to thank my students for the wonderful semester they gave me even though I wasn’t their primary instructor. Working with them is always a pleasure.
Next Semester Plans
At this point, I would usually be done with my reflection, but I think I want to take some time to start planning for next semester. In particular, I want to talk about how my plans might be a little different going forward.
Now that I’m teaching a higher level course, my student demographic is going to change considerably. In particular, I’ll be working a lot more with students who are actually interested in coding, so I expect them to be quite a bit more critical of my teaching. In fact, I saw that a bit this semester, so I’ll need to up my knowledge game.
As a consequence, I’m going to need to focus on some of my weaker subjects. For example, we cover recursion extensively, so I need to be prepared to answer questions related to that subject. At the moment, I’m writing a recursion article to try to prepare myself for next semester.
In addition, I need to learn how to manage graders. In particular, I’m going to have a pair of graders that are students themselves. Somehow, I’ll need to make sure they keep up with the grading. In addition, I want to make sure they’re giving helpful feedback.
Other than that, I think it’s just business as usual. Obviously, one of the big subjects I push for is empathy, so I hope I can instill that in the class early next semester. Of course, we’ll see how things go. Wish me luck!
With all that said, I’m looking forward to teaching this course next semester. After all, I’ll be reducing the amount of grading I do considerably and introducing material that is a lot more interesting. Who can complain about that?
On top of that, I’m taking several engineering education courses next semester, so I’m hoping to add a few new tools to my skill set. Of course, I also need to start doing research, and I’m not even remotely excited for that. It’s really unfortunate that there’s no teaching track for PhD students who just want to become professors.
At any rate, here’s to another semester. By December 2019, you can expect to see yet another one of these reflections. For now, I have to get back to work. In the meantime, check out some of my other reflections:
Finally, here are a few relevant teaching books:
- The Professor Is In: The Essential Guide To Turning Your Ph.D. Into a Job by Karen Kelsky
- How to Write a Lot: A Practical Guide to Productive Academic Writing by Paul J. Silvia
- A PhD Is Not Enough!: A Guide to Survival in Science by Peter J. Feibelman
In no way do I endorse these products, but I feel like they may be applicable to you.
Kicking off a new series of reverse engineering content inspired by VirtualFlatCAD. Today, we're trying to roll our own uppercase function.
When it comes to capitalizing strings in Python, you have a few options. Use the tools Python provides or roll your own.