Search
Search Results
-
An interactive animation for learning sorting algorithms: How students reduced the number of comparisons in a sorting algorithm by playing a didactic game
45-62Views:36Learning programming and understanding algorithms is one of the hardest tasks for novice computer science students. One of the basic algorithms they learn during the introductory programming and algorithms courses are the sorting algorithms. Students like learning these and other algorithms by animations and didactic games, however, these animations are not educationally useful in every case. In this article, we present our educational sorting game, which can be used to introduce the topic of sorting algorithms. The didactic game can be used later too, as a demonstrative tool for explaining the more efficient, quicksort algorithm. We conducted a pedagogical experiment, in which we examined the process of development of sorting algorithms by students while they used the mentioned didactic game. The results showed that students were able to create an algorithm to solve the sorting problem, and they improved its effectiveness by reducing the number of comparisons in the algorithm. They were also able to understand the importance of the efficiency of algorithms when we demonstrated them the quicksort algorithm using the same tool after the experiment. -
"Upperview" algorithm design in teaching computer science in high schools
221-240Views:39In this paper we are going to present a teaching/learning method and suggest a syllabus that help the high school students look at the algorithm design strategies from a so called "upperview": greedy, backtracking, divide and conquer, dynamic programming. The goal of the suggested syllabus is, beyond the presentation of the techniques, to offer the students a view that reveals them the basic and even the slight principal differences and similarities between the strategies. In consensus with the Comenius principle this is essential, if we want to master this field of programming ("To teach means scarcely anything more than to show how things differ from one another in their different purposes, forms, and origins. ... Therefore, he who differentiates well teaches well."). -
"Frontier algorithms"
139-152Views:23In this paper we present a new method to compare algorithm design strategies. As in case of frontier towns the cultures blend, the so called "frontier algorithms" are a mixture of different programming techniques like greedy, backtracking, divide and conquer, dynamic programming. In case of some of them the frontier character is hidden, so it has to be discovered. There are algorithms that combine different techniques purposively. Furthermore, determining the programming technique the algorithm is using can be a matter of point of view. The frontier algorithms represent special opportunities to highlight particular characteristics of the algorithm design strategies. According to our experience the frontier algorithms fit best to the revision classes. -
An improvement of the classification algorithm results
131-142Views:24One of the most important aspects of the precision of a classification is the suitable selection of a classification algorithm and a training set for a given task. Basic principles of machine learning can be used for this selection [3]. In this paper, we have focused on improving the precision of classification algorithms results. Two kinds of approaches are known: Boosting and Bagging. This paper describes the use of the first method – boosting [6] which aims at algorithms generating decision trees. A modification of the AdaBoost algorithm was implemented. Another similar method called Bagging [1] is mentioned. Results of performance tests focused on the use of the boosting method on binary decision trees are presented. The minimum number of decision trees, which enables improvement of the classification performed by a base machine learning algorithm, was found. The tests were carried out using the Reuters 21578 collection of documents and documents from an internet portal of TV Markíza. -
A case study of the integration of Algorithm Visualizations in Hungarian programming education
51-66Views:127In this study, I will introduce how Algorithm Visualizations (AV) can help programming education or, in this case, the acquisition of basic programming theorems. I used two di erent methods to test this: in the first round, I examined in a larger group how much the students' ability to solve specific tasks changes after being introduced to a visualization tool, and then, what was their motivation and experience during this process. In the second round, I looked for the components that could be important when choosing a tool with the help of an in-depth interview with a smaller number of individuals. In both cases, I describe the research, experience, and results of the study, and then summarize them at the end.
Subject Classification: 97P10
-
The single-source shortest paths algorithms and the dynamic programming
25-35Views:30In this paper we are going to present a teaching—learning method that help students look at three single-source shortest paths graph-algorithms from a so called "upperview": the algorithm based on the topological order of the nodes, the Dijkstra algorithm, the Bellman-Ford algorithm. The goal of the suggested method is, beyond the presentation of the algorithms, to offer the students a view that reveals them the basic and even the slight principal differences and similarities between the strategies. In order to succeed in this object, teachers should present the mentioned algorithms as cousin dynamic programming strategies. -
Integrating elements of data science into high-school teaching: Naïve Bayes-classification algorithm and programming in Python
307-316Views:99Probability 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
-
Fibonacci beyond binary recursion
173-185Views:27The Fibonacci series is a classical algorithm taught in computer science, usually implemented in some programming language. It is hard to find a programming textbook which doesn't touch on Fibonacci, and it's most common use is in the illustration of binary recursion. There are also many ways of tailoring the basic algorithm in order to implement it. This paper discusses some novel algorithms, which help address some of the limitations of binary recursion, but also illustrate how differing algorithms can be pedagogically beneficial. We introduce a simple algorithm for accurately calculating any Fibonacci number. -
Algorithmics of the knapsack type tasks
37-71Views:27We propose a new kind of approach of the teaching of knapsack type problems in the classroom. We will remind you the context of the general knapsack-task and we will classify it, including the two most popular task variants: the discrete and the continuous one. Once we briefly present the solving algorithm of the continuous variant, we will focus on the solving of the discrete task, and we will determine the complexity of the algorithms, looking for different optimizing possibilities. All these issues are presented in a useful way for highschool teachers, who are preparing students in order to participate in different programming contests. -
Teaching Gröbner bases
57-76Views:23In this article we offer a demonstration of how the StudentGroebner package, a didactic oriented Maple package for Gröbner basis theory, could assist the teaching/learning process. Our approach is practical. Instead of expounding on deep didactic theory we simply give examples on how we imagine experimental learning in classroom. The educational goal is to prepare the introduction of two sophisticated algorithms, the division algorithm and Buchberger's algorithm, by gathering preliminary knowledge about them. -
Comparing the IT skills and the programming knowledge of Hungarian students specialized in informatics with Romanian students attending a science course or a mathematics-informatics course
21-40Views:33The goal of this research is an analysis of the IT skills and programming knowledge of Hungarian and Romanian students attending a Science course or a Mathematics-Informatics course. Analysed was how effectively can students from different grades answer questions dealing with different subjects. After having evaluated the test results correctness of the original presumption emerged. Significance level was 5% through the analysis. Significant divergency in knowledge of Hungarian students and Romanian students of Humanities (Profil Uman) was found in 11th and 12th grades too. Romanian students attending a science course (Profil Real) and a Mathematics-Informatics course scored higher in programming than their Hungarian counterparts specialized in Informatics in the 11th grade. After the evaluation a final conclusion can be made: Romanian students of the Real Profile have the same or more practice in programming than Hungarian students specialized in Informatics, though the latters have the same or better IT skills. Unfortunately, Hungarian teachers concentrate on word processing and spreadsheet calculation and teach programming just for the students specialized in Informatics, although algorithm thinking would be important for every student before finishing secondary school. -
Analogous programming with a template class library
135-152Views:43In this paper, a template class library and its usage can be read. The classes of the library contain the C++ code of the algorithm of programming theorems. This library supports the implementation of the programs that are planned by analogous programming but the primary aim of its usage is to introduce the object-oriented programming style to show how a reusable code can be written with inheritances, overriding virtual methods, composition of objectcs and template parameters. -
Word problems in different textbooks at the early stage of teaching mathematics comparative analysis
31-49Views:151In a previous research, Csíkos and Szitányi (2019) studied teachers’ views and pedagogical content knowledge on the teaching of mathematical word problems. While doing so, they reviewed and compared Eastern European textbooks of Romania, Russia, Slovakia, Croatia, and Hungary to see how world problem-solving strategies are presented in commonly used textbooks. Their results suggested that teachers, in general, agreed with the approach of the textbooks regarding the explicit solution strategies and the types of word problems used for teaching problem-solving. They also revealed that the majority of the participants agreed that a word problem-solving algorithm should be introduced to the students as early as in the first school year. These results have been presented at the Varga 100 Conference in November 2019. As the findings suggested a remarkable similarity between the Eastern European textbook approaches, in the current study we decided to conduct further research involving more textbooks from China, Finland, and the United States.
Subject Classification: 97U20, 08A50
-
Cultivating algorithmic thinking: an important issue for both technical and HUMAN sciences
107-116Views:28Algorithmic thinking is a valuable skill that all people should master. In this paper we propose a one-semester, algorithm-oriented computer science course for human science students. According to our experience such an initiative could succeed only if the next recipe is followed: interesting and practical content + exciting didactical methods + minimal programming. More explicitly, we suggest: (1) A special, simple, minimal, pseudo-code like imperative programming language that integrates a graphic library. (2) Interesting, practical and problem-oriented content with philosophical implications. (3) Exciting, human science related didactical methods including art-based, inter-cultural elements. -
Programming Theorems and Their Applications
213-241Views:117One 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
-
Combinatorics – competition – Excel
427-435Views:31In 2001 the Informatics Points Competition of the Mathematics Journal for Secondary School Students (KÖMAL) was restarted [1]. The editors set themselves an aim to make the formerly mere programming competition a bit more varied. Therefore, every month there has been published a spreadsheet problem, a part of which was related to combinatorics. This article is intended to discuss the above mentioned problems and the solutions given to them at competitions. We will prove that traditional mathematical and programming tasks can be solved with a system developed for application purposes when applying a different way of thinking. -
How to teach computer programming if our goal is the International Olympiad in Informatics
13-25Views:35Nowadays if a student in Hungary (age between 17-20 years old) wants to be the member of the Hungarian selected team (has four members) to participate in the International Olympiad in Informatics (IOI), first, he has to qualify himself in the first fifteen of the National Secondary School Competition (OKTV) in the programming category after the III. round. Then he should be in the first four place after the sixth round of the Selection Competition. Being successful is necessary that the student wants to start studying computer programming at least in the 9th school year and he needs a teacher who prepares him. In the last nine years three students of the author have participated in five Olympics and two of them won gold and bronze medals. This article wants to demonstrate the methods that a teacher needs to use to teach students in 9th school year for computer programming, to be the member of the Hungarian National Team after three or four years. -
Teaching sorting in ICT
101-117Views:30This article is aimed at considering how an algorithmic problem – more precisely a sorting problem – can be used in an informatics class in primary and secondary education to make students mobilize the largest possible amount of their intellectual skills in the problem solving process. We will be outlining a method which essentially forces students to utilize their mathematical knowledge besides algorithmization in order to provide an efficient solution. What is more, they are expected to use efficiently a tool that has so far not been associated with creative thinking. Sorting is meant to be just an example, through which our thoughts can easily be demonstrated, but – of course the method of education outlined can be linked to several other algorithmic problems, as well.