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 (8:30 - 9:50 AM)
Explanations of course concepts: 96%
Creating a supportive learning environment: 94%
Stimulating student interest: 94%
Overall instructor effectiveness: 95%
Section 006 (11:30 AM - 12:50 PM)
Explanations of course concepts: 96%
Creating a supportive learning environment: 94%
Stimulating student interest: 93%
Overall instructor effectiveness: 94%
My Thoughts
This term has definitely been the smoothest sailing that I’ve had in the Master’s degree so far. I taught CS 247 in the previous term which was a lot of work being the sole instructor. This term, I was in a team of experienced CS246 instructors who were able to provide a lot of support. My responsibilities only consisted of writing one assignment, three tutorial problems, co-writing the midterm with another instructor, marking the midterm/final, and lecturing. Compared to last term where I had to lecture, prepare course note material, and design all the assignments and exams - this was comparitively less work for higher pay. Awesome!
And, in-part thanks to teaching being easier this term, my research has progressed at a faster pace than it ever has before. Next term I have no teaching on the docket whatsoever, so research and finishing my thesis will be my sole focus.
Student surveys overall went well. Lack of course notes is still the primary complaint. Not much I can do about this. Only one complaint about the midterm being “trivia” this term, which is better than in previous terms. There were complaints about the midterm being too difficult, which is never intended, but often the case with CS 246. There are always students who score in the high 90s on the midterm - so I think it’s just that gap between expectation for first-year courses and second-year courses that is tripping the majority of students up. Most students are still studying just by reviewing course notes rather than trying to challenge themselves to achieve mastery the subject - they are not asking themselves questions at the edge of their knowledge, which is exactly where we target the questions on examinations. If one just reviews course notes, then that’s using average study strategies, and will result in an average score.
We also ran a new format for the course tutorials this term, which I think turned out to be very effective. In previous terms, CS 246 tutorials simply featured an ISA or IA rehashing course concepts again for students who needed extra presentation. The quality varied depending on the instructional ability of those giving the tutorials, and often the examples did not differ significantly from that presented in class, making them unhelpful to students who didn’t understand the concepts in the first place. This term, we instead designed simple problems that could be solved within a tutorial timeslot - i.e, within one hour. Then the ISAs/IA would act as a resource students could consult if they got stuck. Each passed tutorial problem (> 50%) reduced the final exam’s weight slightly, giving students a simple incentive to complete the problems. The problems also gave students a more realistic example of the difficulty of exam problems: tutorial problems are much more akin to exam problems as compared to lengthy assignment problems. This was the first time that tutorials appeared positively in the perceptions.