Theoretical computer science (TCS) includes a diverse set of topics which focus on theory and mathematics. Although many computer science students complain about the difficulty of these topics and often doubt their value, TCS is probably the only field which justifies the word "science" in computer science. Based on a solid mathematical background, theoretical computer science aims to provide a theoretical foundation for the practical aspects of computing. While sometimes considered overkill to use theoretical and formal approaches in practical activities such as software development, it is absolutely essential for safety-critical systems like health-care, aerospace, and nuclear control.
A typical course in theoretical computer science may involve any combination of the following topics:
- Safety-Critical Systems
- Formal Methods
- Turing Machines
- Languages and Automata
- Finite State Machines
- Generalized/Extended Finite State Machines
- Petri-Nets and its Variations (e.g. Colored Petri-Nets)
- Process Algebras
- Graphs and Graph Theory
- Model Checking
- Formal Testing
- Formal Verification and Validation
- Formal Simulation
- Automated Theorem Proving
- Natural Computing
- Data Structures and Algorithms
- Parallel and Distributed Computation
- Information Theory
- Computational Complexity
Almost every computer science pioneer has contributed to the foundations of theoretical computer science, mostly by publishing papers in theoretical journals and proceedings. You can find academic resources on the topic by searching into conference proceedings and journals published by the ACM, IEEE, Springer, Elsevier, or papers indexed publicly by Google Scholar. Prestigious journals in TCS include the Journal of the ACM, Formal Aspects of Computing, ACM Transactions on Computation Theory, Theoretical Computer Science, and Journal of Automata, Languages, and Combinatorics.
To fulfill our mission of educating students, our online tutoring centers are standing by 24/7, ready to assist students who need our expertise in theoretical computer science.