Search

Published After
Published Before

Search Results

  • Programming Theorems and Their Applications
    213-241
    Views:
    117

    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 application 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

  • Introductory Computer Programming Courses in Mathematics Curriculum
    19-30
    Views:
    110

    We present the results of surveys and curricular research on introductory computer programming courses that are required or recommended for mathematics degrees at U.S. colleges and universities. Our target schools were those with populations between 5,000 and 20,000 undergraduate students. A key result is a synopsis of programming languages in use in these introductory courses with Java, Python and C + + holding the top three spots. We found that 85% of the 340 schools in our pool require or recommend an introductory programming course as a component of a mathematics degree. Furthermore, most of these introductory programming courses are taught by faculty outside of the mathematics department. These results indicate that mathematics faculty value computer programming and should be actively involved in setting learning outcomes, incorporating skills and concepts learned in introductory programming courses into subsequent mathematics courses, and determining programming languages in use.

    Subject Classification: 97D30, 97P20, 97P40

  • Integrating elements of data science into high-school teaching: Naïve Bayes-classification algorithm and programming in Python
    307-316
    Views:
    99

    Probability theory and mathematical statistics are traditionally one of the most difficult chapters of mathematics to teach. One of the authors, Péter Princz has experience in teaching various topics via computer programming of the problem at hand as a class activity. The proposed method is to involve programming as a didactic tool in hard-to-teach topics. The intended goal in this case is to implement a naïve Bayes-classifier algorithm in Python and demonstrate the machine-learning capabilities of it by applying it to a real-world dataset of edible or poisonous mushrooms. The students would implement the algorithm in a playful and interactive way. The proposed incremental development process aligns well with the spirit of Tamás Varga who considered computers as modern tools of experimental problem solving as early as in the 1960s.

    Subject Classification: 97D40, 97D50, 97K50, 97K99, 97M60, 97P40, 97P50, 97U50

  • Better understanding mathematics by algorithmic thinking and computer programming
    295-305
    Views:
    117

    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 1978, 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