Original article was published on Artificial Intelligence on Medium
Understanding THE System before understanding A System.
Sometimes it is the very obviousness that hides the simplicity in a seemingly complex world.
To guide you along with the following though exercise, I want you to imagine rainfall or simply put The Water Cycle; yes, the one we studied in our childhood.
If you observe the entire process carefully, you will realise how each and every component or process or entity are working together with every other, how important is one entity for the entire cycle to function properly and if any one or more of them are malfunctioning or missing, the entire water cycle will be affected. This water cycle is nothing but a system.
Now, this was a very naive example but you can think of anything in life, be it a communications technology or a speech recognition module or something as common as a clock. If you can break them down into entities or a group of entities and their interactions, you can easily view them as a system.
Once you have a clear picture of the dynamics of a system, their interconnection, their interdependence, then it becomes easier to understand the system. If you allow me to have some creative freedom, it’s like watching a movie, you can observe the story building up and as it reaches it’s climax everything makes sense, everything falls in place. If you ever tried to understand something, a research paper for example, then you know the feeling that sings to you, “I’m on top of the world”. You can design and engineer your own systems, you can control a system depending upon how well you understand each entity and their interaction and how much control you have over them. You can think of a system comprising of two main components, entities and protocols. Entities are the musical instruments and protocols are the musical notes, together forming a symphony.
Let’s say you want to make a simple computer application that takes two numbers as an input from the user and returns their product. Now, to create such an application you might need to know how to take input from the user, how to process the input and return the result. We can call this a computer system that takes 2 numbers from the user and returns their product. One might wonder that for this system to work they might not necessarily need to know the computer’s architecture, or the machine level language or how the calculations are performed internally in the computer. Very True, this level of understanding is not even close to required for the above mentioned system to work properly because we are dealing with a higher layer of these systems, i.e. we are dealing with systems of system which brings me to my final point that a system can also be broken down into smaller systems. Here one such example can be a Compiler, a system that takes a higher level computer program code written by a programmer and converts it into machine level code that can be understood by the computer, hence a system serving a bridge between human-computer communication.
With that I hope that you understand the importance of understanding a system, be it a system as small as binary language or as complex as Artificial Intelligence.