My questions:
- Are there universites offering a B.Sc. in computer science aimed solely at giving the best training to future theoretical computer science researchers?
(in the universities I checked, the programs are a combination of training people for research and training people to be programmers in the industry).- As it seems not to be the case in most universities, is there a reason not to offer such programs? (financial maybe)
The motivation for the questions:
I am a mathematics M.Sc. student. I had several conversations with researchers (full/associate professors) in theoretical computer science when I was looking for a thesis advisor. Three of them mentioned to me that they wish they would have learnt more mathematics in their basic training (two of them had a B.Sc. in mathematics and computer science and said they wished they did an M.Sc. in mathematics as well and one of them studied computer science only for a B.Sc.). Their comments referred to funtional analysis (by a researcher in metric embeddings), to group theoretic constructions of expander graphs, etc.
This led me to check the program in computer science and here is what I found:
If a student really tries to get as much cs-theory and mathmematics in his B.Sc, he can study: 38% theoretical computer science, 40% mathematics with mathematics students, 6% mathematics with cs-students only, 16% technical courses. This amounts to 16% waste of time (for a future theoertical cs researchers) and 6% non-optimal use of time (as these math courses with cs-students feel a bit like high-school math).
I included the basic programming courses under theoretical cs because I believe they are essential in order to "know what you're talking about" when studying algorithms, computability, etc. The situation is even a little worse from the perspective of this student because I included all the graduate courses in theoretical cs offered to undergrads, so he will have less theoretical cs courses to take during the M.Sc.
It seems like a much better choice for a future cs theory researcher is to study mathematics and take the cs theory courses (together with the most basic programming courses) as the "free choice" courses. I feel lucky to have done that as it seems that I would not have received such an excellent training if I had gone for the university's fixed cs+math program.
I think that the cs world could benefit alot if universities offered both B.Sc. and M.Sc. programs in "mathematics and theoretical computer science". This can be good both in giving a better training and in encouraging future colloboration.
So here's another question:
Do you agree that such programs ("mathematics and theoretical computer science") are a better alternative to cs-only programs or math+cs program which include many technical courses, as far as future theoretical cs researchers are concerned?