Re ection is an important part of agile software processes as witnessed, e.g., by the Sprint Retrospectives in Scrum or by the various learning feedback loops in XP. Engineering education also emphasises the importance of re ective practice, e.g., in Kolb's learning cycle and Schon's re ection-in/on-action. Our contribution in this chapter is a toolkit for re ective practice that shows how re ection can be used by software engineering students for two purposes: to re ect on the application of a software process and to re ect on their learning process. In order to help students understand the purpose of re ection and how to approach re ection, we follow a cognitive apprenticeship approach in which the teachers re ect about the events in the course, their own goals, and how they are aligned with the teaching. Students are asked to re-
ect during supervisions and as part of their written assignments from the very beginning of the course. We thus combine a meta-cognitive approach where re ection is taught as a learning strategy with a common software engineering practice of continuous improvement through re ection. We evaluate the re ective model and a course design based on it through the student, teacher, and theoretical lenses based on empirical data.