Advice to Masters Students
 
Welcome to the wonderful world of graduate studies!  You've chosen me
as your tour guide for this adventure, so buckle up and follow the
instructions on the overhead monitor.  When the ride is over, in 18
months or so, you will surely have had your share of ups and downs and
ins and outs; but if you just hang on and work very hard, you will
come out of this as a slightly better computer researcher.
 
Although my official title is "veileder", which translates directly
into something like "the person who leads the way", I am more of a
"veiviser", which translates directly into "the person who shows the
way".  I cannot lead very many of you anywhere, because I simply do
not have time to go all the places (i.e., learn all the things) that
you will go in the next year and a half.  I can point you in the right
direction, but the rest is up to you, almost exclusively!
 
This may be the first time in your academic career that you have
received so much freedom and responsibility at the same time.  I was
in your shoes once, and I know that it is not easy.  Self-discipline
is extremely important in this situation.  18 months is not a lot of
time for the task that lay ahead, so get started NOW and keep focused
on your project and the necessary background topics.
 
Your basic task is to investigate an interesting cutting-edge area of
artificial intelligence and understand it in a) enough breadth to
write a 10-15 page chapter on the main research in that area, and b)
enough depth to implement a system from that field, either one of your
own invention or one based on the work of others, and apply that
system to an interesting problem of your choosing, but of general
interest to researchers in your selected field of study.
 
Your final report will then consist of:
 
a) A 5-10 page introduction to your topic area.  The most important
information in this section (and argueably in the entire thesis) is
a statement of one or a few central research questions that your
project is designed to investigate.  This statement should relate, in
some way, to interesting, relevant, and well-documented open research
issues in your chosen field.  This statement should very visibly be
the main motivation for the remainder of the thesis.  After reading
this section, the reader should never be in doubt as to WHY you are
doing this work.
 
b) 10-20 pages of background in your research area.  This should
include both a general explanation of the area plus a brief
description of several (5-10) key systems in the area. 1-2 paragraphs
per system is normally sufficient to convey the main contributions.
These systems should be those whose motivating research questions
and/or final results are most relevant to your motivations and desired results.
 
c) 20-30 pages describing the detailed
design of your computer system.  This does NOT mean source code, but a
thorough discussion of the key components of your system and a solid
justification for their selection.  Diagrams are essential!
 
d) 15-30 pages where you a) describe the results of running your system on different problem scenarios, and b) analyze those results.  Analysis consists
of both pointing out interesting patterns in the data and trying to explain
them in terms of the structure of your system.
 
e) A 5-10 page conclusion, where you sum up your project and discuss
the key implications of your work with respect to the general research
questions that you posed in the introduction.  This section should be
at the same HIGH level on which the research questions were posed.
Details of system behavior are restricted to section d, above.
In general, this section should provide the final "take home message"
from your work.
 
f) Optional Appendix: The source code for some of the key system
modules (or the whole system if it is not too long)
 
The page lengths are not strict, but only serve as guidelines.  A
typical masters thesis is 50-100 pages long.  Much shorter, and people
will begin to question how much work you have really put into the
project.  Much longer, and few people will take the time to read it.
 
In a nutshell, here is how I expect you to use your time in the next 18 months:
 
Semester #1: You will mainly take courses but should also begin
thinking very seriously about your project.  This means reading a lot
of background material.  As a rule of thumb, consider your masters
thesis as 1-2 FULL courses during this period, but without an exam.
That means that you should read several hundred pages of background
material.  Conference proceedings are a great place to start: each
article is only 6-10 pages long, so you can cover a good many pieces
of related work in a day or two.  Journal articles are also useful,
but they tend to be longer, so do not get too hung up in a journal
article unless you find the topic very interesting and relevant.
 
Semester #2: Your project should now become your main focus.  Treat it
as THREE FULL courses.  This means that you continue background
reading, but by now, you should have found a relatively specialized
topic area, so your reading will be focused on that "niche".  In
addition, you should decide on a system to implement during this
semester.  A good goal is to have a prototype up and running by the
end of this semester.
 
Semester #3: Full speed ahead!!  Your project should be about all that
concerns you (aside from the boring stuff like eating, sleeping and
exercise).  During this semester, you will need to fine tune the
system and run it on a few problem cases.  Once those results are in,
the easy (???) part begins: writing it all down.  Some people really
enjoy this phase - others despise it.  Regardless of your opinion of
writing, this is the most important aspect of the project.  If you
have done good work but cannot write it up well, nobody will ever
understand your true contribution, and your grade will suffer.
However, if you have not implemented anything outstanding but have
written a good essay on the field and a good description of your
system and its pros and cons, then, believe it or not, you have still
done "research" and you will be rewarded at least partially for your
attempt and for being able to analyze and discuss the results in an
intelligent manner.
 
Please remember that not all research is about success and
breakthroughs.  We all have that ambition, but the odds are not in our
favor.  Most research projects end in a wimper, not a bang.  You begin
with high hopes for your system, but in the end, it may only do 20% of
what you dreamed.  The important thing is not to quit and call the
whole project a failure, but to analyze the results and write them up.
Your work can then help others who are interested in a similar
problem, both by telling them what to do and what NOT to do.  That's
research - both the successes and the failures.
 
I hope that every masters thesis can turn into a publishable piece of
research, but this is also overly ambitious.  Not every project will
make a new contribution to the field, and that is fine.  This is not a
PhD thesis!!  My main concern is that each masters students "comes up
to speed" in an area of research.  This happens via reading (lots of
it!!!) and (in my fields of study - evolutionary computation and
artificial life) implementation.
 
If you are very astute, you will find a "hole" in contemporary
research; and if you are very clever, you will design a system to fill
that void.  Finding the holes is non-trivial, but good places to start
are the "future work" and "discussion" sections of research papers.
Also, review articles on particular specialized topics are often
extremely useful in this regard, since they tend to give general
overviews of both the contributions and weaknesses in a field.
 
Many masters students do not find any significant holes that they are
able to fill.  Again, that is okay.  It is not a requirement of the
masters degree, although it may be the difference between an "A" and a
"B" or "C" grade.  In general, you do not need to fill a significant
hole to get an "A", but you have to a) identify the hole, b) make a
serious, well-justified attempt to fill it, and c) analyze very
thoroughly the successes and failures of your attempt.
 
Although the publication of a masters thesis is a possibility, this is the exception, not the rule. The publication itself will be its own additional reward.  So please do not get too hung up on the publishing.  Just focus on your chosen topic.  Learn as much as you can, and in the course of doing
so, you may stumble onto something (a hole) that you can turn into
something very significant.  "Chance favors the well-prepared mind",
as Louis Pasteur said.  So do that prepararation as thoroughly as possible, and maybe lightning will strike!  But if it does not, you can still get a good grade by doing well-justified work and writing an interesting report that displays your new-found knowledge.
 
 
What a Thesis is NOT!
 
A masters thesis is not a fancy implementation with a post-hoc
justification.  We all know how fun it is to write software, but
programming does not earn you a high mark from a major university such
as NTNU.  Your programming MUST be driven by interesting research
questions, otherwise it is simply not research, not at all.  If you do
all the programming first and THEN try to find research issues that it
fortuitously addresses, you will, in all probability, come up with
only very lame justifications that a sensor will easily detect and
strictly penalize.  So resist the temptation to start programming
until you have a general idea of the research question.  You might
program to EXPLORE possible angles on a research question, but do not
blindly begin programming in hopes of eventually figuring out your
motivation.  This is akin to building a house first and then trying to
add on the basement afterwards.  In both cases, you'll be doing a lot
of difficult digging!
 
A masters thesis in AI is not simply a discussion about something that
interests you.  It must contain the basic elements of the scientific method: hypothesis, methods, results, analysis, etc. You are a scientist exploring a question, and as a COMPUTER scientist, your natural tool of choice is the computer program.
 
Remember, the computer program in and of itself is not the RESULT.
Although this may be the case in certain engineering disciplines, in
AI, the program is the TOOL for PRODUCING the results.  So never
conclude that since a) you've pointed out an interesting research issue
and b) you've written a bug-free program, then c) you are done.  The behavior of your system must be analyzed with respect to the research goals.
Failure to report and analyze these results and to explicitly link them to your
research goals is often the difference between a good (A-B) and a bad (D-F) grade.
 
 
Judgement Before the Dark Court (Lewis Barret Lehrman)...with no reference to the oral masters presentation intended :)