I sat on my computer for a full day, trying my best to improve my artificial intelligence solution to solve the 2048 game. The darkness fell upon the day and as I lie with my partner in bed, my partner loudly wondered how could it be that I derive pleasure spending days in front of the computer looking at dull lines of code. To her, the lines hold no beauty nor a whisper of a thrill. Then we moved on to talk about the normal anxieties of life, about death, about existence and the meaning of it. “It’s funny people try to answers to questions of why when we don’t even know the answer to the most basic question of all – what is the meaning of our existence” she exclaimed. As usual, I disagreed: “We are likely to never know for certain the source of our existence, but that does not mean we can’t make some discoveries about the nature of our universe”, and to refer to our earlier conversation I added “that is actually why I find computer science so interesting!”
I think my partner’s wonder is a common one, how could writing some lines, pressing enter, and enjoying the great result of 42 on a black and white screen compare to a nice stroll in the park, a hug, or a dance?! It’s a fair thought and the truth is, it cannot. All of these things are great for their own reasons. So while I will not try to compare it to these great activities, perhaps I could explain why I find computer science to be a thrill and a wonder.
First and foremost I think it’s worth making an important distinction. Computer science is not software development. Software development is the practical use of computer science tools. I personally like it for the joy of creation, the joy of birthing a product that did not exist beforehand. Similar to the joy of looking at the product of a day where you molded a beautiful clay pot. Others enjoy it for the challenge, for the abstract thinking involved, or many other reasons.
Computer science however is not the same “beast”. On the first day in the “introduction to computer science” course at Tel Aviv University, my professor exclaimed: “Computer science is neither science nor it’s about computers”. This was followed with a quote by a famous computer scientist, Edsger W. Dijkstra: “Computer Science is no more about computers than astronomy is about telescopes”. Many students turned confused in an instant, but the fact is, it is true. Even though nowadays it’s becoming almost inconceivable to separate the two, Computer science is not about computers at all, and that is a key principle to understand the fascination some have with it. Computer science is about problem-solving. In particular, it’s about problems that could be solved through calculation and well-thought action-taking. But the true beauty of Computer science is not the fact that it solves some of these problems but the fact that it tells us a lot about the nature of problems in our universe – regardless of whether there is a computer involved in the process.
So there you have it, that’s why computer science is a thrill because like many theoretical and natural sciences it tells us something about the fabric of our existence. But if you are not satisfied yet, I will go on a while longer, and explain exactly what is the connection between our magnificent universe and those dull code line on a black and white console.
The previous claim of mine was a bit of a leap. I guess that for many, it might just be a bit of a random nerdy comment from a guy sitting in his basement and knows no better. So let’s dig a bit deeper, let’s talk about existence, and our universe.
The universe. We think we exist in it, but we don’t really know much about the meaning of its existence. Maybe God created it, maybe it’s a computer simulation like the matrix, maybe it’s a simulation of the mere thought of being with a consciousness we cannot comprehend, or maybe it always existed with no particular reason. Any guess would be as good as mine, and although it is fun to speculate, we are likely to never really answer this question of existence. But while we cannot talk much about its meaning, we can make some discoveries about the nature of this existence.
“How do you know we exist? All our perceptions are subjective! even the dimension of space and time is our individual perspective,” my partner asked. Well yes, it might just be true. But somehow, whenever I move my hand to occupy the space that is close to what I perceive you to be in, we both agree that I stroke you gently. Coincidentally every member of our existence will also concur that my hand is touching your body. So if we all agree that my hand and your body are adjacent in space, shouldn’t we just agree that there is some rule of space that applies to us all? and if it applies to us all with no exception shouldn’t it be a law that applies to all that exists? Isn’t it amazing to discover these rules that apply to everything and everyone? It can even be more interesting to think that these rules are what makes you exist. Think of a beautiful butterfly that it occuipieis precisely the space of your hand. Is the butterfly actually a butterfly? Could we truly say it exists separately from calling it your hand? Could it be that the space we take is part of what defines what we are to an extent?
In his doctrine, “transcendental idealism”, Emmanuel Kant separates objects (Things as themselves) from appearances. Objects are the things that truly exist, but they appear to us in a mediated way – anything that experience is an appearance, or in other words, an interpretation of an object. He claims that we can never truly say anything directly about these abstract objects except through the mediation of the categories of our mind. There is this barrier of knowledge that we simply cannot pierce. We cannot truly know objects, except through the prisms of categories that color what really is. Reality is masked and interpreted using our categories of perception. But to us, that is precisely what reality is, anything that doesn’t affect us is not truly part of our existence. Maybe it affects some other existence that is completely non-relevant to us. So even if it’s through prisms, it’s of great worth to talk about what can we see through them, and even better to discover a rule between what is, and what appears to us.
It is exciting making some of these discoveries about our existence and the universe we are living in. Making a discovery is the closest thing we can do to make sense of it all. A discovery in Philosophy is fast turning to math, math to physics, physics to computers, and the next thing you know, there is a machine with no ears and no eyes that can tell you when to turn right in order to reach your destination. Or even better – there is Flappy Bird!
The understandable thrill of physics
Even though physics has an abundance of meticulous math work, the thrill of physics seems to be understood. If someone doesn’t view sending a rover to Mars as a thrill, surely there would be dozen of other examples that will explain the excitement of working long hours on math equations on a whiteboard. So with that in mind, the easiest way I might be able to convince you of this thrill of computer science is maybe through physics.
Physics is the study of the physical nature of objects that partake in our space-time universe and their interactions. In other words, the task of physics is to describe the true physical nature of our existence. Or if you would like to speak Kantian, reality as it is poised to us through the perceptions of time, space, and state of forces. The way we describe it is through mathematical formulas. While it is only an interpretation of what true reality is, as it turns out, all the objects we can interact with conform to some of these interpretations. And maybe if it always holds true for all of us, all of the time, we can take the stance that this interpretation does say something about the fabric of our reality. Through this understanding of the physical nature of reality, we can safely predict situations and craft wonders after all.
Theoretical Physicists will spend days on the whiteboard, and using previously discovered rules and the power of mathematics(!), they will arrive at new conclusions and discover another rule. But these rules are not just equations on a board, if done right, they might have a strong correlation to our existence. It’s a wonder on its own to discover that every object in existence is pulling all others, or that time will actually move slower for you the faster you move. And not only that, applications of these rules allow us to predict and manipulate nature to our needs so that we could craft the most wondrous things: spaceships, floating trains, and gadgets galore.
Although it might be an arduous field, a physicist is a discoverer and a manipulator of reality. It takes time, and work, but eventually, we get to know the rules that construct this existence of ours or manipulate it to create some wonder, and isn’t that neat?!
The thrill that is Computer Science
Now, we can go back to the original question. What is it in Computer science that is so exciting? Well, it ain’t that different from philosophy, math, physics, or biology – it says something that is true about the world, applies to all of us, and maybe even defines the borders of our existence. But where physics describes the physical matters of the world, computer science deals with problems that require calculations and well-thought-out action plans.
Let’s say I give you a chore to put books in order from A to Z on the shelf in lexical order. Well, that’s a tedious chore, but let’s get to it. Most of us will probably just pick the first book and put it first. Then we would pick the second and place it to the left or the right, and the same with the third and the fourth. Eventually, the ordered stack of books gets longer and the task becomes harder, as you need to go through all the ordered books to find exactly between which two books should the next one stand. Well, this is exactly the kind of thing that computer science is about. This particular problem is commonly known as the “ordering problem”. Basically, you acted as a computer and just ran your first program, or more precisely – an algorithm.
But what if I tell you that computer science has a lot to tell you about how you put your books in order?! For example, that your chosen method of putting them in order is well researched and has a name, it’s called “Insertion order”. We can also easily predict relatively accurately how long it will take you to order a shelf double the size (hint: it is more than double the time). But even more amazingly, through computer science studies, you will learn that there are many other methods that will be far more effective to put that shelf to order. We can even prove that some of our known methods are performing in the best possible way and that it is impossible to sort the bookshelf any faster so that you could stop being obsessed with finding a better method.
So that is what is so interesting about it. Computer science is a field that talks about the nature of many problems that take time, calculations, and actions to perform. If you consider these problems to be a problem that affects us all (and they do), then they become problems of our universe. So when we deal with the “problem of ordering” in computer science we discover the nature of putting things in order in our existence, we literally discover a rule of the universe. And this is just one of the many wonderous problems we deal with in computer science.
So now you know. For those that know little about it, lines of codes might be dull characters on an even duller background. For those that truly see the essence of the field, a sequence of lines is the manipulation of the rules of reality to solve problems that exist in our universe. It is an adventure into the nature of existence. When I sit on my chair for a day and forget to eat, it is because I get to discover and play with the rules of the universe.