Mandatory or Voluntary Course Work in Introductory Programming Courses?


  • Sondre Sæther Bolland University of Bergen, Norway
  • Tyra Fosheim Eide University of Bergen, Norway
  • Torstein J. F. Strømme University of Bergen, Norway


Mandatory vs Voluntary, Introductory Programming, CS2, Didactics, Scholarship of Teaching and Learning


Which approach, mandatory or voluntary weekly labs, is more conducive to student learning? We conducted a quasi-experiment in a bachelor level programming course (CS2) at the Department of Informatics at the University of Bergen. The course had maintained consistent structure, content, and faculty for the past two iterations, with one key distinction: in 2022, the weekly labs were made mandatory (n=265), whereas in 2021 they were voluntary (n=311). We compared student performance, retention, stress levels, and satisfaction between the two iterations.

Our findings revealed that in the semester with mandatory labs, students demonstrated significantly better performance on an end-of-term assignment that was nearly identical for both iterations of the course. We also observed a slight increase in the retention rate for students who participated in the final exam, but this difference did not reach statistical significance.

Regarding stress and workload, we employed a mixed-methods approach, utilizing both qualitative and quantitative data collected through surveys to gauge students’ experience with mandatory versus voluntary assignments and how it impacts their workload. The responses revealed that students who had not experienced mandatory assignments expressed concerns about being overwhelmed with workload. However, students who had actually gone through the mandatory workload found it manageable and even viewed it as a positive aspect of their overall learning experience in the course. Finally, we compared the end-of-term anonymous course evaluations between the two years, and found no statistically significant difference in course satisfaction between the two iterations.


Download data is not yet available.