What is Computer Science?

Computers are a class of machines that use numbers in order to calculate arithmetic and logical queries. How do they handle numbers? They use electricity flow, which is the reason why it’s super fast — such flow has a speed of approximately 90% of the speed of light, and thus the speed of a computer part sending some signals to another part is about 167,000 miles per second.

You might be asking “Well, yeah that’s cool and all that such machines can crunch numbers very fast, but I am not a Mathematician. Who cares if they can calculate things quickly and an astronomical amount of times?”

The key is in the words “fast” and “astronomical amount of times”. If one does a task very fast and can perform this task billions of times without getting tired, this person would be the “employer of the year” or even “employer of the world”. You would say “But the only tasks that this one can do is dealing with numbers”. Here is another news, numbers don’t only represent the number of things or speed or some measurements but can also represent many other things like airplane blueprints, English alphabet letters, and etc. Using these attributes, you can take advantage of the machines and make them work super fast and 24/7 to serve our purposes.

However, the machines are merely tools, artificial ones at that. The trendy tech stacks — as of now, the popular Web Development stacks are MEAN (MongoDB, ExpressJS, Angular, NodeJS), MERN (MongoDB, ExpressJS, React, and NodeJS), MEVN (MongoDB, ExpressJS, Vue, and NodeJS), and Ruby on Rails — you are being fed by many boot camps and pragmatic college courses are extents of those tools. Many people reckon Computer Science the study of computers, as the name insinuates. In my opinion, the subject name “Computer Science” is a misnomer. It’s as if you address Biology as Microscope Science or Physics as Particle Accelerator Science. Microscopes and particle accelerators are apparatus we use in order to test our explanations and predictions about the universe — explanations and predictions for building, organizing, and often debunking knowledge. Computers and tech stacks are just like microscopes and particle accelerators. They are not the core essence of this relatively new discipline (Computer Science programs in colleges started in the 1960s). The essence lies in the phenomena of these tools, and since these tools only deal with numbers, such phenomena are classified as a branch of Mathematics (and perhaps Analytical Philosophy — the study encompassing the formalization of ordinary language statements into a logical language). Here are a few key ideas in that essence:

  • how one stores and processes information
  • how we should express our instructions for it to compute efficiently

Pay attention to the bolded words — information and express. Programming is a way for us to express a sort of methodology we build. The way in which this expression and the information we want to manipulate get handled, gives us hints about how we can go about in order to make that methodology more efficient. The big chunk of such efficiency is not about the speed nor spatial capacity but rather the controllability of intellectual complexity.

The controllability is achieved via abstractions. You extract the most important attributes of complex mechanisms, hide them underneath some boxes, and label the box with the aforementioned attributes. You repeat this ‘hiding under a box → labeling with key attributes’ as you go further up the levels of categories. This results in an ‘abstraction hierarchy’ enabling us to manage the complexity of the entity.

Another thing to notice is that a lot of what I have been talking about is far from attributes of other science. For instance, microscopes and particle accelerators are being used in order to do things with knowledge of the universe — the things that have existed already. On the other hand, computers aren’t made for this. The computing artifacts are made for us to manipulate information, and such information and what it represents are artificial. As Subrata Dasgupta stated, the information we are concerned with has its essence in symbols. We are not trying to find how many cells reside in a jellyfish. We are trying to analyze and manipulate the metaphysical models we have agreed upon. Symbols are the ones being processed and stored in those computing artifacts and such symbols are closer to artifacts than something that has existed in the universe — the subject of other sciences. Instead, our goals and purposes are deeply reflected in the subject of this particular kind of ‘science’. Rather, many computer scientists argue that CS is more of a branch of engineering.

Thus the essence of Computer Science is not about discovering the laws governing the structures and behaviors of ‘what is already’. Our subject entails the relationship between our needs and goals. Given our needs, how can computers achieve our goals? How can we demonstrate the mechanisms of their achievements?

--

--

--

Backend Server Developer in South Korea

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

Kubenetes 01 / Pods & Replication

Installing Zimbra on Vagrant CentOS 7

Create a Rails API with a PostgreSQL Database and deploy it to Heroku

A playbook for API-first transformation at scale- Delivery Infrastructure Platform Part 1

Kafka stream Semantics

Hard to solve system failures

Docker- The why! & The what! [0001]

Another Wave, the Same Mistakes Repeated

iOS Continuous Deployment with Jenkins: A Brief Introduction

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Nicholas An

Nicholas An

Backend Server Developer in South Korea

More from Medium

General AI Won’t Emerge on its Own, it a Slow Process That Starts With General Coding

Software & Life Lessons — P1

Introducing CodeCast Series ✨

Artificial Intelligence Shift