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

Programming language  
Compiler construction Type theory A, B, C

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

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].

Mathematical logic 
Math logic, Categories, Topics, Lecture, Online book
Automata theory 
Introduction, Online Course,
Lecture1, 2, Wolfram, Britannica
Number theory
Intro, Wolfram, Online book
Graph theory Tutorial, Online book, Wolfram
Computability theory
Course, Book, Category
Category theory
Wiki 1, 2, Book, Categories
complexity theory

Wolfram, A Book
Cryptography Intro, 1, 2, 3,
Quantum computing theory
Know How, News, Online book
Computer Science Journals List of CS Conferences, CS Conferences, SIAM, Journal seek, Theoretical foundations, Math Logic around the world, Archives

Algorithms and Data Structures

An algorithm (pronounced AL-go-rith-um) is a procedure or formula for solving a problem. The word derives from the name of the mathematician, Mohammed ibn-Musa Al-Xorazmiy, born in Khiva (now in Uzbekistan) who was a scholar in the House of Wisdom in Baghdad, lived from about 780 to 850. Al-Khwarizmi'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. Also simple explanation about Data Structure - Sorting Techniques, Big O Complexities, Data Structure - Sorting Techniques

Practical examples: Algorithms, geeksforgeeks,, • java2s.comTransport ProblemHeuristic SearchHeapsAlg 4th Edt.


  1. 1. Theoretical Computer Science
  2. 2. Theory of Computation
  3. 3. Wikipedia
  4. Book
  5. Free Online Theoretical Computer Science Courses