Learn programming with Kara

Kara - Programming With State Machines

Kara is a ladybug which lives in a simple world. It can be programmed to do a wide range of tasks such as collecting leaves. What makes Kara special is that its programs are finite state machines which are created in a purely graphical program editor.

Kara illustrates the basic concepts of programming. Two characteristics make Kara attractive for introductory courses: Finite state machines are easy to understand, which means the time needed to get started is minimal. And with Kara, you work in a simple, easy-to-use environment without having to deal with the complexities of modern programming environments.

Program: allkara-en.jar [2004/03/26, 5'000 KB]
User's manual: kara_manual-en.pdf

Information and further downloads

Who does Kara target?

Kara is for pupils and students who do not have prior programming experience. They can familiarize themselves in a playful manner with fundamental concepts of programming. Kara is being used successfully in many schools at different levels (secondary schools, vocational schools, high schools, colleges, and universities).

Learning Objectives of Kara

  • Foundations of Programming. The finite state machines serve as a vehicle to illustrate one of the core ideas of algorithms. Machines initiate actions based on their current state and on received inputs. The number of possible behaviors, of sequences of actions triggered by different environmental conditions, is usually too huge to enumerate. Yet, we aim to be sure that each and every possible behavior, of which only a tiny fraction will ever be played out, is "correct" in some precise sense. The way to do that is to write a specification that captures the practical infinity of processes that may evolve over time, depending on received inputs. A program is such a formal specification, and the concept of "program" is surely among the most fundamental concepts required to understand computers. Kara illustrates this fundamental idea with many examples. It also illustrates concepts such as Boole'an logic and program verification (pre- and post-conditions, invariants etc.).

  • Finite state machines. They are a very simple model of computation in computer science and can be used to describe the behaviour of many automata from everyday life. Kara illustrates the concept in a graphical, intuitive manner.