Abstract:
The struggles of novices taking introductory computer science courses to master basic constructs and develop an understanding of the notional machine continues to drive computer science education in the search of new pedagogical approaches. This work examines in depth two recent proposals: mastery learning and productive failure. Both approaches are grounded by constructivism, which should reduce the challenges that CS1 students face when learning to code.
By exploring the concepts that drive these pedagogical approaches, this study aims to make constructivism more accessible to CS0/CS1 teachers. The two approaches illustrate and highlight key concepts that support constructive learning.
The main outcomes from this work are the concept maps generated for each pedagogical approach, along with descriptive tables of their concepts. Both approaches support constructive learning by utilising (1) adaptive instruction that aligns with the current constructed knowledge of students, and (2) the use of student’s failure as key to identify knowledge gaps and improve learning.
By exploring the concepts that drive these pedagogical approaches, this study aims to make constructivism more accessible to CS0/CS1 teachers. The two approaches illustrate and highlight key concepts that support constructive learning.
The main outcomes from this work are the concept maps generated for each pedagogical approach, along with descriptive tables of their concepts. Both approaches support constructive learning by utilising (1) adaptive instruction that aligns with the current constructed knowledge of students, and (2) the use of student’s failure as key to identify knowledge gaps and improve learning.