Understanding the causal origins and mechanistic principles for the behavior of an evolving system is one of the major challenges of our time. For example, how a protein may fold to become a functional piece in your body or how a drug may help against some disease. A causal system can be described by an algorithmic model evolving over time. The length of the shortest computer model is called the algorithmic information content of the system. That is how much computer code is needed to reproduce the object itself. The shorter the description, the more likely the system is causally generated. The longer its description, the less likely it is to be causally generated. A dynamic system can usually be represented as a network of interacting elements, such as interacting cells or interacting genes turning on and off other genes. What we want is to figure out the first principles driving a system, such as a genetic network representing a cell or the causes for the cell to behave in one way or another. Power approach consistis in finding a set of algorithmic models that can explain the structure of the system. When the system is just a random process and, therefore, not causally generated it can only be represented by a long descriptive model. However, systems rich in causal content can be represented by a short model, because they have a generating mechanism that evolves into any observable state of the system. To determine the causal content of an evolving system, we peform perturbations. In a network, for example, a perturbation can be deleting a node or deleting a link. We examine the effects of that perturbation, and evaluate how much the system became more or less random. In a random system, for example, a change will not have a major impact, because no part of the system can explain any other part of the system, and so the perturbation goes unnoticed. We can thus safely say that these systems cannot be reprogrammed. But, in non-random causally generated systems, some changes will render them unrecognizable, causal interventions in these systems make them reprogrammable. Moreover, if we remove an element and the system gets further away from randomness, we can conclude that the element is not part of the algorithmic content, and is unlikely part of the causal generating mechanism of the network. It is thus likely to be noise or part of another system. Alternatively, if we remove an element and the system moves towards randomness, it means that the element is part of the causal model that explains other parts of the system's evolution. But, if we remove an element and the system does not approach either randomness nor simplicity, the deleted element is non-essential in the explanation of the system and likely an element produced by the normal course of its evolution. Returning to gene regulation, what we do is to apply this concept and evaluate the contribution of every gene and gene interaction to the original network, ranking the elements by causal contribution. When this ranking is biologically interpreted, these tools have demonstrated the ability to pinpoint markers of cell function, cell differentiation, and cell fate. This shows how these tools can properly profile systems elements, and steer, and reprogram systems, such as biological cells. If these systems have some elements that move the network towards randomness, and other elements that move the network towards simplicity, we say these systems are more reprogrammable. But, if a system can only move in one direction, then it is less reprogrammable. Stem cells will be able only to move towards a single direction towards a differentiated cell, while completely differentiated cells will be able only to move to the opposite direction. This causal calculus is better equipped to tackle the general challenge of causal discovery and science than more traditional tools, and is helping scientists better understand, and even steer, biological and synthetic systems.