Preface

Most students already use the computer as a communication, information and entertainment platform. However, actually creating their own program, implementing a simple algorithm, is new territory for them. Numerous international studies show that getting started with programming is an extremely high challenge. The road to your first successes in programming can be very steep and rocky.

This book describes over 150 simple programming tasks that have been tried and tested in class. The philosophy of this book is learning through concrete tasks and examples. The students should focus on programming on a small scale.

From instruction to construction
Already Comenius found it important to initiate the learning processes with action and activity on the part of the learners: Learning through doing. In current learning psychology, learning is described as a constructive and active process that enables the subject to interpret and construct knowledge by assigning meaning. According to this definition, a teacher cannot impart knowledge, but can only provide appropriate learning situations. It requires the learners to have the self-competence to become active in the learning process.

The acquisition of knowledge in the subject of computer science, in particular programming, is subject to its own active process, the construction of one's own algorithm and the corresponding formulation in a programming language. In contrast to other subjects, where knowledge acquisition often takes place as the acquisition of information or declarative knowledge according to cognitive and learning psychology findings.

Instead of a theoretical introduction to programming, the learners should plan and construct their own programs from the beginning. When learning programming systematically, they must actively acquire procedural knowledge, practice action sequences, design small algorithms with their own ideas and experiment with them. The students are at the center of the learning process and take an active role in the construction or development of their programs. After creating their own program, it must be critically analyzed. With the proposed exemplary approach, the students learn how to deal with errors right from the start.

On the website www.programmieraufgaben.ch there are different solutions for each task, usually in different programming languages. The site is intended as a cooperative portal for programming tasks. We want to motivate both learners and teachers to publish their own solutions or new tasks on the platform.

For small-scale programming, the choice of programming language plays a subordinate role. All tasks can usually be solved in a very similar way in different programming languages. It is important to the authors that the choice of programming language is up to the teachers and can ideally be regulated within the school.

Thanks
Special thanks go to our editors and co-authors Igo Schaller, Michael Weiss and Valéry Gareiss. The website for the book was created by Stefan Dürrenberger: www.programmieraufgaben.ch.

With the kind support of the University of Basel (Department of Computer Science), the University of Zurich (Institute of Computer Science) and the Hasler Foundation. Special thanks go to Beate Kuhnt. Without her project management, the book would not have been possible.

I would not like to forget the many suggestions from the helpers and proofreaders: R. Schweikert, E. Freimann, M. Sismanovič, A. Bandi, M. Schweizer and M. Ković.

Winterthur and Basel, September 2010
Philipp Gressly Freimann
Martin Guggisberg

Page 2