The dissertation identifies and discusses impact of a model-based approach to teaching and learning introductory object-oriented programming both for practitioners and for computer science education research.Learning to program is notoriously difficult. This dissertation investigates ways to teach introductory object-oriented programming at the university level. It focuses on a model-based approach, describes and argues for this approach and investigates several of its aspects. It gives an overview of the research in teaching introductory programming in an objects-first way. The dissertation also investigates ways for university teachers to share and document best practices in teaching introductory object-oriented programming through pedagogical patterns. The dissertation addresses both traditional young full-time students and experienced programmers (although not in object-orientation) participating in part-time education. It examines whether the same success factors for learning programming apply to a model-based approach as to introductory programming courses in general for full-time students and gives a general overview of research in success factors for introductory programming. Some factors are the same, because students‘ math competence is positively correlated with their success. The dissertation examines how experienced programmers link a model-based programming course to their professional practices. The general answer is that the part-time students do not need to have a direct link to their specific work-practice, they expect to create the link themselves; but the teacher must be aware of the conditions facing the part-time students in industry. Furthermore, the dissertation addresses interaction patterns for part-time students learning model-based introductory programming in a net-based environment. A previously prepared solution to an exercise is found to mediate the interaction in three different ways. Design patterns have had a major impact on the quality of object-oriented software. Inspired by this, researchers have suggested pedagogical patterns for sharing best practices in teaching introductory object-oriented programming. It was expected that university teachers‘ knowledge of pedagogical patterns was limited, but this research proved that to be wrong; about half of the teachers know pedagogical patterns. One of the problems this dissertation identifies is the lack of a structuring principle for pedagogical patterns; potential users have problems identifying the correct patterns to apply. An alternative structuring principle based on a constructivist learning theory is suggested and analysed.
Bennedsen, J. and Caspersen, M. E. (2004). Programming in Context: a Model-First Approach to CS1. SIGCSE '04: Proceedings of the 35th SIGCSE Technical Symposium on Computer Science Education, Norfolk, Virginia, United States, 477 – 481.
Bennedsen, J., & Caspersen, M. E. (2005b). Revealing the Programming Process. SIGCSE '05: Proceedings of the 36th SIGCSE Technical Symposium on Computer Science Education, St. Louis, Missouri, United States, 186 – 190.
Bennedsen, J. and Fjuk, A. (2006). Learning Object-Orientation by Professional Adults. International Journal of Continuing Engineering Education and Life-Long Learning, 16(6), 453 – 465.
Bennedsen, J., Berge, O. and Fjuk, A. (2005). Examining social interaction patterns for online apprenticeship learning – Object-oriented programming as the knowledge domain. European Journal of Open, Distance and Elearning. 2005 / II.
Bennedsen, J. and Caspersen, M. E. (2006a). Abstraction Ability as an Indicator of Success for Learning Object-Oriented Programming? SIGCSE Bulletin (Association for Computing Machinery, Special Interest Group on Computer Science Education), 38(2), 39 – 43.
Bennedsen, J. and Caspersen, M. E. (2005a). An Investigation of Potential Success Factors for an Introductory Model-Driven Programming Course. ICER '05: Proceedings of the 2005 International Workshop on Computing Education Research, Seattle, Washington, United States, 155 – 163.
Bennedsen, J. and Eriksen, O. (2006). Categorizing Pedagogical Patterns by Teaching Activities and Pedagogical Values. Computer Science Education, 16(2), 157 – 172.
Bennedsen, J. (2006b). The Dissemination of Pedagogical Patterns. Computer Science Education, 16(2), 119 – 136.