Software engineering (SE) is a multidimensional field that involves activities in various areas and disciplines, such as computer science, project management, and system engineering. Though modern SE curricula include designated courses that address these various subjects, an advanced summary course that synthesizes them is still missing. Such a course would enable young practitioners to get a comprehensive description of SE, to experience a genuine software development process, and to appreciate the relations and tradeoffs between the various domains of SE. This paper proposes a multidimensional SE course framework aimed at giving SE students just such comprehensive, cross-paradigm, practical, and theoretical experience and background. The course is organized along four axes: a) fundamentals of SE; b) practices and tools; c) productization; and d) technology evolution. Each of these axes, in themselves multifaceted, enables an examination of SE on various scales and from different perspectives; together they create a holistic multidimensional description of SE. The course is evaluated according to accepted criteria highlighting the course scope, pedagogic decisions, and relevance. The authors also describe their experience of teaching the course three times in the Tel Aviv University and the academic college of Tel-Aviv-Yaffo, Israel.
- Course design
- Course evaluation
- Educational axes
- Multidimensional domain
- Multidimensional software engineering course
- Software engineering
- Software engineering education