Distributed Software Engineering (DSE) concepts in Computer Science (or Engineering) Degrees are commonly introduced using a hands-on approach mainly consisting of teaching a particular distributed and component-based technology platform (such as Java Enterprise Edition or Microsoft .NET) and proposing the students to develop a small distributed software application with it. Though this approach provides the students with some relevant practical knowledge, we believe that it is not the most appropriate way of teaching all the concepts and particularities of DSE. Thus, in this paper we report on our experience of redesigning an initial DSE course following a model-based approach. By raising the abstraction we gained modularity, separation of concerns and technology independence, while making the course evolve according to the latest trends in software development methods. Categories and Subject Descriptors D.2.0 [Software Engineering]: General ? standards. D.2.2 [Software Engineering]:...