  Object-oriented programming (OOP) is widely used in the software industry and
university introductory courses today. Following the structure of most
textbooks, such courses frequently are organised starting with the concepts of
imperative and structured programming and only later introducing OOP. An
alternative approach is to begin directly with OOP following the Outside-In
teaching method as proposed by Meyer. Empirical results for the effects of
Outside-In teaching on students and lecturers are sparse, however. We describe
the conceptual design and empirical evaluation of two OOP introductory courses
from different universities based on Outside-In teaching. The evaluation
results are compared to those from a third course serving as the control group,
which was taught OOP the "traditional" way. We evaluate the initial motivation
and knowledge of the participants and the learning outcomes. In addition, we
analyse results of the end-term exams and qualitatively analyse the results of
interviews with the lecturers and tutors. Regarding the learning outcomes, the
results show no signif- icant differences between the Outside-In and the
"traditional" teaching method. In general, students found it harder to solve
and implement algorithmic problems than to understand object oriented (OO)
concepts. Students taught OOP by the Outside-In method, however, were less
afraid that they would not pass the exam at the end of term and understood the
OO paradigm more quickly. Therefore, the Outside-In method is no silver bullet
for teaching OOP regarding the learning outcomes but has positive effects on
motivation and interest.
