Search

Published After
Published Before

Search Results

  • 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.
  • Fibonacci beyond binary recursion
    173-185
    Views:
    7
    The 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.
  • Mechanisms for teaching introductory programming using active learning
    407-421
    Views:
    10
    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.