CS247: Software Engineering Principles | Spring 2023 | Sessional Lecturer, 1 section, Sole Instructor

Course Description

CS 247: Software Engineering Principles

Systematic methods for designing, coding, testing, and documenting medium-sized programs. Major topics include abstraction, modularity, software modeling, object-oriented programming and design, generic programming, testing and debugging.

Student Course Perceptions

Explanations of course concepts: 98%

Creating a supportive learning environment: 96%

Stimulating student interest: 96%

Overall instructor effectiveness: 97%

Click here for full data

My Thoughts

Third term of the Master’s degree, third term as a sessional lecturer. With every term comes different challenges, so let’s discuss them.

Having finished my coursework for my Master’s, I thought that the Spring term (I think summer term is a much more appropriate wording) would be relatively straightforward. I intended to primarily focus on my research. Since CS247 is meant to be quite similar to CS 246, I would simply adapt to those changes while keeping the overall course structure the same. And having taught 3 sections of CS 246 before, with plenty of experience being an ISA as an undergrad, I thought things would be smooth sailing.

The first stumbling block happened before the course even started. Unlike in CS 246 where I was given spectacularly organized lecture notes from the course organizer Brad Lushman, in CS 247, no “standard lecture notes” existed. Previous offerings of the course used slides that were dreadfully boring, or were given by lectures on a chalkboard with no record of the notes other than a vague outline, and notes sourced from students. This was challenging to say the least, as it meant I spent a significant amount of time preparing for course notes.

The other main challenge throughout the term was being the sole instructor. I found it a lot more stressful to know that all the decision making rode on my head. Especially as a sessional, I was ever-cognizant that any significant problems would reflect poorly on me and affect my chances of being hired again in the future. I also ended up answering a great plurality of the posts on Piazza which was time consuming, and occasionally helping the ISA with Marmoset issues. My responsibilities were perhaps doubled compared to previous times lecturing.

However, student reviews turned out largely positive. In fact, this is the highest instructor effectiveness I’ve received so far. One thing I did differently this term as compared to previous terms is to publish course notes. In previous terms, I had never published course notes, and had always been admonished for it in student evaluations. Although I greatly prefer chalkboard lecturing, since I was the sole instructor I wanted to provide students some resources to study from. So instead of chalkboard lecturing, I wrote on my iPad during lecture and published the notes afterwards. I didn’t find that this impacted lecture attendance substantially - although I got better attendance during midterms in previous terms without lecture notes. Unfortunately, the complaints in my reviews simply transitioned from “give us notes” to “give us typed notes”. This simply wasn’t feasible for me: I already spent enough time each week on CS 247, and I was aware that typed notes were already being compiled by some students in the class. On a team I’ll probably still default to whatever the senior instructor’s opinion is, but personally I don’t mind providing notes as a concept.

Other complaints for the term included:

Overall, I would say the term was a success. I got a decent amount of research done, and the teaching this term was effective, even if it took a lot of energy.