We often think of Mathematics as the art and science of manipulating numbers. This is not entirely wrong but is still quite a limited view.
1 + 1 = 2
⬆this is how mathematics and computation looked many centuries ago
This is modern mathematics:
More recently mathematics is about big abstract ideas and then trying to make them useful in the real world (which is desirable but not always possible). The abstract space of mathematics is conceptually larger than anything else we know and only minuscule parts of it find applications in practice. We often find uses for very abstract theories only after long time has passed since initial discoveries.
One of the big ideas of mathematics is the notion of computation. Please note that computation ≠ calculation.
Calculation is understood as applying basic operations to numbers.
Computation is all about continuously and reliably manipulating state to achieve the appropriate output / behaviour of the computing system.
Here is one prominent way of describing computation — a State Machine:
Please read this quote from the 2008 paper by Leslie Lamport:
I have tried to show that state machines provide a simple conceptual framework for describing computation.
The advantage of state machines is that they can be described using ordinary mathematics. Mathematics is simpler and more expressive than any language I know that computer scientists have devised to describe computations. It is the basis of all other branches of science and engineering. Mathematics should provide the foundation for computer science as well.
I hope that with this explanation we can better appreciate how Mathematics and Computation are related but not the same.
We have many hills to climb together on further explorations of the territory.
This is the plan for The Introduction to Distributed Systems and State Management exploratory course / blog series:
01. FRI 2020-10-23 ◈ Computation and Mathematics
02. FRI 2020-10-30 ◈ State Machines
03. FRI 2020-11-06 ◈ Distributed Systems
04. FRI 2020-11-20 ◈ Connectivity
05. FRI 2020-11-27 ◈ Synchronous vs. Asynchronous Transmissions
05. FRI 2020-12-04 ◈ Distributed State
06. FRI 2020-12-11 ◈ Graphical User Interfaces as State Machines
07. FRI 2020-12-18 ◈ Brief Introduction to Blockchains
09. FRI 2021-01-01 ◈ Connectome 1.0 Release
Distributed systems are the intersection of Mathematics, Physics and Computer Science. Is there anything more interesting you can think of? ☺
This is a practical course to make us aware of the basic concepts, challenges and some ways around these challenges.
Once physics comes into play, we start having real problems and we have to improvise our ways around them as good as Nature allows.
More in next installments. Next time still in the ideal made-up physics-free world.
Have a great week!