what do teachers teach in introductory programming?
In this article, we try to create a general, worldwide picture of teachers' opinion about what should be taught in introductory programming courses. We focus on the debate about restructuring CS1. The study explores what teachers believe is important to teach, what they actually teach, and what students find most difficult (according to their teachers). what is the general approach to teaching (programming language, IDE, object-orientation or not, type of institution), what topics are taught, and what role do the areas that novices find difficult play in introductory programming course.In addition, we explore how these specific topics fit into a larger conceptual classification: Earlier studies of topics taught in introductory programming focuses only on one dimension of a given topic - either relevance or difficulty. In this study, we evaluate each topic regarding three dimensions: relevance, difficulty and the cognitive level (according to Bloom's taxonomy). This allows giving a more faceted picture of teachers' beliefs in teaching introductory programming courses.Furthermore, we assess the role of findings from the eighties in today's teaching: The need to understand five different areas of programming. Are these areas still in focus; are they relevant, and what is the connection to the topics taught - especially object-oriented (OO) topics?A special focus is given on students' understanding of the execution of a (OO) program; one of the five areas. In order to connect the ideas of a notional machine to OO concepts we present a four levelled competence hierarchy for object-interaction.Teachers assessed the area 'understanding the notional machine' as least important. Despite this, they assessed the herachy of object-interaction - meant as basis for a notional machine for the OO-paradigm - as an important aspect.Although teachers stress the importance of teaching general abstract structures, teaching seems to focus on concrete programming issues. A conclusion for further research on teaching OO programming and concerning the hierarchy of object interaction is that teaching is not only a matter of topics, but also a matter of perspective on teaching the topics.
cs1 oo programming object interaction course design program comprehension