Perceptions in CS
“It’s not the external events that cause us trouble, but only our perceptions about those events”. This meditation from Marcus Aurelius, profound in itself, finds parallels to coding theory in Computer Science.
A fundamental concept in computer science is that of a bit. A bit is nothing more than the electricity being on or off, at a particular location. If one takes apart a computer and looks with a microscope, he won’t find any pictures, numbers or letters. There is only one kind of thing that makes computers work. It’s called a bit. What can we do with a bit? Turns out, a lot.
We can use a bit to represent something tangible. That is, we can assign meaning to it. For example, take a bit and connect it to a red light. When the bit is on, red light glows and vice versa. In itself, this doesn’t mean anything. But then we can say “when the red light is on, it means stop, and when it’s off you can proceed”. This is how one can assign meaning to a bit. The bit does not contain any meaning in and itself. It’s just presence or absence of electricity at a particular spot. Meaning is assigned to a bit by something external to the bit.
Someone who studies for the driver’s license will know the meaning behind that red signal as stop the car. Another person making breakfast may interpret the red signal as coffee maker is on. In both the cases, the underlying event is same. It’s only by assigning a different meaning to that event, we interpret it differently.
A person who attaches a certain meaning to an event will perceive and interpret the event differently than one who doesn’t attach any meaning to it. For example, consider two spies trying to communicate using following secret code: if the curtain is down, that means danger. If the curtain is up, everything is okay. Now, for hundreds of people passing through the street who see the window, the curtain doesn’t mean anything. It is just a curtain. But for the one spy, it indicates life or death.
This is the base principle behind coding theory. A code is something that tells you what something else means. A code for a bit has two possible states and hence two possible meanings. At any given point, it can only mean one of two things. Similarly, for any event, there can be multiple different interpretations and different meanings behind each interpretation. It depends on the observer how he/she chooses to interpret the event, and what meaning one assigns to the event. For the same reason, one person’s hell might be another person’s heaven.
The subject of perceptions/meanings doesn’t restrict itself to Stoic philosophy and computer science, and has huge implications in Physics. According to Einstein’s theory of relativity, an event is both a space and time, and can be represented by a particular point in space-time, i.e. a point in space at a particular moment in time. Space-time as a whole can therefore be thought of as a collection of an infinite number of events. According to Einstein then, time/event is relative to the observer, and more specifically to the motion of that observer. Interpretation of each event depends upon the position of the observer and therefore, can take infinite number of meanings.
So it is safe to assume that, an event does not have an intrinsic meaning in and itself, but rather it takes the meaning that an observer chooses to assign it. Let’s conclude with another quote from the last good emperor, Marcus Aurelius:
Choose not to be harmed — and you won’t feel harmed. Don’t feels harmed — and you haven’t been.