As second installment of the series in which Fellows of the EATCS provide their advice to the budding TCS researcher, I am posting the advice from David Harel. Enjoy!
Advice
I would give to a student interested in TCS:
If
you are already enrolled in a computer science program, then unless
you feel you are of absolutely stellar theoretical quality and the
real world and its problems do not attract you at all, I’d
recommend that you spend at least 2/3 of your course efforts on a
variety of topics related to TCS but not “theory for the sake of
theory”. Take lots of courses on languages, verification AI,
databases, systems, hardware, etc. But clearly don’t shy away from
pure mathematics. Being well-versed in a variety of topics in
mathematics can only do you good in the future. If you are still able
to choose a study program, go for a combination: TCS combined with
software and systems engineering, for example, or
bioinformatics/systems biology. I feel that computer science (not
just programing, but the deep underlying ideas of CS and systems)
will play a role in the science of the 21st century (which
will be the century of the life sciences) similar to that played by
mathematics in the science of the 20th century (which was
the century of the physical sciences).
Advice
I would give a young researcher in TCS:
Much
of the above is relevant to young researchers too. Here I would add
the following two things. First, if you are doing pure theory, then
spend at least 1/3 of your time on problems that are simpler than
the real hard one you are trying to solve. You might indeed succeed
in settling the P=NP? problem, or the question of whether PTIME on
general finite structures is r.e., but you might not. Nevertheless,
in the latter case you’ll at least have all kinds of excellent, if
less spectacular, results under your belt. Second, if you are doing
research that is expected to be of some practical value, go talk to
the actual people “out there”: engineers, programmers, system
designers, etc. Consult for them, or just sit with them and see their
problems first-hand. There is nothing better for good theoretical or
conceptual research that may have practical value than dirtying your
hands in the trenches.
A
short description of a research topic that excites me at this moment
in time (and possibly why):
I haven’t done any pure TCS for 25 years, although in work my group
and I do on languages and software engineering there is quite a bit
of theory too, as is the case in our work on biological modeling.
However, for many years, I’ve had a small but nagging itch for
trying to make progress on the problem of artificial olfaction ̶
the ability to record and remotely produce faithful renditions of
arbitrary odors. This is still a far-from-solved issue, and is the
holy grail of the world of olfaction. Addressing it involves
chemistry, biology, psychophysics, engineering, mathematics and
algorithmics (and is a great topic for young TCS researchers!). More
recently, I’ve been thinking about the question of how to test the
validity of a candidate olfactory reproduction system, so that we
have an agreed-upon criterion of success for when such systems are
developed. It is a kind of common-sense question, but one that
appears to be very interesting, and not unlike Turing’s 1950 quest
for testing AI, even though such systems were nowhere in sight at the
time. In the present case, trying to compare testing artificial
olfaction to testing the viability of sight and sound reproduction
will not work, for many reasons. After struggling with this for quite
a while, I now have a proposal for such a test, which is under
review.
No comments:
Post a Comment