Cake baking has so much to do with algorithms and software that we hardly need more to explain the central idea. Cake recipes describe which ingredients are processed in which order and how until the cake is ready at the end: mix eggs, sugar and butter, add flour and baking powder and a pinch of salt, knead the dough and then bake it at 160 degrees for 30 minutes. There are the ingredients, the individual preparation steps and a cake at the end. It also requires tools that may not even be in the recipe: Mixer, mixing bowl and oven. There is also the author of the recipe. There are the individual steps in the recipe, namely mixing, stirring, waiting and baking. And there are the bakers who carry out these individual steps one after the other and ensure that each step is provided with the result of the previous step.
In the software world, the ingredients are the so-called inputs. The cake is the output. The recipe describes a so-called algorithm. Algorithms are step-by-step instructions on how to convert inputs into outputs. When algorithms are written down so that they can be executed by a computer, they are called programmes or software. The difference between algorithms and programmes is that the latter must be formulated very precisely, which is not always the case with recipes and algorithms: “A pinch of salt”, for example, would have to be translated into an exact quantity.
Recipes, algorithms and programmes therefore describe individual steps and thus determine how inputs are converted into outputs. For bakers or programmers, these individual steps are essential. Bakery owners and users of programmes are not normally interested in these individual steps. Instead, they are only interested in the ratio of inputs to outputs. If you want to describe this ratio without explaining the individual steps, you call it a function. We still know functions from mathematics lessons: addition, for example, is such a function with two addends as input and the sum as output. When you add in your head, you don’t even think about how you do it – the individual steps are of no interest! But how does a machine do it? That is precisely the task of the algorithm or the programme that refines it. Algorithms and programmes simply describe how a function is calculated.
The connection between function, algorithm and programme can be summarised like this: The function only describes the connection between input and output, without saying exactly how the output is calculated. An algorithm defines the steps with which this function can be calculated. And the programme is the description of an algorithm in a form that the machine can understand. With the distinction of “what” and “how”, one can also say that the function describes the problem (what?) and the algorithm and the programme the solution (how?).
For each function, there are usually very many different algorithms that describe the steps to calculate it. These algorithms differ in how much memory, time and energy they consume.
We have described the relationship between functions, algorithms, programmes, software, hardware and also machine learning in much more detail elsewhere.
The project “Can an algorithm calculate morally in conflict? Ethics and digital operationalisation in the field of child welfare endangerment (KAIMo)” deals with the question of whether and how algorithms or AI systems can offer support in decision-making processes in the field of child and youth welfare.
The doctoral project “Real-time scene understanding on mobile devices” is about the processing of three-dimensional, visual information by algorithms.
In another doctoral project entitled “Image-based early detection of Barrett’s oesophagus with semi-supervised learning algorithms”, machine learning methods are to be used to develop algorithms that contribute to the early detection of oesophageal cancer.