Teaching Task Specification Efficiently in Introductory Programming Courses in Higher Education
摘要
In introductory programming courses in higher education, systematic problem-solving consists of three interdependent steps: 1) the specification of the task, 2) the algorithm of the solving program, and 3) the implementation of the algorithm. During the specification phase, numerous decisions are made that help to describe subsequent steps, making specification a crucial stage in the design process, mainly when we use stricter analogous programming approaches, like derivation. However, the formal language used for the specification requires a considerable level of abstraction, so in practice this part of the task solution is often incomplete or incorrect from students. In this article, we aim to explore the challenges associated with the specification step in introductory programming courses in higher education. Additionally, we introduce a tool designed to alleviate these issues and elevate the specification process to the same level of experience as writing algorithms and code during problem solving.