<p>Also I wonder if 'size' is the right metric. that tends to vary as subfields come in and out of fashion. For example, a visitor from the 1980s would be very puzzled as to where all the parallel algorithms disappeared to. Someone attending SoCG in the last five years would think that we should call it the Symposium on Computational Topology :). </p>

<p>Maybe the best thing to do is to let the student browse proceedings from theory conferences to get a sense of what's in vogue RIGHT NOW, and emphasize that this answer will change over time. </p>

CC BY-SA 2.5
2010-09-17T18:54:48.403Z
I guess parallel algorithms disappeared to SPAA, PODC, DISC, IPDPS, ICDCS, ...
Jukka Suomela
CC BY-SA 2.5
2010-09-17T17:02:16.867Z
2010-09-17T17:02:16.867Z
Suresh Venkat
<p>If you look at:</p>

<p><a href="http://arxiv.org/" rel="nofollow">http://arxiv.org/</a></p>

<p>you can see how they organize the different parts of Computer Science and also see the relative number of contributions that are being posted to the different parts.</p>

CC BY-SA 3.0
2012-04-22T11:41:10.793Z
I feel like when people say algorithms, they're talking about the things that follow from the big CS developments in the 60's, basically CLRS and it's lineage. This doesn't really include computational geometry, mathematical programming, sampling methods (and associated theoretical machinery), machine learning methods, cryptography, highly mathematical graph theory, and a whole bunch of other things that involve algorithms; yet the distinction seems somewhat clear (though maybe I'm just ignorant of modern developments).
Elliot JJ
CC BY-SA 2.5
2010-09-17T20:26:44.113Z
I will comment that the arxiv classifications are not the best. merging data structures and algorithms is just confusing, for one thing. and algorithms itself is a very broad category, compared to (say) computational geometry.
Suresh Venkat
CC BY-SA 2.5
2010-09-17T19:37:18.477Z
2010-09-17T19:37:18.477Z
Joseph Malkevitch
<p>I often want to give students a broad view of theoretical computer science, in the beginning of algorithms class or when advising a new student. It is hard for me to decide which sub-areas to talk about and how much emphasis to put on each of them. </p>

<p>Therefore, my question is: <em>What are the main sub-areas of theoretical computer science and what is their relative "size"?</em> Let's say the size is the number of researchers who work mostly in that area.</p>

<p>Of course the division into sub-areas is a clustering problem with no unique answer. I also don't expect people to have precise statistics for the size of each area, but some feeling of the relative sizes is already helpful.</p>

CC BY-SA 2.5
2010-09-17T15:50:52.787Z
this should be a CW...
Lev Reyzin
CC BY-SA 2.5
2010-09-17T16:29:20.660Z
1. Main subareas of theoretical computer science are listed on Wikipedia.  Have you looked at it?  http://en.wikipedia.org/wiki/Computer_science#Theoretical_computer_science  2. I do not know about the “relative size,” but I do not think that it can be answered without being too subjective to be suitable on this site.
Tsuyoshi Ito
CC BY-SA 2.5
2010-09-17T16:59:49.303Z
Look at this list on meta, from SIGACT: http://meta.cstheory.stackexchange.com/questions/119/our-domain-scope-specifically-defined/153#153
Suresh Venkat
CC BY-SA 2.5
2010-09-17T17:06:06.750Z
Tsuyoshi, thank you for the pointer. The list of sub-areas of tcs on wikipedia is: Mathematical logic, Automata theory, Number theory, Graph theory, Type theory, Category theory, Computational geometry, and Quantum computing theory. Wikipedia also lists algorithms and data structures as a separate area with 3 sub-areas: Computability theory, Computational complexity theory, and Cryptography.
Guilherme D. da Fonseca
CC BY-SA 2.5
2010-09-17T17:08:56.790Z
Should this be a community wiki? I'm not looking for one right answer, but I believe there are several quite different interesting answers.
Guilherme D. da Fonseca
CC BY-SA 2.5
2010-09-18T03:28:33.267Z
I can't imagine how this question can be answered in its current form without being too subjective. It's not even clear to me what an acceptable answer to this question is.  Should everyone just post what they think are the main sub-areas of TCS?
Robin Kothari
<soft-question>
What are the main sub-areas of theoretical computer science?
Guilherme D. da Fonseca
# What are the main sub-areas of theoretical computer science?

(Asked by: username_0 on 2010-09-17)

I often want to give students a broad view of theoretical computer science, in the beginning of algorithms class or when advising a new student. It is hard for me to decide which sub-areas to talk about and how much emphasis to put on each of them.

Therefore, my question is: *What are the main sub-areas of theoretical computer science and what is their relative "size"?* Let's say the size is the number of researchers who work mostly in that area.

Of course the division into sub-areas is a clustering problem with no unique answer. I also don't expect people to have precise statistics for the size of each area, but some feeling of the relative sizes is already helpful.

**Tags:** soft-question

> **Comments:**
> **username_1**: this should be a CW...  
> **username_2**: 1. Main subareas of theoretical computer science are listed on Wikipedia.  Have you looked at it?  http://en.wikipedia.org/wiki/Computer_science#Theoretical_computer_science  2. I do not know about the “relative size,” but I do not think that it can be answered without being too subjective to be suitable on this site.  
> **username_3**: Look at this list on meta, from SIGACT: http://meta.cstheory.stackexchange.com/questions/119/our-domain-scope-specifically-defined/153#153  
> **username_0**: Tsuyoshi, thank you for the pointer. The list of sub-areas of tcs on wikipedia is: Mathematical logic, Automata theory, Number theory, Graph theory, Type theory, Category theory, Computational geometry, and Quantum computing theory. Wikipedia also lists algorithms and data structures as a separate area with 3 sub-areas: Computability theory, Computational complexity theory, and Cryptography.  
> **username_0**: Should this be a community wiki? I'm not looking for one right answer, but I believe there are several quite different interesting answers.  
> **username_4**: I can't imagine how this question can be answered in its current form without being too subjective. It's not even clear to me what an acceptable answer to this question is.  Should everyone just post what they think are the main sub-areas of TCS?  

---

## 2 answers

### Answer by username_3 on 2010-09-17. Score: 4

Also I wonder if 'size' is the right metric. that tends to vary as subfields come in and out of fashion. For example, a visitor from the 1980s would be very puzzled as to where all the parallel algorithms disappeared to. Someone attending SoCG in the last five years would think that we should call it the Symposium on Computational Topology :).

Maybe the best thing to do is to let the student browse proceedings from theory conferences to get a sense of what's in vogue RIGHT NOW, and emphasize that this answer will change over time.

> **Comments:**
> **username_5**: I guess parallel algorithms disappeared to SPAA, PODC, DISC, IPDPS, ICDCS, ...  

---

### Answer by username_6 on 2010-09-17. Score: 2

If you look at:

<http://arxiv.org/>

you can see how they organize the different parts of Computer Science and also see the relative number of contributions that are being posted to the different parts.

> **Comments:**
> **username_3**: I will comment that the arxiv classifications are not the best. merging data structures and algorithms is just confusing, for one thing. and algorithms itself is a very broad category, compared to (say) computational geometry.  
> **username_7**: I feel like when people say algorithms, they're talking about the things that follow from the big CS developments in the 60's, basically CLRS and it's lineage. This doesn't really include computational geometry, mathematical programming, sampling methods (and associated theoretical machinery), machine learning methods, cryptography, highly mathematical graph theory, and a whole bunch of other things that involve algorithms; yet the distinction seems somewhat clear (though maybe I'm just ignorant of modern developments).  

---

