## Theory and Algorithms

Theory and algorithms form the mathematical core of computer science. While most areas in computer science study specific concrete systems, the goal of theory and algorithms is to abstract away these details in order to study the question: What sort of computations are possible to do, and possible to do efficiently, by any computer? In this way, discovering a faster algorithm for a problem, or discovering that there is no fast algorithm, is a statement about all computers and all computer programs. By understanding theory and algorithms, computer scientists are able to understand the fundamental abilities and limitations of the computational tools they work with, no matter the tools.

### Topics

#### Algorithms

Optimization, Network Flow, Consensus Clustering

#### Cryptography

Communication Security, Authentication, Digital Privacy, Encryption, Protocols

#### Models of Computation

Keyword 1, Keyword 2, Keyword 3...

#### Network Science

Complex Networks, Social Networks

#### Quantum Computing

Quantum Complexity Theory, Post-Quantum Cryptography, Quantum Error Correcting Codes

#### Scientific Computing

Numerical Methods, Molecular Dynamics

#### Theory of Computing

Models of Compuation, Computability, NP-complete, Polynomial-time, Turing Machine