3 research outputs found

    Separating Algorithmic Thinking and Programming

    Get PDF
    We describe an approach to teaching algorithmic thinking and programming and the first experiences that we made with it in practice. The idea is to present computational problems as a certain kind of game that the learner can play in order for them to develop a concrete idea of what constitutes an algorithm. The purpose of this is to emphasize that one can think of algorithms independently of a particular programming language. For the programming part a mini language called machine programs and a method to construct such programs from traces is described

    Separating Algorithmic Thinking and Programming

    Get PDF
    We show how the first steps of algorithmic thinking and programming can be trained separately. The learner is not assumed to have any prior experience. A general framework and a sequence of training tasks is described and tested in practice with two 10th graders. Both were able to write relatively complex programs using only pen & paper within two days. To train algorithmic thinking, computational problems are presented as games to the learner. Roughly speaking, a winning strategy corresponds to an algorithm which solves the problem. Thus, if the learner consistently wins the game for various instances then this indicates that they have found an algorithm. We describe a general mechanism to translate a computational problem into such a game. For the programming part, the learner is shown how a program can be constructed from traces. Programs are specified in a language which depends on the underlying model of computation (think of Turing machines, pushdown automata or instruction set architectures); such a model can be seen as a notional machine. The language itself is very simple yet broadly applicable due to the generality of our definition of model of computation
    corecore