<p>This can be a very weird question, but I haven't seen the same situation with mine in this forum, so I'd like to put this. Let me introudce my situation first.</p>

<p>I'm now a math student of master program in a university in Korea, and I was majored in economics and math as an undergrduate. As a freshman, though my first major was economics, I took a class of mathematical logic, and it was great to me. From that time, I decided to have double major in math and economics. And taking math courses like linear Algebra, Algebra, Analysis, Complex Analysis, Logic, Set theory, Statistics, Homological Algebra, Topology and so on.</p>

<p>But as time went on, I felt that the motivation of standard math courses are somewhat different from mine. Yes, mathematics has a culture of broad range, but, even if the core courses are very useful and beautiful, I think it has a slightly different motivation from mathematical logic. "What can be a good course to take if I liked logic class?" I asked to myself, and I decided to take "Formal languages and automata theory" in cs. It was fantastic. And at that time, I learnt there existes the area of theory of computation or theoretical computer science. But in Korea, culture of cs is more oriented in the way of engineering area, so I felt that it would be more helpful to train myself in math dep. than cs, so I chose to go to master program of math.</p>

<p>But now, in my university, there are more strong culture of concetrating on "classical" mathematical things, not computation or even combinatorics or logic. So, I realized that if I pursue this way, then I'll be just a "pure" mathematician. Considering interconnectedness of academia, it can be also a good way, but I don't like to do that. So I'd like to change a university to pursue tcs research.</p>

<p>However, I've just taken two courses in cs - Formal languages and automata theory, and c programming. And I have no research experiences in cs. I'd like to self study my own to have sufficient information of tcs area for a while, but it's just an individual thing. And I'm so confused because I don't know what courses to take from now on, and what resonable amount of knowldeges are needed to start reasearch in tcs(especially the knowledge in cs). Briefly, what should I do to switch from math department to cs to research tcs topics?</p>

<p>Recently, I have some interest in computational complexity theory and start to study "gems of theoretical computer science" and it's very interesting. But that's only plan that I have. I wish my plan would be more concrete. Any help? Please?</p>

CC BY-SA 3.0
2013-05-19T10:35:47.827Z
There are so many avenues you could pursue. In my experience there is a shortage of PhD students with a strong maths background, because many CS departments don't teach much maths to their undergraduates. Automata theory connects with logic and programming very deeply via decision problems. If you want to make use of your economics knowledge why not have a look at [algorithmic game theory](http://www.cambridge.org/journals/nisan/downloads/Nisan_Non-printable.pdf)?
Martin Berger
CC BY-SA 3.0
2013-05-19T11:21:40.350Z
Thank you for your kind word. Actually, I've heard about algorithmic game theory and that would be also a great area to consider. My concern is whether I can get an admission from cs grad. program. Now, I feel the possibility will be very low, even if I consider algorithmic game theory, because I took too little cs courses.
Charlie
CC BY-SA 3.0
2013-05-19T12:49:17.233Z
Although I am not familiar with the Korean system, I doubt you need to  worry too much about it. An undergraduate degree in maths makes you a very suitable candidate for TCS. Many famous TCS researchers have undergraduate maths degrees. People will look at your grades and your letters of recommendation mostly.
Martin Berger
CC BY-SA 3.0
2013-05-19T15:36:04.350Z
The book you mention "Gems of TCS" is a great one! It introduces many areas of complexity, but not everything in TCS. Notable exceptions which you might find interesting: algorithms and data structures, data structures lower bounds, algorithmic game theory, cryptography, approximation algorithms and inapproximability results (google "Unique Games Conjecture" or "PCP Theorem"). As to what courses you should take and/or teach yourself, I would also suggest a course in algorithms. This should be more theoretical than a programming course, and understanding algorithms is crucial for TCS.
Joshua Grochow
CC BY-SA 3.0
2013-05-19T15:47:38.307Z
@Joshua thanks for another good advice and helpful information!
Charlie
CC BY-SA 3.0
2013-09-16T15:50:39.913Z
[gems of TCS by Uwe Schöning](http://www.amazon.com/Gems-Theoretical-Computer-Science-Sch%C3%B6ning/dp/3642643523/)
vzn
<soft-question><advice-request><career>
What should I do to switch from math department to cs to research tcs topics?
Charlie
# What should I do to switch from math department to cs to research tcs topics?

(Asked by: username_0 on 2013-05-19)

This can be a very weird question, but I haven't seen the same situation with mine in this forum, so I'd like to put this. Let me introudce my situation first.

I'm now a math student of master program in a university in Korea, and I was majored in economics and math as an undergrduate. As a freshman, though my first major was economics, I took a class of mathematical logic, and it was great to me. From that time, I decided to have double major in math and economics. And taking math courses like linear Algebra, Algebra, Analysis, Complex Analysis, Logic, Set theory, Statistics, Homological Algebra, Topology and so on.

But as time went on, I felt that the motivation of standard math courses are somewhat different from mine. Yes, mathematics has a culture of broad range, but, even if the core courses are very useful and beautiful, I think it has a slightly different motivation from mathematical logic. "What can be a good course to take if I liked logic class?" I asked to myself, and I decided to take "Formal languages and automata theory" in cs. It was fantastic. And at that time, I learnt there existes the area of theory of computation or theoretical computer science. But in Korea, culture of cs is more oriented in the way of engineering area, so I felt that it would be more helpful to train myself in math dep. than cs, so I chose to go to master program of math.

But now, in my university, there are more strong culture of concetrating on "classical" mathematical things, not computation or even combinatorics or logic. So, I realized that if I pursue this way, then I'll be just a "pure" mathematician. Considering interconnectedness of academia, it can be also a good way, but I don't like to do that. So I'd like to change a university to pursue tcs research.

However, I've just taken two courses in cs - Formal languages and automata theory, and c programming. And I have no research experiences in cs. I'd like to self study my own to have sufficient information of tcs area for a while, but it's just an individual thing. And I'm so confused because I don't know what courses to take from now on, and what resonable amount of knowldeges are needed to start reasearch in tcs(especially the knowledge in cs). Briefly, what should I do to switch from math department to cs to research tcs topics?

Recently, I have some interest in computational complexity theory and start to study "gems of theoretical computer science" and it's very interesting. But that's only plan that I have. I wish my plan would be more concrete. Any help? Please?

**Tags:** soft-question, advice-request, career

> **Comments:**
> **username_1**: There are so many avenues you could pursue. In my experience there is a shortage of PhD students with a strong maths background, because many CS departments don't teach much maths to their undergraduates. Automata theory connects with logic and programming very deeply via decision problems. If you want to make use of your economics knowledge why not have a look at [algorithmic game theory](http://www.cambridge.org/journals/nisan/downloads/Nisan_Non-printable.pdf)?  
> **username_0**: Thank you for your kind word. Actually, I've heard about algorithmic game theory and that would be also a great area to consider. My concern is whether I can get an admission from cs grad. program. Now, I feel the possibility will be very low, even if I consider algorithmic game theory, because I took too little cs courses.  
> **username_1**: Although I am not familiar with the Korean system, I doubt you need to  worry too much about it. An undergraduate degree in maths makes you a very suitable candidate for TCS. Many famous TCS researchers have undergraduate maths degrees. People will look at your grades and your letters of recommendation mostly.  
> **username_2**: The book you mention "Gems of TCS" is a great one! It introduces many areas of complexity, but not everything in TCS. Notable exceptions which you might find interesting: algorithms and data structures, data structures lower bounds, algorithmic game theory, cryptography, approximation algorithms and inapproximability results (google "Unique Games Conjecture" or "PCP Theorem"). As to what courses you should take and/or teach yourself, I would also suggest a course in algorithms. This should be more theoretical than a programming course, and understanding algorithms is crucial for TCS.  
> **username_0**: @Joshua thanks for another good advice and helpful information!  
> **username_3**: [gems of TCS by Uwe Schöning](http://www.amazon.com/Gems-Theoretical-Computer-Science-Sch%C3%B6ning/dp/3642643523/)  

---

## 0 answers

