10

I'm looking for a major in Theoretical Computer Science; specifically, I'm interested on complexity theory and probabilistic automata theory. As I'm graduating in one year, what advanced courses in math (like Galois theory or Harmonic analysis, for example) do you think would be useful to take over the next two semesters? Why?

Patrick87
  • 12,824
  • 1
  • 44
  • 76
ADR
  • 209
  • 1
  • 2
  • 2
  • 1
    Also check course requirements at your school, as well as similar questions on [cstheory.SE] (e.g. this or this). I am tempted to close this one here as a duplicate; it's also pretty localised. – Raphael Sep 07 '12 at 07:40
  • you can have a look at the Theoretical Computer Science Course being offered on udacity. Listen to a few introductory lectures there, it would provide a good insight into what is required. – krammer Sep 07 '12 at 10:06
  • 6
    Take ALL the math! – JeffE Sep 07 '12 at 12:21
  • 2
    @JeffE Take... all the math? – MrGomez Sep 07 '12 at 18:14
  • 1
    More seriously: increasing your mathematical repertoire isn't wrong as a TCS major. Picking and choosing material for you, however, is very difficult without having a better idea of what fundaments and advanced topics you've studied, as graduate level TCS programs vary widely. -- Given the discussion-oriented nature of such questions, you may have better luck posting this to http://www.reddit.com/r/compsci with a description of your current and prior studies. I've found their suggestions to be quite good. – MrGomez Sep 07 '12 at 18:20
  • 2
  • I converted the gist of the comments into a (community-wiki) answer. Maybe additional (CW) answers can be added - each answer for a single method, and where it could apply (or a single sub-field, and the list of methods that are currently mostly relevant for that subfield) – Ran G. Oct 04 '12 at 19:35

1 Answers1

2

(A summary of the comments to the questions)

pretty much any area of mathematics could be important in TCS, so you should do the best to strengthen your math background. Any tool you learn is a gain, and may be employed in some TCS (sub-)field.


This question was also answered in other SE, and very informative details can be found in:

  1. what-kind-of-mathematical-background-is-needed-for-complexity-theory
  2. Examples of “Unrelated” Mathematics Playing a Fundamental Role in TCS?
  3. What math courses should I take to prepare for a CS masters or PhD?
Ran G.
  • 20,684
  • 3
  • 60
  • 115
  • 1
    Strongly disagree with this blanket statement. In fact, the vast majority of areas in mathematics are not helpful for theoretical computer science. Say functional analysis, set theory (e.g. forcing), topology, algebraic geometry (no, GCT doesn't count), differential equations, and the list could go on and on. The most important mathematical subject is probability theory (even that depends on the kind of TCS you're doing). Apart from that, some very basic knowledge in some areas, e.g. group theory. – Yuval Filmus Oct 05 '12 at 03:45
  • @Yuval, I think that this is a bit of short-sight. Who thought Fourier Transforms can be so useful to TCS (before the glory it achieved when used for PCP, etc?) Who thought SDP solvers are so relevant to TSP (as recently showed in [arxiv:1111.0837], if I understand their work correctly).. I Think many other methods can be used for TCS and surely for CS in general.. True, not all of the methods are equally important, and I was hoping this thread would become a list of methods/applications, where the most important methods would get the highest votes. – Ran G. Oct 05 '12 at 13:14
  • Fourier transforms are very elementary concepts. You don't need to understand the Fejer kernel in TCS. As for SDPs, they come from operations research (or convex optimization, if you prefer). It's true that some things might be useful. For example, I found my background in C very useful, and Virginia Williams found her background in Maple very useful. In terms of your career, writing and public speaking are also very useful. All of these are probably more useful than a course on combinatorial set theory. Why not tell people to study these subjects instead of random math courses? – Yuval Filmus Oct 05 '12 at 20:17
  • @YuvalFilmus Yes, you are right. Researchers-to-be should learn what is already known, not what possibly could make them reach a new breakthrough. That's the spirit for phd! (let's continue this philosophical debate on chat, if you please.) – Ran G. Oct 05 '12 at 20:46
  • @YuvalFilmus I'd disagree strongly about functional analysis. it's relevant for compressed sensing (Dvoretzky's theorem), metric embeddings, SDP rounding (see the survey on grothendieck's inequality), the theory of random matrices, convex optimization. anything that goes under "local theory of banach spaces" is really high-dimensional convex geometry, even if the original papers use the language of operators and banach norms – Sasho Nikolov Oct 06 '12 at 04:13
  • Of course functional analysis is a broad field, but my point is, large chunks of it can be very useful. those chunks could usually benefit from restating in a purely geometric language, but surveys by Ball and Vershynin have already done that for many of the important results. also, i've been finding some FA papers quite readable as opposed to say arithmetic geometry. – Sasho Nikolov Oct 06 '12 at 04:21
  • In my experience, the results which are actually useful are usually in the proverbial first 10 pages of a graduate textbook. In theoretical computer science we don't even use the central limit theorem. I believe it's much better to learn these things on the go, rather than take math courses, most of which aren't really helpful. Instead, students should take seminars, in which they present papers, and do some undergraduate research. – Yuval Filmus Oct 06 '12 at 04:30
  • @YuvalFilmus we don't use CLT? i think ryan o'donnell would disagree about this one. invariance principles? also, all of vershynin's and ball's notes are useful, which add up to 50-70 pages and more. – Sasho Nikolov Oct 06 '12 at 16:47
  • @Sasho Exactly, we don't use CLT, we use other results like Chernoff's bound. The invariance principle doesn't follow from CLT. Its applications use properties of Gaussians. My point is that mathematicians have their own interests, often very abstract, while in TCS we only need some particular results. For example, most books on probability theory don't discuss Chernoff's bound, since for them the asymptotic theorem (CLT) is more important than "dirty" bounds on the speed of convergence. – Yuval Filmus Oct 06 '12 at 22:27
  • 1
    @YuvalFilmus I don't understand: the MMO invariance principle is a strict generalization of Berry-Esseen. I don't agree with your larger point either. A lot of TCS may use probability as far as a Chernoff bound. But the JL-lemma, concentration of measure in say ARV, Dvoretzky's theorem for compressed sensing, Grothendieck's inequality in approximating the cut norm are just some very successful examples of FA being useful in TCS. yes, the mainstream focus of the two fields is different - but the intersections go beyond "the first 10 pages" and make learning the math worth it. – Sasho Nikolov Oct 07 '12 at 07:31
  • 1
    moreover, while our applications usually allows us to stick to (variants of) results that can be described and often proved in an elementary way, the larger context provides intuition (CLT is a great heuristic for example). and since it's hard to tell what's useful until you need to use it, i wouldn't mind taking some math courses in addition to reading groups in TCS that help you learn what's already known to be useful. i've recently found a FA result (that's almost never used in TCS afaik) to be the key to a problem I was working on – Sasho Nikolov Oct 07 '12 at 08:07