Tamás Varga’s mathematics education experiment covered not just mathematics, but also other related topics. In many of his works he clearly stated that computer science can support the understanding of mathematics as much as mathematics supports informatics. On the other hand, not much later than the introduction of the new curriculum in 197...8, personal computers started to spread, making it possible to teach informatics in classes and in extracurricular activities. Varga’s guided discovery approach has a didactic value for other age groups as well, not only in primary school. Its long-lasting effect can be observed even in present times. Having reviewed several educational results in the spirit of Tamás Varga, we have decided to present an extracurricular course. It is an open study group for age 12-18. Students solve problems by developing Python programs and, according to our experiences, this results in a deeper understanding of mathematical concepts.
Subject Classification: 97B10, 97B20, 97D50, 97N80, 97P20, 97P30, 97P40, 97P50, 97U70
One of the effective methodological approaches in programming that supports the design and development of reliable software is analogy-based programming. Within this framework, the method of problem reduction plays a key role. Reducing a given problem to another one whose solving algorithm is already known can be made more efficient by the appl...ication of programming theorems. These represent proven, abstract solutions – in a general form – to some of the most common problems in programming. In this article, we present six fundamental programming theorems as well as pose five sample problems. In solving these problems, all six programming theorems will be applied. In the process of reduction, we will employ a concise specification language. Programming theorems and solutions to the problems will be given using the structogram form. However, we will use pseudocodes as descriptions of algorithms resembling their actual implementation in Python. A functional style solution to one of the problems will also be presented, which is to illustrate that for the implementation in Python, it is sufficient to give the specification of the problem for the design of the solution. The content of the article essentially corresponds to that of the introductory lectures of a course we offered to students enrolled in the Applied Mathematics specialization.
Subject Classification: D40