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:37Learning 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. -
"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. -
Teaching graph algorithms with Visage
35-50Views:29Combinatorial optimization is a substantial pool for teaching authentic mathematics. Studying topics in combinatorial optimization practice different mathematical skills, and because of this have been integrated into the new Berlin curriculum for secondary schools. In addition, teachers are encouraged to use adequate teaching software. The presented software package "Visage" is a visualization tool for graph algorithms. Using the intuitive user interface of an interactive geometry system (Cinderella), graphs and networks can be drawn very easily and different textbook algorithms can be visualized on the graphs. An authoring tool for interactive worksheets and the usage of the build-in programming interface offer new ways for teaching graphs and algorithms in a classroom. -
The single-source shortest paths algorithms and the dynamic programming
25-35Views:31In 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. -
Fibonacci beyond binary recursion
173-185Views:28The 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. -
The far side of recursion
57-71Views:17Recursion is somewhat of an enigma, and examples used to illustrate the idea of recursion often emphasize three algorithms: Towers of Hanoi, Factorial, and Fibonacci, often sacrificing the exploration of recursive behavior for the notion that a "function calls itself". Very little effort is spent on more interesting recursive algorithms. This paper looks at how three lesser known algorithms of recursion can be used in teaching behavioral aspects of recursion: The Josephus Problem, the Hailstone Sequence and Ackermann's Function. -
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. -
Can a language be before “the first programming language”?
209-224Views:26I would like to present a potential new language which can be before "the first programming language". We can use this to write down the algorithms and source code can be generated from this. The keyword is XML. This can be used for describing algorithms, easy to check the syntax and the semantic. Source code can be transformed with XSLT. So the usage of this new language can help us to answer the question, which is the best first programming language? -
Methods of teaching programming
247-257Views:47Programming methodology is one of the oldest fields of IS education, and thus various methods have evolved for its teaching. While some of them could be used effectively in primary or secondary education, others are more suited for students in higher education. The methods themselves determine the structure and curricula of courses such as Programming methodology, Data types and algorithms, Programming technology. -
Solving mathematical problems by using Maple factorization algorithms
293-297Views:32Computer algebra gives methods for manipulating mathematical expression. In this paper we use the Maple software to solve some elementary problems. Computeraided approach in the instruction of mathematics helps to impart problem solving skills to students. -
Brute force on 10 letters
183-193Views:31We deal with two problems in the set of 10-character-long strings. Both problems can be solved by slightly different methods, but our approach for each is brute force. As we point out, there can be differences in effectivity even in different brute force algorithms. As an additional result, we answer an open question of Raymond Smullyan's. -
Linear clause generation by Tableaux and DAGs
109-118Views:32Clause generation is a preliminary step in theorem proving since most of the state-of-the-art theorem proving methods act on clause sets. Several clause generating algorithms are known. Most of them rewrite a formula according to well-known logical equivalences, thus they are quite complicated and produce not very understandable information on their functioning for humans. There are other methods that can be considered as ones based on tableaux, but only in propositional logic. In this paper, we propose a new method for clause generation in first-order logic. Since it inherits rules from analytic tableaux, analytic dual tableaux, and free-variable tableaux, this method is called clause generating tableaux (CGT). All of the known clause generating algorithms are exponential, so is CGT. However, by switching to directed acyclic graphs (DAGs) from trees, we propose a linear CGT method. Another advantageous feature is the detection of valid clauses only by the closing of CGT branches. Last but not least, CGT generates a graph as output, which is visual and easy-to-understand. Thus, CGT can also be used in teaching logic and theorem proving. -
A didactic analysis of merge sort
195-210Views:23Due to technical difficulties, educators teaching merge sort often avoid the analysis of the cost in the general and average cases. Using basic discrete mathematics, elementary real analysis and mathematical induction, we propose a self-contained derivation of bounds αn log_2 n + βn + γ in all cases. Independent of any programming language or pseudo-code, supported by intuitive figures, it is suitable for informatics students interested in the analysis of algorithms. It is also a good exercise in showing that induction allows us to actually discover constants, instead of simply checking them a posteriori. -
Simple Variations on The Tower of Hanoi: A Study of Recurrences and Proofs by Induction
131-158Views:127The Tower of Hanoi problem was formulated in 1883 by mathematician Edouard Lucas. For over a century, this problem has become familiar to many of us in disciplines such as computer programming, algorithms, and discrete mathematics. Several variations to Lucas' original problem exist today, and interestingly some remain unsolved and continue to ignite research questions. Nevertheless, simple variations can still lead to interesting recurrences, which in turn are associated with exemplary proofs by induction. We explore this richness of the Tower of Hanoi beyond its classical setting to compliment the study of recurrences and proofs by induction, and clarify their pitfalls. Both topics are essential components of any typical introduction to algorithms or discrete mathematics.
Subject Classification: A20, C30, D40, D50, E50, M10, N70, P20, Q30, R20
-
CS unplugged in higher education
1-23Views:40Nowadays, there is a significant lack of workforce in the IT industry, even though it is one of the most lucrative professions. According to researchers' forecasts, the existing shortage is growing, so the wages offered will be higher, yet it seems that young people are not attracted to the profession. This problem draws attention to the need to change the curriculum so that it can attract students more. One possible solution is to supplement the curriculum with CS Unplugged activities, which makes it easier to understand and deepen difficult concepts and make IT lessons more colorful. In my article, besides presenting the already known CS Unplugged activities, I will deal with how this can be applied in Hungarian higher education as well. -
A first course in computer science: languages and goals
137-152Views:17The College Board Advanced Placement exam in computer science will use the language Java starting in fall 2003. The language chosen for this exam is based on the language commonly taught in introductory computer science courses at the university level. This article reviews the purpose of an introductory course and the various suggestions for the curriculum of introductory courses published by the Association for Computing Machinery. It then proposes that such a course stress foundational concepts over specific language syntax, and then provides a list of such foundational concepts and related topics. Based on this fundamental curriculum, the article recommends C++ as the most appropriate language. An appendix provides a sample syllabus. -
Expressiveness of programming languages and environments: a comparative study
111-141Views:32In written and oral communication tools, the support of the understanding of our message have an important role: we can increase the expressiveness and the level of understanding of our topic by approaching it in several ways, i.e. in written methods by highlighting the important parts; in oral by changing tone and other elements of non-verbal communication. In this paper programming languages and developing environments are compared with each other in terms of their methods and their level of support to the solution of programming tasks.
There is a need to have these tools in programming and, of course, in teaching programming. What are the factors that define the distinctness and the legibility of a program? What are the basic principles which give an instrument in programmers' and students' hands in order to create a properly working program from already existing algorithms in the most efficient way? We search for the answers to these questions in this paper. -
Better understanding mathematics by algorithmic thinking and computer programming
295-305Views:117Tamá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
-
Algorithmics of the knapsack type tasks
37-71Views:28We 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. -
Gamification in Higher Education
87-106Views:451The way of thinking and the way of life of the today's children and teenagers have changed radically. Some of the well-established pedagogical methods that were used for decades have become obsolete. Therefore, we need to look for a new method to approach Generations Z and Alpha. Gamification, which has been known since 2010 and means the use of game elements in other areas of life, offers an opportunity to do so.
In addition to a brief description of gamification, my article shows some possibilities for using it at the university. Furthermore, I investigate the impact of gamification on the student in "Algorithms and Data Structures" university course.Subject Classification: 97P30
-
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
-
Learning and teaching combinatorics with Sage
389-398Views:45Learning Mathematics is not an easy task, since this subject works with especially abstract concepts and sophisticated deductions. Many students lose their interest in the subject due to lack of success. Computer algebra systems (CAS) provide new ways of learning and teaching Mathematics. Numerous teachers use them to demonstrate concepts, deductions and algorithms and to make learning process more interesting especially in higher education. It is an even more efficient way to improve the learning process, if students can use the system themselves, which helps them to practice the curriculum.
Sage is a free, open-source math software system that supports research and teaching algebra, analysis, geometry, number theory, cryptography, numerical computation, and related areas. I have been using it for several years to aid the instruction of Discrete Mathematics at Óbuda University. In this article I show some examples how representations provided by this system can help in teaching combinatorics. -
Mechanisms for teaching introductory programming using active learning
407-421Views:27One of the requirements of teaching introductory programming to students whose branch of learning is engineering or science is bridging the gap between in-class lectures and real-world applications. Traditional passive approaches to lecturing often focus on the syntax of a language with little or no discussion of the process involved in using the language to design algorithms to solve real-world problems. One way of overcoming the limitations of traditional lecturing is by tailoring lectures towards becoming more student-oriented, a pedagogical methodology known as active learning. This paper explores mechanisms for implementing active learning in introductory programming courses in computer science. -
Teaching Gröbner bases
57-76Views:25In 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. -
Delusions in informatics education
151-161Views:24In the following article our intention is to try to introduce the negative ideas that exist today in Hungary regarding informatics education within the secondary education system. [Zs] As far as we know, these delusions are characteristic of not only Hungary, but we believe that we should look for our own mistakes, that is why we refer to Hungarian examples.
We have examined the informatic knowledge taught in the first 10 years of secondary education, the possible curriculum of the general informatics subject.
To reach our aim, first we have to deviate a bit from our original topic, because without this, it would be more difficult to understand the core subject of the article. In the deviation we will explain what is called informatics, what is called informatics subject. Then we will deal with the main topic and in the summary we will explain what we believe is the aim of general informatics education.