Using Conceptual Blending to Teach Software Design Principles to Undergraduates
The domain of software design is gaining a long overdue recognition as a vital discipline within software engineering, necessitating innovative approaches to its teaching in undergraduate education. Despite the growing importance of software design, academic programs often treat it as a secondary skill, overshadowed by the strong emphasis on coding. Only a few schools offer a design degree or dedicated design courses. This disparity between industry demands and educational practices underscores the need for novel pedagogical strategies. In our innovative work, we discuss a new way of effectively teaching software design-by-analogy for undergraduates to help them rapidly acquire the essential skills needed to design complex software without getting entangled in complex code generation and management. Software design does not necessarily follow the same clear delineation/separation between modules and components naturally apparent in tangible engineering domains. We employ “Conceptual Blending” to help students map their everyday experiences onto software design concepts. The process begins with students analyzing a simple two-arm watch to identify its user interface and create a finite state automaton for its interaction design. Success rates decline as the complexity of the watches increases, underscoring the software design challenges. By comparing these exercises to software interfaces, students learn to apply design techniques such as navigation modeling and prototyping, ensuring they can create intuitive, user-friendly software.
Authors
- Mohamed Y. Selim (ORCID: https://orcid.org/0000-0001-6695-370X)
- Oliver Eulenstein (ORCID: https://orcid.org/0000-0002-5291-3798)
- Ashraf Gaffar
Institutions
- Iowa State University (US)
Publication Details
- Published
- 2024-10-13
- DOI
- https://doi.org/10.1109/fie61694.2024.10893506
- Primary Topic
- Open Education and E-Learning
- Type
- article
- Field-Weighted Citation Impact
- 0.00