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
Explanations of course concepts: 95%
Creating a supportive learning environment: 93%
Stimulating student interest: 91%
Overall instructor effectiveness: 93%
My Thoughts
This was during the second term of my Master’s degree, and also my second term as a sessional lecturer. There were some unique challenges throughout this term. I had lectured two sections of CS 246 in the previous term, which made teaching this course relatively straightforward compared to teaching something new. However, I was also lecturing CS136L for the first time, and my graduate courses were heavier than the previous semester. Nevertheless, I think the term was successful overall.
Looking over the reviews, most of the complaints were associated with the lack of course notes and the pacing of the course. Course pacing will hopefully be alleviated next term since the curriculum is changing to remove the bash content (now covered in CS136L). At the recommendation of the course coordinator, we elected not to provide outright course notes, but students who missed a lecture can provide a reason to the ISA, and receive notes for just that lecture. Some students weren’t aware of the system, and others ended up abusing it. I am teaching CS 247 next term and intend to publish notes after each lecture. I am curious to see if the fears about published course notes affecting student attendance do actually turn out to be valid.
When compared to last term, there were few complaints about the contents of the midterm, despite the averages and the covered content actually being similar. I partially hypothesize this is due to it being an “off”-term for CS 246; the students taking the course are either in a non-standard co-op sequence, retaking the course, or not CS majors. As such, this mentality of the midterm being C++ “trivia” was not passed down, and so it was regarded fairly. It demonstrates just how much of the perception of fairness is entrenched in mindset: if you believe an evaluation to be fair then performing poorly is a reflection on yourself. If you believe an evaluation is unfair then you don’t have to do the difficult work of processing a poor result: you can simply blame it on the evaluation’s design.