Theory of Computation as a Vehicle for Teaching Fundamental Concepts of Computer Science
Reichert, Raimond: Theory of Computation as a Vehicle for Teaching Fundamental Concepts of Computer Science, Dissertation Nr 15035, ETH Zürich, 2003
In today’s Information Society, knowledge of the fundamentals of information and communication technology (ICT) is a key qualification and must become part of general education. The concepts of formalization and programming are at the heart of computer science. Teaching these concepts as part of general education is a difficult challenge. Existing approaches are typically time-consuming, yet time is a scarce resource in school. There is a need for intuitive, user-friendly, high-quality educational software environments to support teaching and learning the basics of ICT within the limited time available. Our approach uses the theory of computation as a vehicle for teaching selected fundamentals of computer science. The main contributions of this dissertation are the Kara programming environments described in this text. One goal of the environments is to allow users to write their first program successfully within an hour. The environments are based on finite state machines and offer:
- An introduction to programming targeted at people with no prior programming experience (the Kara environment).
- An introduction to the theory of computation based on two-dimensional Turing machines for students who study the theory of computation (the TuringKara environment).
- An approach to teaching basic concepts of concurrency in an illustrative manner which can be used from elementary to advanced settings (Multi-Kara).
- A smooth transition to programming in Java for people not familiar with Java or any similar programming language (JavaKara).
The widespread use of the Kara environments in many schools at different levels, and the highly positive feedback from teachers and students, have convinced us that our theory-based approach is successful and worth pursuing.