| Modelling is for reasoning: A challenge to software engineering education |
Abstract
In a broad sense computing is an area of knowledge from which a popular and effective technology emerged long before a solid, specific, scientific methodology, let alone formal foundations, have been put forward. This may explain some of the weaknesses in the software industry, on the one hand, as well as an excessively technology-oriented view which dominates software engineering training at pre-university and even undergraduate teaching, on the other. Modelling, understood as the ability to choose the right abstractions for a problem domain, is consensually recognised as essential for the development of true engineering skills in this area, as it is in all other Engineering disciplines. But how can the basic problem-solving strategy one gets used to from school physics, i.e., understand the problem, build a mathematical model, reason within the model, calculate a solution, be taken (and taught) as the standard way of dealing with software design problems? This paper addresses this question, illustrating and discussing the interplay between modelling and reasoning in Software Engineering, in the context of two concrete educational experiments at both undergraduate and professional levels.