Search

Published After
Published Before

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-62
    Views:
    8
    Learning 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.
  • Teaching graph algorithms with Visage
    35-50
    Views:
    10
    Combinatorial 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-35
    Views:
    14
    In 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.
  • "Frontier algorithms"
    139-152
    Views:
    6
    In 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.
  • Methods of teaching programming
    247-257
    Views:
    28
    Programming 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.
  • Learning and teaching combinatorics with Sage
    389-398
    Views:
    12
    Learning 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.
  • The far side of recursion
    57-71
    Views:
    6
    Recursion 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.
  • Mechanisms for teaching introductory programming using active learning
    407-421
    Views:
    12
    One 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.
  • A didactic analysis of merge sort
    195-210
    Views:
    4
    Due 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.
  • Linear clause generation by Tableaux and DAGs
    109-118
    Views:
    10
    Clause 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.
  • Solving mathematical problems by using Maple factorization algorithms
    293-297
    Views:
    11
    Computer 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.
  • Algorithmics of the knapsack type tasks
    37-71
    Views:
    5
    We 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-76
    Views:
    7
    In 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.
  • Expressiveness of programming languages and environments: a comparative study
    111-141
    Views:
    11
    In 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.
  • Delusions in informatics education
    151-161
    Views:
    9
    In 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.