Instructors of a new self-paced version of Introduction to Computer Programming found that three weeks before the end of classes, about half of the students enrolled were halfway through the course and none had accelerated ahead to finish the course early.
“It’s interesting because we’ve had a couple of comments that a lack of deadlines has meant that they had trouble focusing on the material because they didn’t have a deadline looming,” said Paul Gries, an associate professor, teaching stream of computer science at the University of Toronto.
The pilot version of the CSC108 course – called “mastery-based” because students must master each section before moving on to the next – began in the winter term, with 60 students taking part. The course is made up of seven modules, with weekly exercises and three term assignments, plus the midterm and final exam.
The lack of deadlines proved valuable to some students who said the pace best fit in with their course load.
“I don't feel stressed, and I don't feel very restricted in terms of time,” said Juliana Lee, a fourth-year life sciences student majoring in immunology and biochemistry. “In contrast, if I were to take a different class that requires me to do work based on the professor's timeline, then I probably would be sleep-deprived.”
Paul Gries, associate professor, teaching stream, answers student questions during a mastery-based section of Introduction to Computer Programming (photo by Ryan Perez)
Second-year student Fatima Pakfetrat agreed. “I’m doing some very hard courses and this gives me time to put this course on the weekend, or work on it whenever I’m ready," she said.
About half the class had reached module four with three more and three weeks remaining, though the instructors said they were willing to provide additional time, leading up to the final exam at the end of April.
Gries’s co-instructor, Colin Morris, a master’s graduate of the department of computer science, has experienced all three types of the course’s delivery: lecture, inverted and mastery.
“I'm fascinated by the things that have changed since I was a student,” says Morris. “When I was a grad student, I helped Paul and Jennifer Campbell [associate professor, teaching stream] do a pilot of CSC108 that involved watching the lectures at home and doing the homework in class. And now that has become the standard way to teach CSC108. That’s very different from the CSC108 I took. But I think it's been beneficial to the students.”
Morris opted to pursue teaching after a few years in the industry as a software engineer and manager with Apple Inc. “A couple of times that I've mentioned it to students they do seem really interested in that – really, the Apple in California? It makes it real for them. The places that someone who started in their position can go.”
For teaching assistant Manasa Bharadwaj, a master’s student of applied computing, the course has been a fun experience.
“It's very nice because usually students come for the [TA] hour, if it's an assignment, or they have an exam. But in this class, something happens every day. They always want to learn, because of the ‘quest organization’ [of the course material]. It feels like they're playing a game and so they want to ask you as much as they can. That's fun.”
Campbell says she is spearheading a study of the overall effectiveness of the course, including analysis of survey data. They expect to later publish an experience report and research paper about the pilot.
Gries says mastery-based CSC108 will be back, likely in the fall 2018 semester when more students enrol. Students can select the option as space permits. The pilot isn’t intended for any specific kind of learner – it’s meant for anyone who wants to learn programming.
For first-year life sciences student, Asad Hasan, who plans to pursue a computer science minor, the mastery-based course was a happy accident.
“I sort of realized in the first class that this was self-paced,” he said.
“Pacing yourself, being disciplined, is hard as a first-year. But I'm cool with it.”
The mastery-based pilot for Introduction to Computer Programming is supported through the Provost’s Learning Engagement and Advancement Fund (LEAF).