How should teaching modeling and programming intertwine?
This paper refers to 15 years experience in teaching object-oriented (OO) software development for undergraduate students. Our teaching approach includes modeling with UML and programming with Java. In a first course we introduce the students to OO analysis and OO design including using selected design patterns as well as to OO programming including UML2Java transformation based on small applications. In the subsequent project course students have to implement a mid-size application in a work-sharing software development process. Although the topics of the courses have basically not changed over the years we experimented with two basic didactic approaches in the introductory first course. The underlying issue is how should modeling and programming intertwine to educate both modelers and programmers. In this paper we evaluate both didactic approaches based on statistical results of written exams.