This lecture is called virtuous circles. It is in fact an introduction to recursive programming. But I wanted to show how broad the paradigm of virtuous circles is and so I will try to present recursive thinking in a general setting. In every discipline ranging from mathematics, logics, informatics, physics to linguistics, economy, philosophy, researchers have to define or declare, specify objects. sets, functions, predicates, data types, algorithms systems as well as qualities and relations defined over them. But how do we define objects, and qualities, relations and operations? Essentially we have two ways. We can define them explicitly, that is we give these definitions directly in terms of previously defined notions. Examples are the basic constants, the Cartesian product, notions like being a prime number or closed expressions like iterative programmes. Here are three interesting examples. Fibonacci this is the closed expression that gives you the n Fibonacci number. Josephus number, this is the closed expression that gives you the Josephus number. I believe that all of you are familiar with Fibonacci. Josephus perhaps is less well-known. This is the position that you have to sit if 2 to the n plus n people sit around a table and decide to see who is the last one to go out if every second person goes out taking turns. And then we have the Catalan numbers. Catalan numbers have this definition. Another way of defining notions is implicitly. Now these are definitions which are given in terms of the object being defined itself. Examples are roots of an equation. A classical and interesting example is the following: What is the probability that tails first occur after an even number of tosses? Recursive programmes, factorial, the Hanoi tower, the Manhattan problem, or the Josephus problem which was the definition that I gave earlier.