DEV Community

Cover image for Definition of Computer Science
Dima
Dima

Posted on

Definition of Computer Science

"Computer Science" is a very vague term. But a word with at least some definition removes the aura of mystery. This article is my attempt to define what Computer science is.

I define computer science as a field of knowledge that incorporates:

  • Programming craftsmanship. Code writing and knowing your tools to facilitate the programming activity and deployment of the result.
  • A few sections of mathematics which help to stay rigorous:
  • Proof by induction and by contradiction. It helps to convince yourself and others of the correctness of your thought process;
  • Discrete math: graph theory. It provides multiple beautiful graph-like and tree-like high-utility structures and algorithms on top of them;
  • Number theory. Prime numbers as building blocks specifically. It helps with the understanding of the basics of information security.
  • Algorithms and data structures. Asymptotic analysis of their time and space complexity. It answers why one algorithm is faster or better and why one data structure works better for a given task than the other.
  • Theory of computation. It answers, on a fundamental level, what is computable—for example, a halting problem.
  • Computer architecture. It is helpful to know some basics of the architecture of the computer: Random-Access Memory vs. hard drives, memory registers, CPU cache, etc.

These are the generic parts one will find helpful during their Computer Scientific or Computer Engineering career. I think these are useful for any skilled programmer. However, the discussion about the deepness of each part can last forever.

Top comments (0)