Novel Use of Software Engineering Concepts for STEM Education
摘要
It is almost universally recognized that STEM education is in crisis. At the same time, many careers require employees to possess well developed knowledge of STEM concepts. Numerous attempts have been made at revising curricula of STEM courses but with little success. The genesis of the problem lies in the Algebra course(s) that students take in their middle school and/or high school years. Many children who perform relatively well in courses on arithmetic in earlier grades have difficulties with the algebra course. Since algebra is foundational for both advanced math courses as well many other STEM topics such as statistics and data analysis, poor performance in algebra and lack of conceptual understanding leads to increasingly poor performance in later STEM courses. In this paper, we show that a set of key concepts of Software Engineering, such as encapsulation, specifications of the operations provided by the encapsulation without reference to their implementations and closures provide a promising approach to helping students develop conceptual understanding. Moreover, this observation also allows us to build systems that include appropriate scaffolding to provide less capable students appropriate support, guidance and additional exercises to improve both their skills and depth of understanding.