OLYMPIADS IN INFORMATICS, 2016, Vol. 10, pp. 111 - 124
© IOI, Vilnius University

ISSN 1822-7732

DOI: 10.15388/ioi.2016.08

Examples of Algorithmic Thinking in Programming Education

Juraj Hromkovič, Tobias Kohn, Dennis Komm, Giovanni Serafini

Department of Computer Science, ETH Zürich
Universitätstrasse 6, 8092 Zürich, Switzerland
e-mail: {juraj.hromkovic, tobias.kohn, dennis.komm, giovanni.serafini}@inf.ethz.ch


Algorithmic thinking and problem solving strategies are essential principles of computer science. Programming education should reflect this and emphasize different aspects of these principles rather than syntactical details of a concrete programming language. In this paper, we identify three major aspects of algorithmic thinking as objectives of our curricula: the notion of a formal language to express algorithms, abstraction and automation to transfer proven strategies to new instances, and the limits of practical computability. The primary contribution of this paper are three examples that illustrate how general aspects of algorithmic thinking can be incorporated into programming classes. The examples are taken from our teaching materials for K-12 and university non-majors and have been extensively tested in the field.


algorithmic thinking, K-12, spiral curriculum, programming education, Logo, Python.

PDFTo preview full article text in PDF format click here

Get Free ReaderYou could obtain free Acrobat Reader from Adobe

Copyright © International Olympiads in Informatics, Vilnius University Institute of Mathematics and Informatics, 2016