Outline of Information and Computer Science

Outline of Information and Computer Science is a field of study on information and computational theory and its implementation and application into computer systems. Computer Science includes the basic theory of computation rooted in mathematics, the science of physical computer architecture, about software, to the application of computer systems to solve actual or practical problems.
Broadly speaking, Computer Science can be divided into the following sub-fields of study:
Algorithm & Data Structure
Relates to algorithms (step-by-step computations) and data structures (how data is stored and represented or manipulated in a computer system).
Computer Architecture
Relates to the basic architecture of a computer system. The study of design, organization, and optimization starting from the CPU, Memory, to the Operating System.
Programming Languages & Compilers
Compiler theory is based on automatic theory, programming language, and its paradigm, semantics, and data type analysis.
Database
Regarding basic theories and algorithms from relational databases to studies related to data mining.
Graphics
Relating to the storage, representation, manipulation, and processing of visual images in computer systems.
Read also : Best PC Gaming 2020
Artificial Intelligence
This includes the knowledge of how to identify an object from a 2-dimensional image (computer vision), how computers can understand and process human natural language, to machine learning, namely how computers can formulate their own axioms and rules based on existing input.
Communication & Security
Regarding how to communicate data via computer networks reliably and safely. This includes the study of computer security and cryptography, namely techniques in disguising data so that it can only be interpreted correctly by the party concerned.
Computing Science
The study of the implementation and application of computer systems to solve computational problems in other fields of science, such as Physics, Chemistry, Microbiology, to Neuroscience.
Software engineering
Studies that study how to define the quality of software and how to achieve that quality. This includes studies on formal methods, techniques for analysis, design, testing, and software development, studies on human-computer interaction, and studies on how to reverse engineering.
Distributed Systems
The study of how to do parallel / distributed computing to achieve higher performance, be it through multi-tasking, multi-threading, multiple processors, to multiple computers.
Computational Theory
The study of how a problem can be efficiently solved using a computational model using algorithms. These include the theory of automata, computability theory, and the theory of calculating the complexity of algorithms.