Having finished another semester with introductory computer science classes, I wanted to compare with my first semester of help teach a similar course. This most recent semester’s course can be thought of as an (optional) introductory class to the one I taught the previous semester, and is most definitely student’s first look at coding.
I concluded previously that I wanted to do less tutorial style programming. Excessive hand-holding I felt hurt the students later in the semester, especially during exams. So with this most recent class, both the instructor and I tried to let the students be more independent during the lab sections.
Through this, I’ve decided that it takes a very specific kind of student to thrive in this environment: self-directed, willing to experiment, and slow to frustrate. With only one of me and roughly 20 students in a lab sections, it takes me a while to help each student individually. Those which did best seemed to be those who could apply what they knew already to guess how to convert their thoughts into Python, or more importantly, to learn how to think in such a structured way.
For the rest, however, there didn’t seem to be much of a difference. The programming portions of the midterm and final were sadly evenly split between sink and swim. If anything, the early lack of tutorials seemed to hurt the majority of students. We did for the last third of the class start doing this, however, and the quality of the homework submissions improved greatly.
In these introductory classes, when retention is a goal, the guided programming model seems to work very well. I’d be curious to try starting the semester with more tutorials and gradually removing them next time.