Answers to Global Educator Magazine, Student Section
The Global Educator magzine addresses students of science and engineering. The
focus of the magazine is to provide information to students about educational
institutions (specifically focusing on engineering and technology) in India and
overseas, inform them about developing opportunities in
engineering, offer practical tips on how to manage education abroad, carry
interviews and profiles of achievers in the field of science, technology,
engineering and business as role models.
Below
are the answers to the interview questions posed by the Global Educator
to me. They will be published in a future issue of the magzine.
1. Could
you tell us about your career so far?
I am currently
a PhD candidate in the Department of Computer Science at North Carolina State
University, Raleigh, North Carolina. I completed my Master of Science degree
from the same university in 2003, and Bachelor of Engineering degree from
National Institute of Technology - Karnataka (previously KREC), Surathkal,
India, in 2001, all in Computer Science. During my graduate studies, I have
interned at NEC Europe Network Laboratories, Heidelberg, Germany and IBM T J
Watson Research Center, New York. In 2007 summer, I will intern at Microsoft Center
for Software Excellence, Seattle.
2. How
did Software Engineering interest you?
I like
exploring research ideas that have immediate practical applications;
innovations that create impact and are adopted by a very large community. Specifically,
my interests in Software Engineering lie in the area of Automated Software
Testing and Verification. It is indeed a very satisfying experience to come up
with research methodologies that ultimately improve the developer productivity
in the software industry. I was introduced to this fascinating world of
Software Engineering through the Automated Software Engineering research group
(http://ase.csc.ncsu.edu/) led by my advisor Dr. Tao Xie, of which I am
currently a part of.
3. What
is your doctoral research concentrating on?
In simple
words, my doctoral research focuses on developing efficient techniques to
automatically find bugs in software programs. Bugs can have serious
implications ? illegal access to a personal computer, failure of a life-saving medical
device managed by software, complete network shut down of a large organization,
to name a few. Bugs are mainly caused when programmers fail to adhere to
certain application-specific, non-syntactic rules in the code that they write.
These rules, when documented and available, can be checked against a given
program using sophisticated software verification tools such as model-checkers.
So far, my doctoral thesis focuses on addressing two problems. (a) Writing
rules formally for software verification is hard and error-prone (b) Application-specific
rules may not be documented, hence being unavailable. I have proposed and
implemented a framework that makes specifying rules for software verification
easy. Furthermore, I apply data mining techniques to automatically extract such
rules directly from program source code or program execution runs. These rules
can then be used to find bugs.
4.
Through your doctoral thesis what would you contribute to the software
engineering field?
The
research methodologies that I develop will aid developers in the software
industry to adopt sophisticated software verification techniques in their
coding cycle effectively, with minimum efforts. Software verification
techniques such as model checking can assure total absence of certain classes
of bugs. However, developers need to specify property rules formally in order to
apply verification tools. Most developers find this specification task a
hindrance to their coding efforts as specifying rules formally requires
knowledge of the rules themselves (which might not be documented and available)
and the formal rule language. Furthermore, specifying rules also requires the
knowledge of the internal details of the components used in the software and
their source code details. The techniques that I develop in my thesis partly
automate the process of finding rules and specifying them for the verification
tools. This research result ultimately leads to higher confidence in the
software being developed and better quality assurance standards.
5. How
has your experience been studying and conducting research in US university?
Excellent!
North Carolina State University has an excellent Computer Science program for
students. Students are allowed to choose from a wide variety of courses
preparing them to address research problems in different areas of Computer
Science. There is an open environment for collaboration within the department
and students are given great freedom and guidance to choose research problems
that interest them. The curriculum also encourages students to get practical
experience outside academia. To my research field, this is an integral
component, as we get exposed to real problems that software developers face. The
Automated Software Engineering research group, of which I am a part of, has
ties with researchers from other universities and industrial research labs
around the world. I have been very fortunate to work in few of the leading
research labs in my doctoral career so far.
6. Could
you share your experience in technical conferences and during paper
presentations?
Our
research group actively publishes in leading Software Engineering conferences.
I have been fortunate to attend and participate in a few of them and it is a
very rewarding experience. A student needs to have very good communication and
presentation skills to get the best out of such conferences. It is about
effectively and clearly presenting months or years worth of research work in
less than half an hour and getting the audience interested. Leading experts in
the field attend these conferences and it is very useful to get constructive
feedback from them. Discussion with other conference attendees aid students in
identifying problems in their research and also defining newer research
problems to solve. This conference interaction leads to collaborations among
researchers with similar interests. One also gets to learn about the most
current research problems in the field by attending other presentations and key
note talks. Conferences are also a great venue to meet with your prospective
employers and discuss mutual interests. In summary, meet and talk to as many
people you can in such conferences to ?sell? your research and also know about
the latest in the field.
7. What
innate skills do you feel essential for a PhD aspirant?
In short,
systematic problem solving skills are the most important requirement for a PhD
aspirant. There are various components in productive problem solving. The first
component is gathering the background knowledge required to conduct research. A
PhD student has to know what has been done so far in his field and the emerging
trends. A student gathers this knowledge by taking relevant courses and
conducting extensive literature survey. A student should be very good at
extracting relevant information for the research from the vast body of existing
work quickly and effectively. The second component is identifying an
interesting problem worthy of solving. This is a major component and takes
time. Having a good advisor greatly helps here. The third component is
excellent writing and communication skills. These skills are required to
effectively publish the research findings and to get constructive feedback from
advisors, mentors, and leading experts. In my field it also helps to possess
good software development skills, the fourth component. We propose research
solutions, implement them as tools, and test their effectiveness on real
software subjects. Finally, a student needs to be self-motivated, passionate
about the research problem, and dedicated to perform productive research. Some
valuable advice on conducting research given by my advisor can be found at:
http://www.csc.ncsu.edu/faculty/xie/advice/
8. What
are your future aspirations?
My
immediate plan after graduation is to work as a software engineering researcher
for an industrial research lab with strong publication culture. In my area,
research problems are usually motivated by industry needs. After a few years of
experience in the industry, I would like to apply for a tenure-track faculty
position in reputed universities. As an academician, one has greater freedom in
choosing the research problems and collaborations. My prior exposure to the
software industry should enable me to address practical problems, the solutions
of which would fundamentally advance the field of Software Engineering.
9. Any
comments on the software industry in India?
The
prospects for software industry in India are very bright. Leading software
companies such as Microsoft and IBM have set up research labs in India
recently. These research labs have strong collaborations with universities all
over India. Most software development giants such as Infosys have research
wings in house. These collaborations and industrial investment for research tie
up practice and research promoting fundamental advances in the field of
Software Engineering. With its man-power
and skill, India is soon going to be a software super power, contributing
fundamentally to the field of Software Engineering and Computer Science in
general. To this end, I personally feel that the government should increase
funding grants and support for major universities such as Indian Institute of Technologies
(IIT), apart from spawning newer universities for higher education. Graduate-level
education in India for engineering and physical sciences is still not up to the
mark and a substantial investment here would help transforming India to a
knowledge super-power.
Posted at
09:10AM Apr 27, 2007
by ACHARYA, MITHUN in General |
Good communications kills is really important in conferences for it to be effective. Even in presentations, one must have good communications skills to be able to deliver the message he wants or must deliver to his audience or the people he is presenting to.
In presenting your research work, even in writing, you must have good communication skills as well. It will help you to organize your work in a way that those who would read it would understand fully your work.
Posted by Communication Skills on September 06, 2007 at 11:55 AM EDT #