COMPUTER SCIENCE Distance from core: 1

Computer Science (CS)

Beginner

Computer Science is the study of computers and computational systems. Unlike electrical and computer engineers, computer scientists deal mostly with software and software systems; this includes their theory, design, development, and application.

Principal areas of study within Computer Science include artificial intelligence, computer systems and networks, security, database systems, human computer interaction, vision and graphics, numerical analysis, programming languages, software engineering, bioinformatics, and theory of computing.

Intermediate

At a deeper level, Computer Science is the systematic study of algorithms and data structures. It focuses on how information is stored, processed, and communicated.

A central concept in computer science is the Algorithm, which is a finite sequence of rigorous instructions, typically used to solve a class of specific problems or to perform a computation. Algorithms are unambiguous specifications for performing calculation, data processing, automated reasoning, and other tasks.

Data Structures provide a means to manage large amounts of data efficiently for uses such as large databases and internet indexing services. Examples include arrays, linked lists, hash tables, and graphs. The choice of data structure often dictates the algorithms that can be used and directly impacts the efficiency of the software.

Advanced

The theoretical foundations of Computer Science include Computability Theory and Computational Complexity Theory.

Computability Theory

Computability theory deals with the fundamental question of what can and cannot be computed. The Turing machine, a mathematical model of computation described by Alan Turing, provides a formal definition of an algorithm. Any problem that can be computed by a Turing machine is considered computable. However, problems like the Halting Problem are proven to be undecidable, meaning no general algorithm can solve them for all possible inputs.

Computational Complexity Theory

This theory classifies computational problems according to their inherent difficulty. Time complexity and space complexity measure the resources required to solve a problem as a function of the input size nn.

The most famous unresolved question in theoretical computer science is the P vs NP problem.

  • P represents the set of problems that can be solved in polynomial time O(nk)O(n^k).
  • NP represents the set of problems whose solutions can be verified in polynomial time.

Whether P=NPP = NP remains the most significant open problem in computer science today.