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).
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.
Regarding basic theories and algorithms from relational databases to studies related to data mining.
Relating to the storage, representation, manipulation, and processing of visual images in computer systems.
Read also : Best PC Gaming 2020
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.
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.
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.
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.
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.