views:

47

answers:

1

What is the technical definition of theoretical computer science? (Or, what should it be?)

What main subfields does it include, and what is the commonality that separates them from the rest of computer science?

More specifically: if some particular research has direct practical motivations, goals and outcomes but mostly involves very abstract methods, is it theoretical computer science or not?

Two examples to consider:

"Dual quaternions for rigid transformation blending" (Better mathematical representation of rotation and transform for animation) https://www.cs.tcd.ie/publications/tech-reports/reports.06/TCD-CS-2006-46.pdf

"Relational Semantics for Effect-Based Program Transformations with Dynamic Allocation" (Complier optimisation via denotational semantics): http://research.microsoft.com/pubs/67977/ppdprelational.pdf

[The Wikipedia article gives only a vague definition and a long list of subfields. Should just accept that there's no better definition than this? http://en.wikipedia.org/wiki/Theoretical_computer_science ]

EDIT: I guess this question comes down to "What does the term 'theory' mean in the context of computer science?". Looking at the 6 different meanings of the word at wiktionary, I don't think any of them fully fits. I guess the mathematical sense of a theory fits well for completely mathematical fields but not for others, and for VLSI, machine learning and computational biology from wikipedia:TCS it basically doesn't fit.

A: 

This link contains a list of subfields: http://arxiv.org/corr/home, I won't reproduce them here as the link may change, and it would be redundant.

Also, I'm reminded of the quote of someone, can't remember who, along the lines of:

Mathematics is whatever mathematicians do

It would seem to apply.

Noon Silk
Those seem to subfields of computer science in general. I'm asking specifically about theoretical computer science. Which of those are in TCS?
RD1
@RD1: Do you really not have the capability to determine that yourself?
Noon Silk
I can classify most of them in a way that I'd expect some agreement on. The one's I'm most unsure of are: Data Structures and Algorithms; Computer Science and Game Theory; Cryptography and Security; Programming Languages. I guess for these I'd classify them as including some TCS and some not. When I compared my list to the Wikipedia list they were inconsistent, so I moved a few around. Overall I don't feel like I know why some fields are TCS, and others not. Many people have classified me as a theoretical computer scientist, but I claim that I'm not - am I entitled to do that?
RD1
@RD1: Surely to be theoretical you just need to be doing theory. So if you do that, you're theoretical. If you do practical things, you are not. I see no real purpose in creating something definitive other than as I incidated in my post.
Noon Silk
@silky: I do practical things using "theoretical" methods. I think that's pretty common - certainly it is in my field. Regarding something definitive - yes, you could be right.
RD1