What is computer science?
What a computer scientist actually does remains a source of mystery for most people. Computing is a general term for many fields involving a computer. However, computer science is more specific. In the past, computers were people who made calculations using a set procedure known as a program. Nowadays, the word computer conjures up the image of an electronic device. Subsequently, I feel it important to say what computer science is not before I say what it does involve.
What is not computer science? Although a computer scientist will have an understanding of how a computer works, they are not a computer repair person. If you think a computer scientist deals with networking you would be wrong again, that is a network engineer: who keeps the Internet working. Even so, a computer scientist will have some knowledge of networking. Network engineers are more about solving different problems such as connection on different levels of networking starting with the physical layer at the bottom and rising to the application layer at the top. Web developers create websites. Web development is not computer science either although a developer will code using, for example, python and Java plugins HTML, hypertext mark-up language, provides the framework to a website and CSS, cascade styling sheets, provide the general style. However, computer scientists may write algorithms that sort and search data used by a web browser’s search engine. If you were to start thinking of data and data science, you would be getting closer although it is important to note data science is a subfield of computer science. Data scientists are more concerned with statistics. You may hear computer scientists talking about programming, yet they are not programmers or software engineers. Good programming skills, however, are necessary because of the need to solve problems with algorithms, in order to write an algorithm; a computer programming language needs to be decided upon and is a part of solving the problem. In short, an algorithm is a systematic process of solving a problem in a finite number of steps. Nevertheless, this still does not explain what a computer scientist does.
What does a computer scientist do then? Mainly a computer scientist is involved with solving problems using algorithms as I have mentioned, so I had better explain this in more detail. First, identify a real world problem to solve. Once identified, make some initial insights into the problem and how to solve it logically; otherwise known as, abstraction. By this I mean, sketch out the problem; outline it in words so it follows a logical procedure that produces a desired result. Next, an appropriate selection of algorithm from a toolkit of already worked out algorithms that sort and search data such as bubble sort, selection sort or binary search trees is required. In addition, the selected algorithm will more than likely need modifying in order to complete the task. Structured English, away of writing out code in plain English is the next step in writing out the algorithm. The following step involves choosing an appropriate language such as Python to code the algorithm in. Once all this is complete, the algorithm is now ready for examination for its measures of goodness. Measures of goodness consist of three points: correctness, elegance and performance. Correctness is an obvious need since it is no good if it does not work! Elegance means is it tidy, is any of the code repeated unnecessarily? The third point, performance, is looking at how the algorithm copes with large data sets; for instance, will the algorithm complete in seconds, minutes, years or centuries? Big O is the name of this performance analyses. It is important to note, not all problems are computable; not all problems are solvable and in computer science, computability needs to be determined; in other words the algorithm will need to stop at some point with the correct result. In essence, a computer scientist finds a workable solution to a real world problem using algorithms and dedicates time to the study of such algorithms.
Computer science does involve computing, but does not involve many things that we usually associate with computing. I hope that the word computer means more to you now than just an electronic device that you use applications on. If you liked the sound of computer science, I recommend finding out more about computational thinking and of cause algorithms.
Miller, Bradley. & Ranum, David. ‘Problem solving with algorithms and data structures using python.’ Chapter 1 Introduction, Second edition, [Book] Franklin, Beedle & Associates, Inc 2011.