Theoretical Computer Science is mathematical and abstract in
spirit, but it derives its motivation from practical and everyday computation. Its aim is to understand the nature of computation and,
as a consequence of this understanding, provide more efficient methodologies ^{[1]}.
We can study theoretical aspects as below groups, whereas for their usage and applications see: Computational Science and Tools used for Computation.
Also,
STEM industry
(short for Science, Technology, Engineering, and Math), with a heavy emphasis on computer science at the top. Four out of the top five spots went to Data Scientist, DevOps Engineering, Data Engineer, and Analytics Manager.
Programming Language Theory
Information and Coding Theory
Both  related aspects of the problem of how to transmit information efficiently and accurately. Information theory is related to the quantification of information, firstly used to find fundamental limits on signal processing operations such as compressing data and on reliably storing and communicating data. Coding theory is the study of the properties of codes. Codes are used for data compression, cryptography, error detection and correction, and more recently also for network coding. Codes are studied for the purpose of designing efficient and reliable data transmission methods.
See also:
Selected Topic,
International Journal,
Lecture,
Information Theory,
Notes
Formal methods
are a particular kind of mathematically based technique for the specs., development and verification of software/ hardware systems.
Theory of Computation
The study of computation aims at providing an insight into the characteristics of computations. Such an insight can be used for predicting the complexity of desired computations, for choosing the approaches they should take, and for developing tools that facilitate their design ^{[2]}.
Algorithms and Data Structures ⇧
An algorithm (pronounced ALgorithum) is a procedure or formula for solving a problem. The word derives from the name of the mathematician, Mohammed ibnMusa AlXorazmiy, born in Khiva (now in Uzbekistan) who was a scholar in the House of Wisdom in Baghdad, lived from about 780 to 850. AlKhwarizmi's work is the likely source for the word algebra as well. A computer program can be viewed as an elaborate algorithm. In mathematics and computer science, an algorithm usually means a small procedure that solves a recurrent problem.
In programming, the term data structure refers to a scheme for organizing related pieces of information. ^{[3]}
A nice lecture by Brad Miller and David Ranum, Luther College Problem Solving with Algorithms and
Data Struvtures .
Practical examples:
Algorithms,
Videos
• Quiz
• algoritmy.net,
• java2s.com
• Transport Problem
• Heuristic Search
• Heaps
• Algorithms, 4th Edt.
 Computational geometry  is a branch of computer science devoted to the study of algorithms which can be stated in terms of geometry.
See also:
CG: Algorithms and Applications,
CG Algorithms Library,
Book, Computational Geometry course
 Analysis of Algorithms  In computer science, the analysis of algorithms is the determination of the amount of resources (such as time and storage) necessary to execute them. Most algorithms are designed to work with inputs of arbitrary length.
See also:
Lectures,
Research Focus,
Design and Analysis,
References,
Books,
with Java,
with C++,
with C#
 Data Structures  is a group of data elements grouped together under one name. These data elements, known as members, can have different types and different lengths.
See also:
List of data structures,
Lecture,
DS Java implementation,
DS C++ implementation,
cplusplus,
with Python
 Algorithms  An algorithm (pronounced ALgorithum) is a procedure or formula for solving a problem. The word derives from the name of the mathematician, Mohammed ibnMusa AlKhwarizmi.
See also:
Algorithms in Java,
Distributed,
Online book,
in Java Collections,
Lecture,
Algorithms and DS. in Java
Algorithms and Data Structures:
Algorithms and Data Structures,
Motto  E. W. Dijkstra,
2,
Research,
Vimp.,
Handbook of A. and DS.
References
 1. Theoretical Computer Science
 2. Theory of Computation
 3. Wikipedia
 Book
 Free Online Theoretical Computer Science Courses
