How to get a PhD in Information Technology Peter Eades, PhD
How to get a PhD in information technology • Six steps • Find a good topic • Find a good supervisor • Use a good research method • Give lots of good talks • Write lots of good papers • Write a good thesis
How to get a PhD in information technology 1. Find a good topic
Keywords in Armenian Phylogenia of p-systems: the case k=4 Find a good topic Two extreme topics Team member Terri Independent Ira I have always thought that programming languages which use keywords in Armenian lead to more productive software engineering. Now I can use my time as a PhD student to prove it. My supervisor wrote the first p-system, and for the past 17 years has been studying the phylogenia of such systems. Three other students are studying k=1, k=2, and k=3; I will study k=4.
Independent Ira: has an idea, and wants to pursue it, even alone. Team member Terri: adds a bit to a long term project of her supervisor Find a good topic Two extreme topics • Dangerous topic • may lead nowhere • may be uncompetitive • Can be satisfying for some people • Funding unlikely • Safe topic • Can be satisfying for some people • More chance of funding
Find a good topic My advice Most people do better in a team. • Most IT theses are somewhere in the middle; other sciences tend to be more team oriented Independent Part of a team
2231-1 is a prime number 2231-1 is a prime number Find a good topic Two extreme topics Irene the introvert Eddie the extravert This problem has been bothering me for decades. I can’t rest until I know the answer. A guy in a software security company has been phoning my supervisor to ask about this “possibly prime” number, 2231-1. I’ll try to solve the problem.
Irene the introvert: self-motivated, wants to find out for her own sake. Eddie the extravert: Has a customer who wants to know, he will try to find out Find a good topic Two extreme topics There is no customer Customer oriented The customer may be an industrial partner, or a separate community of academic researchers
Find a good topic My advice Always ensure that your research has a customer Introspective Customer-oriented
The effect of the use of critical path planning in managing software projects How to manage software projects Find a good topic Two more extreme topics Narrow Nancy Broad Betty Narrow and deep: An investigation of a few variable parameters, with many parameters held fixed. Wide and shallow: Considers many parameters at once.
Assume an OO design method Java small teams 10K – 100K SLOC Investigate effect of use of critical path planning Investigate the effects of 15 different design methodologies 7 different programming languages Small – huge SLOC 17 different planning methods Find a good topic Narrow and broad Broad Betty Narrow Nancy
Find a good topic My advice Choose a narrow and deep topic, and choose your variable and fixed parameters very carefully. Narrow Wide
Robustness theorems for non-pre-emptive scheduling methods Disk cache scheduling for Gnu C++ memory management on a Pentium 4 processor running Solaris Find a good topic Another two extreme topics Andy the applicationist Fred the fundamentalist Fundamental topic: abstraction of specific hardware and software Applied topic: specific hardware, specific software
P=NP Web-enabled distributed data mining for ubiquitous computing in XML Find a good topic Another two extreme topics Popstar Paul Classical Kirsty I want to solve an problem that has defeated many others I want a lot of newspaper coverage
Classical hard problems New hot topics Find a good topic My advice Investigate a fundamental and classical topic, with some applications to a couple of hot and applied topics. Another two extreme styles There are IT theses all over this range, but there is a tendency to be near the hot end.
Find a good topic General advice on topics Investigate a classical, fundamental, deep, and narrow topic, with some (perhaps shallow) applications to a couple of hot applied topics. Obtain breadth by being a member of a team. Think of your topic in terms of your thesis . . . Extreme Extreme
Find a good topic • Thesis structure: • Fundamental principles • Case studies • Refer to case studies of other team members PhD Thesis . . . Chapter 2 Investigation of a very difficult well known classical fundamental problem . . . . . . Chapter 5: Case study 1, some hot topic Chapter 6: Case study 2, applied topic . . . Chapter 9 Conclusions: Refer to case studies by your colleagues
Find a good topic • A model of optimizing compilers • . . . • Chapter 2 Describe a new model for optimal code • Chapter 3 Algorithms for creating optimal code under this model • . . . . • Chapter 5: Case study 1: how this model applies to mobile agents • Chapter 6: Case study 2: comparison of optimal/sub-optimal code in a distributed transaction system • . . . • Chapter 9 Conclusions: further support for your hypotheses from work of your colleagues Classical fundamental problem Applications to hot and very applied topics
How to get a PhD in information technology • 2. Find a good supervisor
Find a good supervisor • The relationship between supervisor and student is very important. • It’s like a marriage that lasts for 3 – 4 years: • Commitment is important. • You must like each other. • You depend on each other: • Each needs the other for a good research career • In many cases, you don’t get a chance to choose a supervisor; • But if you have a choice . . .
Find a good supervisor • Algorithm Find_Good_Supervisor • Repeat • Locate person X • Test supervision quality of person X • Is X a good teacher? • Is X a good researcher? • Does X have enough money? • Does X have good international contacts? • Can X help you join a local team? • Until quality is sufficient
Find a good supervisor • a) X should be a good teacher • Can I understand what X is talking about? • Did I enjoy lectures by X? • Has X written any good textbooks? • Has X received any teaching awards? • Has X had many other PhD students?
Find a good supervisor • b) X should be a good researcher • Is X cited often? (From www.citeseer.com: Citeseer_count/2 > years_since_PhD ? ) • Does X publish lots of papers? ( journal_paper_count > years_since_PhD ? )
Find a good supervisor • c) X should have lots of money • Can X get you salary/scholarship? • Can X get you enough equipment/software? ($2Kpa?) • Can X get you enough travel? ($5Kpa?) • Does X supply systems/secretarial support? • Does X supply nice office space?
Find a good supervisor • d) X should have good international contacts • Does X have joint publications with other people? • Is X involved in conference organization? • Is X an editor of an international journal? • Do the former students of X have good jobs?
Find a good supervisor • e) X should be in a local research team • Does X have many students/ postdocs/ associates in the Department? • Does X regularly attend a research team meeting? • Is X a member of too many research teams?
Find a good supervisor • My advice • The three bananas may never come up together, but you should try for at least two.
How to get a PhD in information technology • 3. Use a good research method
Use a good research method • The customer has a problem. • The researcher produces an initial model of the problem. • Repeat • The researcher solves the problem, according to the model. • The researcher evaluates the solution of the model problem. • The customer evaluates the solution to the real problem. • The researcher adjusts the the model. Until the customer is satisfied. The research procedure
Use a good research method • Researchers have several roles to play • Create and adjustmodels of problems • abstract away non-essential details • use scientific theories and formalisms • Solvemodel problems • Use skills in CS/Math/sociology/psychologycommonsense .. • Form hypotheses • Evaluate solutions to model problems • Use skills in Math/Experiments/UCST • Present solutions to other researchers and to customers
Use a good research method • The customer has a problem. • The researcher produces an initial model of the problem. • Repeat • The researcher solves the problem, according to the model. • The researcher evaluates the solution of the model problem. • The customer evaluates the solution to the real problem. • The researcher adjusts the the model. Until the customer is satisfied. In practice, the research procedure takes a long time • In practice, a PhD student is usually involved in a part of the procedure, perhaps only one of: • 1. Creating/adjusting a model • 2. Finding a solution • 3. Evaluating a solution • We need to know • How to create/adjust a model? • How to find a solution? • How to evaluate a solution?
Use a good research method • Create/adjust a model 1. Creating/adjusting a model A model is formed by forgetting some of the parameters of the real problem; models are simplifications of real problems. In IT, models are usually formal and mathematical. Software Engineers are very familiar with modeling.
Researcher B B: Model of problem A • Good researchers can only consider a few parameters at a time. Researcher C C: Model of problem B . . . • In practice, PhD students may be involved at level B or C or even D … Use a good research method • In practice, many models are models of models. Researcher A Real problem A: Model of the real problem
Use a good research method • 2. Finding a solution • Solutions are artifacts that help the customer. Artifacts that make up a solution Programs Metaphors Protocols Architectures Algorithms . . . .
Use a good research method Skills that contribute to a solution • A solution is found using the skills of the researcher. • Your skill set is probably not enough to create a solution. • You need to • Remember your undergraduate work • Read books and research papers • Attend seminars and conferences • Ask your supervisor • Better research comes from a better skill base. Formal logic Compilers OO models Concurrency Algorithms Mathematics . . . .
Use a good research method • Researchers draw on a number of fundamental skills to create a solution consisting of a number of artifacts. Problem Formal logic Program Compilers Protocol Solution OO models Metaphor Concurrency Architecture Algorithms Algorithm Mathematics
Use a good research method • 3. Evaluating a solution • To evaluate a solution, you need • An evaluation measure that tells you whether the solution is good or bad • An evaluation method to compute the measure
Use a good research method • Evaluation measures • There are three basic measures for the quality of a solution: Effectiveness Measures Elegance Efficiency
Use a good research method • The three measures: • Effectiveness: is the solution logically correct? • Efficiency: does the solution use computational resources efficiently? • Elegance: is the solution beautiful, simple, and elegant? All solutions can be measured in terms of these three parameters.
Use a good research method • There are three basic evaluationmethods Mathematics Evaluation methods Experiments UCST And many combinations of these approaches
Use a good research method • The three methods: • Mathematics: theorems, proofs • Experiments • Run programs on test data • Collect data about software projects • Test systems with human subjects • Needs skills in statistics • UCST: Try to sell your solution These are the only evaluation methods in information technology.
Use a good research method • Example: the plotter problem • A pen plotter is a calligraphic device: it has a pen which moves over the paper to draw the picture.
Use a good research method • The plotter problem • A pen plotter has a pen which can be up or down. • It accepts a sequence of penUp/Down/moveTo instructions. • penUp; moveTo (20,80) • penDown; moveTo (80,80) • penUp; moveTo (20,20) • penDown; moveTo (80,20) • penUp; moveTo (20,20) • penDown; moveTo (80,20) • penUp; moveTo (20,80) • penDown; moveTo (20,20) • penUp; moveTo (80,80) • penDown; moveTo (80,20) • penUp; zero
Use a good research method • The order of the instructions has an effect on the pen-up time. • The plotter problem: • Sort the instructions into an order that minimizes pen-up time. • penUp; moveTo (20,20) • penDown; moveTo (20,80) • moveTo (80,80) • moveTo (80,20) • moveTo (20,20) • penUp; zero
Use a good research method • (20,80) • Say speed = 5cm/sec • Bad solution: • Pen-up time = 71 seconds. • Good solution: • Pen-up time = 6 seconds (80,80) (20,20) (80,20)