Blogs (1) >>

Developing a repertoire of notional machines (i.e., pedagogical tools for teaching programming) is essential for new computer science (CS) educators. However, there is a lack of documentation of notional machines and related pedagogical content knowledge (i.e., insights into teaching CS content). Our experience report addresses this lack of documentation and captures insights from our professional learning community. We co-designed an approach to use physical objects to teach inheritance in Java. Unlike a research paper that would rigorously document a few student outcomes with the expectation that these would generalize, our experience shares our observations from multiple years of teaching with the goal of providing a large number of things for educators to consider when teaching inheritance in Java. Drawing from an analysis of our meeting notes, we describe our instructional sequence, our perceptions of its current strengths and weaknesses for supporting students’ learning, insights from our previous failed attempts, and eight pedagogical practices.