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.

错误:搜索内容不能为空,请输入英文关键词
错误:关键词超出字数限制,请精简
高级检索

Teaching Task Specification Efficiently in Introductory Programming Courses in Higher Education

  • Győző Horváth

摘要

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.