CS246: Object-Oriented Software Development | Fall 2022 | Sessional Lecturer, 2 sections

Course Description

CS 246: Object-Oriented Software Development

Introduction to object-oriented programming and to tools and techniques for software development. Designing, coding, debugging, testing, and documenting medium-sized programs: reading specifications and designing software to implement them; selecting appropriate data structures and control structures; writing reusable code; reusing existing code; basic performance issues; debuggers; test suites.

Student Course Perceptions

Section 001 (10:00-11:20 AM)

Explanations of course concepts: 95%

Creating a supportive learning environment: 92%

Stimulating student interest: 90%

Overall instructor effectiveness: 92%

Click here for full data

Section 005 (8:30-9:50 AM)

Explanations of course concepts: 95%

Creating a supportive learning environment: 93%

Stimulating student interest: 93%

Overall instructor effectiveness: 94%

Click here for full data

My Thoughts

This was my first term as a sessional lecturer. Overall, I think it went well! My effectiveness (an average of scores for presentation of course concepts, creating a supportive environment, and stimulating student interest) was deemed a 94% for my 8:30 section, and a 92% for my 10:00 section. This being the first term of my Master’s, and a relatively young lecturer, I was a little anxious about how the student course perceptions would turn out.

Course Notes

There are a few key pieces of feedback listed in the perceptions. Overwhelmingly, the largest piece of feedback is in regards to course notes. Having seen the results of self-directed learning throughout the pandemic, the instructional team did not provide a set of course notes to students, instead expecting them to attend lectures. Missing lecture meant that a student would have to find notes online, or ask a friend. This is how the course has been run since 2011, so it is not a deparature from historical precedent.

I’m of two minds about this. On one hand, I was involved with the course during the pandemic and the self-study model, and many of the questions being asked were indicative of little understanding of the material. This issue was not nearly as pronounced when we were able to resume in-person instruction and return to chalkboard lecturing. On the other hand, the pandemic has established the precedent of published course notes, and I understand for students with different learning styles that expecting them to copy off of the board is perhaps unideal. Additionally, one often touted learning strategy is to skim the next lecture’s contents before attending; a lack of course notes makes this learning strategy impossible (one that I have found personally valuable).

In the upcoming term, the plan is to publish a skeleton of the notes. At the moment we’re debating between publishing the skeleton for all, or just making it such that students who missed lecture for an understandable reason are able to gain access to the skeleton. I am personally in favour of publishing the skeleton for all, but this needs to be negotiated with the course coordinator, since the notes are his IP.

I do believe that my lectures are value added compared to self-studying. I think the incentive to attend lecture should be the quality of the lecturer rather than a lack of access to published resources. If a student determines, correctly or incorrectly, that lecture attendance is unnecessary, then that should be their own personal decision to make.

Midterm

Other feedback includes “trivia” on the midterm. This complaint I categorically disagree with. I do not believe in asking questions that I myself do not consider important information. I believe the complaints in this regard really arise because we have higher expectations of understanding than the first year courses. In CS 246, it no longer suffices to have a “fuzzy” understanding of how the language of study works, we expect a rigorous understanding of the semantics of C++, and the ability to use this understanding to reason about unforeseen examples. This is a complaint that has existed for a long time with CS 246, and one that I do not expect to change: the mindset is entrenched and passed down as part of the student body both in person and on Reddit threads.

Speed/Workload

A number of students noted that the course is particularly fast-paced. Unfortunately, there is not much I can do in this regard; there is a syllabus I am required to follow. It would be nice if first year courses conditioned students for this level of workload, instead of leaving the increased difficulty to CS 246. This will be alleviated slightly in future terms, where we can remove the Linux/tooling portion of the course, as it will be covered in the new lab course CS 136L.

Handwriting

My handwriting has always been terrible, and a couple of students noted this. I did pay attention to this at the beginning of the term, but then began to slip as I got more comfortable during lecture. I’m hoping to improve on this next term.