If you're a software developer or IT technician, chances are you've had a friend, acquaintance, or relative ask for your advice on their next computer's features. They may also ask you for suggestions on how to fix a problem with their printer or an application installed on their smartphone. I think this is a common situation, and I think something similar happens to doctors or pharmacists.
My impression is that anyone directly or indirectly involved in the IT world is automatically considered a computer expert. Most people think that Computer Science basically boils down to programming, preparing, building, repairing, configuring, optimizing, instructing, designing, and managing this thing called a computer.
I must say that for English speakers, the name Computer Science does not help at all.
What Is a Computer?
The question may seem rhetorical. We all know what a computer is: it is an electronic device that can execute commands at high speed, allowing us to solve many problems in our daily lives. We have also learned that size does not matter: a business server, a notebook, and a smartphone belong to the same family.
But let's look around for some formal definitions of the term computer. Dictionary.com offers the following:
"A programmable electronic device designed to accept data, perform prescribed mathematical and logical operations at high speed, and display the results of these operations."
The keywords highlighted by this definition are:
being an electronic device,
performing operations very quickly,
However, this is not the original meaning of the word computer. It first appeared in the 17th century and simply referred to a person who does calculations. The term retained this meaning until the mid-20th century, when most living computers wore skirts, according to Katherine Johnson. Its first non-human meaning dates from the late 19th century and refers to any instrument capable of performing calculations, regardless of how it is constructed.
In short, although we commonly think of the computer as the electronic device we all know, from a linguistic and scientific point of view, it is something much more general. The well-known Turing machine had no mention of its physical construction. Different operating mechanisms (mechanical, electromechanical, electronic) and information representation approaches (digital, analog) have been used in the physical construction of computers. Today, non-electronic computers, such as organic computers, are being experimented with.
Alan Turing said that "a man provided with paper, pencil and eraser and subjected to strict discipline is in effect a universal machine," i.e., a computer. Here we are again with the concept of the man-computer, which may not have the speed of an electronic computer, but is still a machine that does calculations. And by the way, I don't think we can consider man as an electronic device.
So, if it is not the electronics that characterize a computer, nor its speed to make calculations, what is its relevant characteristic? We could say that a computer is any entity capable of representing and processing information. This definition is far too general and opens up countless horizons.
What Is Computer Science?
According to Wikipedia, "Computer science spans theoretical disciplines (such as algorithms, theory of computation, information theory, and automation) to practical disciplines (including the design and implementation of hardware and software)".
I don't like this name, and I'm not the only one. It focuses on computers, whereas I think that the real subject of study in this discipline is information. In Italy and other countries, different names are used for this: Informatics or Information Science. But even they are not exempt from misunderstandings.
Let me tell you a little story.
Immediately after graduating with a degree in Information Science, I sent out several resumes and added my profile to several databases in search of my first IT job. After a few months, a company contacted me for an interview, but there was a misunderstanding. Without going into details, it turned out that the company was looking for marketing and sales personnel. Basically, they had misunderstood my major to be Communication Science.
I was very disappointed and displeased at that time. In their defense, it must be said that the name of the degree program was not very user-friendly. If it had been called Informatics, as it was after a few years, this misunderstanding would probably not have arisen.
But there was a reason why my major was called that. It was very much focused on the foundations of computation and information theory. In short, the topics covered were more skewed toward the theoretical aspects rather than the applied ones. Intuitively, the term Informatics includes more of the application of Information Science than its foundations. The term Informatics is closer to what the name Computer Science suggests. In general, however, there is no universally accepted term for the set of disciplines that revolve around automatic information processing.
Personally, I make a distinction between theoretical computer science (Information Science) and applied computer science (Informatics). But again, I would prefer not to use the term Computer Science at all.
This is not a small difference. Indeed, it is one thing to have the computer, understood as an automaton capable of processing data, as the central element of one's studies; it is quite another to have information as the center of interest, into which the computer also fits.
In short, it is as if we were to consider fishing as the technique of making and using nets, or optics as the discipline that studies lenses and other magnifying devices. In this respect, the statement attributed to Dijkstra is instructive:
"Computer science is no more about computers than astronomy is about telescopes."
Whether Dijkstra said it or not, this sentence is meant to emphasize the fact that there is much more to computer science than the computer.
A Computer Science Definition
Inspired by a definition I read somewhere, I like to define computer science as the discipline that deals with three fundamental problems:
The transformation of data into information (processing) and its transmission in space (communication) and time (storage);
The representation (languages), communication (protocols), and storage (formats) of information;
The process of solving problems (algorithms) and their translation into automatable form (programming).
At first glance, the approach to solving these problems immediately brings to mind the infamous computer. But on closer inspection, these are the problems that mankind has always faced throughout history. They are the problems that have allowed mankind to evolve in practical, technological, and cultural terms.
What is human language if not a system for representing information? What was the invention of writing if not a mechanism for storing information? What were Indian smoke signals if not protocols for communicating over long distances?
And again, how do you extract information from data? What is the best strategy to win at chess? How can we calculate the area of a football field? How long does it take sunlight to reach the Earth?
The answers to these and similar questions involve the three fundamental problems of computer science. Whether we apply processing, representation, or communication mechanisms, information is the focus of our attention. We can use our cognitive abilities to manage this information, and we can use tools, which can be small stones, pen and paper, or the much-celebrated computer.
In summary, information management is the soul of computer science (theoretical and practical). The (electronic) computer is only a valuable support. On second thought, the company that mistook my degree program in Information Science for Communication Science was not so wrong after all.