In this module, we will explore the concept of causality from the point of view of computation. First, we will start by building some intuition around some important concepts in the study of causality and the current state of the field that will convey the richness, multiple difficulties and great challenges in the area of causation. We will overview several concepts towards the purpose of this course which is to explain how the theory of computability, dynamical systems, and algorithmic complexity can help in the challenge of causal discovery, in particular to produce mechanistic models behind data and observations. That is, models that one can run on, for example, a computer to make educated guesses about the cause and future behaviour of a system and how to manipulate it. We tend to believe that we are dominated by chance because there are many things that we don't understand about it. However, what science tells us is that much more than what we believe is highly determined by events surrounding us and preceding other events. Science, or at least classical physics, tells us that everything happens for a reason. What turns out to be difficult is to find or identify those causes. Something that we will explain later in this course is that determinism and predictability are not the same thing, nor do they imply each other. In particular, we will see that determinism does not imply predictability. Causality is the property of objects and systems to have been produced by a cause, as opposed to occur or appear by chance. Causality is the property that distinguishes science from magic and is the driver of the scientific method as it tries to find the causes for what happens in the natural world. The ultimate aim of science is to understand the world through simplified causal models to predict and change events. Those events can be of any kind. For example, producing a new drug to treat a disease or to design a new electric plant to generate more energy. Most of the time, the causal connection between cause and effect is everything but trivial. One of the most popular examples is the so-called "butterfly effect." The idea that a small perturbation in some part of the world can cause a cascade of unpredictable effects on the other side of the world. This type of butterfly phenomenon is called "non-linearity." Non-linearity means that the effects feedback themselves magnifying tenfold in complex ways and unpredictable ways. Later in this course, we will explore some of these technical aspects that complex systems can display. At the core of the challenge of causality discovery is something even more mundane and that is the fact that we rarely witness a process unfolding in real time. We usually start studying something when it already happened, like how dinosaurs went extinct, how multicellular life occurred on Earth, or how a virus spreads. And when we do happen to witness the process of interest unfolding, or we perform experiments to make it happen, we can isolate the system of interest from other causes, but this is rarely the case. In the real world, we have to deal always with incomplete access to data from limited observations and we have systems interacting with other systems at all scales forcing us to rather make educated guesses of the causes rather than having full certainty. This is why we were forced to use tools such as statistics and use them to study probable causes of natural phenomena. Usually, those systems interacting with each other appear to us as noise, as they cannot be distinguished from the data of interest, thus obstructing our understanding of the events. Science has managed to come up with partial solutions to some of these challenges. Scientists perform experiments to force events to happen in real time to watch them unfold first hand. Researchers have also come up with tools that we like to divide into different areas of study, such as logic statistics, probability, and information theory, to mention a few, but all of them have the same purpose, even if they approach the problem in different ways, all these approaches have only one purpose: to empower scientists with the proper tools to characterize the relationship between observations, causes, and their effects. To the action of discovering the direct causes of natural phenomena, we call "science", and all subareas of science, from data science and logic, to astrophysics and biology, are devoted to it.