CS136L: Tools and Techniques for Software Development | Winter 2023 | Sessional Lecturer, 1 lab

Course Description

CS 136L: Tools and Techniques for Software Development

This course introduces students to tools and techniques useful in the software development lifecycle. Students learn to navigate and leverage commands and utilities in the Linux Command Line Shell. Students gain experience in version control software, writing scripts to automate tasks, and creating effective test cases to identify bugs. Tracing and debugging strategies are discussed. Students also gain experience in using built-in support for version control, testing, debugging, build automation, etc. in integrated development environments (IDEs).

Student Course Perceptions

Note: the following data is based on just 10 evaluations. See more information in the My Thoughts section

Explanations of course concepts: 69% ± 33%

Creating a supportive learning environment: 71% ± 34%

Stimulating student interest: 67% ± 31%

Overall instructor effectiveness: 69%

Click here for full data

My Thoughts

This term was the second ever offering of CS136L. The previous (first) offering had only about 100 students, this one had over 1000. As such, things were naturally going to be a little bumpy.

Regarding the poor student course perceptions: first, note that it is based off of just 10 evaluations. Of which, a few simply selected “Strongly Disagree” or “Disagree” for all aspects. I think a large part of this has to do with the course structure. CS136L was designed to have a flipped structure: students would read the course content online on their own time, and then come to the lab to work on the assignment problems. As such, my lab essentially functioned like an extended office hours - I would wait for student questions, help them with their lab, then await further questions. I didn’t really get the chance to motivate students or explain content outside of specific lab problems. I will point to the two evaluations noting the lab instructor as being helpful in their learning.

Part of the blame could be attributed to me. I know that other instructors in other sections of the course prepared 20-30 minute mini-lectures to help reinforce the online content and make their sections more engaing. I admittedly could have spent some time doing this, but unfortunately between graduate work, research, and teaching CS 246, I really didn’t have the time to prepare new extra lecture material every week.

Attendance dropped off slowly during the course; near the end of the term I only had a handful of students showing up each time. I was able to make some good connections with a few of the students, but overall it was a disappointing experience. From what I heard from the other instructors, attendance dropped similarly for them, even with their mini-lectures and more engaging examples.

In general, I am not yet convinced of the merit of the “flipped” classroom style of lecturing. From what I’ve seen and experienced so far, it usually results in low attendance and poor retention of material. I think in the future, I would prefer to avoid teaching in a flipped style as much as possible. I’ve also generally heard that it results in worse evaluations, which I’d obviously like to avoid when I’m just starting out as a lecturer.