CS700 Summary

ANDREW BROAD'S CS700 SUMMARY

Week 1 Week 2 Week 3 Week 4 Week 5 Week 6 Week 7 Week 8 Week 9

Week 1 (1st October 1997)

David Brée gave an introductory seminar and made some general remarks about doing research degrees.

The MPhil Thesis

I am supposed to submit my MPhil thesis by 30th September 1998. It should be a report of preferably less than 100 pages which I should start writing around May or June 1998. The important thing is to make a plan and not necessarily stick to it, but keep adjusting it when I know I'm not. I should devise timescales and set myself deadlines (e.g. I will have written Chapter 1 by the end of May). David Brée's rule of thumb is that overall it will take a day to write and 'debug' each page of the thesis. A particular difficulty is keeping consistency. Another thing to bear in mind is that I have to get the thesis bound in time to submit.

A typical thesis will have the following chapters (although there will be slight variations, particularly in different fields such as engineering):-
1 Background
2 Introduction (why I am doing it)
3 Literature Review (shows the difference between my work and previous work, stating their advantages and disadvantages)
4 onwards: the rest of the thesis, which depends on the individual but will include a discussion of implementation and possibly some performance tests
n Conclusion and Future Work

Resources

A list follows of some of the things which research students should treat as resources (which have to be managed):

  • Supervisor(s). Increasingly through the research programme, it should be the case that the student is managing the supervisor, not vice versa!! The quality of time one spends with one's supervisor is more important than the quantity of time. Also bear in mind that the supervisor will be busy with other things! The student should use their own initiative and have their own source of ideas, and don't necessarily have to take all advice their supervisor gives them - after all, students represent the next generation of Computer Science - things like knowledge-based systems and neural networks are old hat now! It can be particularly difficult if a student has two supervisors, because often times they will give conflicting advice. The best resolution strategy is to tell one supervisor what the other supervisor said, and open a channel of communication between the two.

  • Textbook: Phillips E.M. and Pugh D.S. (1994). How To Get A PhD, Second Edition. Open University Press, Buckingham. ISBN 0-335-19214-9. This book is compulsory reading for CS700 and later in life, as almost all PhD problems are in there somewhere! (Chapter 8, "How to manage your supervisor", is particularly helpful). However, most of what you learn is in the mind rather than in books!

  • Students in higher academic years. Those who have recently completed are useful because you can see how they did it! Current research students in the second year and beyond are also a valuable resource - they can be seen at the Research Students Symposium.

  • Research Groups. One's research group is another valuable resource. Should check out what the group is doing (by perusing their pages on the World Wide Web) and ascertain how they see their research, what it is looking at and how it is changing over time - research is not static, and it's intriguing to see what's exciting now! A research group should have regular meetings and if so go to them.

  • Duty Office. The duty office will sort out any technical problems. It's even okay to look in other people's accounts and copy their .profile if it's publicly accessible!

    Bureaucracy

    As an MPhil student, I'm in the Postgraduate School. I have to convince John Gurd to let me into the Research School at the end of the year, when I upgrade my registration to PhD.

    I need to get 15 credits of modules for my MPhil, and at least 60 in total for my PhD. Level 7 modules such as CS700 and CS710 count towards this. I can also do Level 6 modules from the Advanced Computer Science MSc, modules from another department or even from another university! (such as UMIST). The GSSEM is very flexible in what you can do for credits, you can even negotiate to claim credits from a conference in which you participate.

    The main deliverable for CS700 will be an 800-word written thesis proposal accompanied by a 25-minute presentation (including 10 minutes for questions and commentary). However, the first assignment is to give a five-minute talk on what's happening in one's research group.

    Some tips on making presentations are:
    - Decide what to say!
    - Decide on one or two key points to empphasise!
    - Prepare by making notes!
    - Talk to your audience as a group of peeople!
    - Don't just put words on an overhead!

    Week 2 (8th October 1997)

    The mail alias for the CS700 congregation is, logically enough, cs710. A running agenda for the course, which will get updated throughout the semester, is at:-
    http://www.cs.man.ac.uk/rgd/David/CS700/thisyear.html

    We should check it out regularly because it will have information about when we have to give presentations!

    Computing Equipment (Aidan Loyns, Computing Service Manager. Email [email protected])

    This department has 400 Sun workstations running Solaris 2.X or SunOS 4.1.4, of which 160 are for teaching and 240 are for research. There are also 100 PCs running MS Windows or Linux. There is a 60 GB Auspex File Server.

    The departmental network consists of six switched 100 Mb FDDI rings, one in each 'corner' of the building, one for the Auspex and ancillary servers and one for connection to the campus and to the Internet (via JANET and SUPERJANET). There is a wiring cabinet in each corner of the building, containing an ethernet switch, 10 Mb UTP hubs to the desktops, and local servers. The ATM gives access to G-MING and to the Internet at 155 Mb/s - an existing campus connection will remain and provide a backup for the ATM.

    There is a Code of Practice for the department, and for the university and faculty, which we all signed when we registered. This applies in particular to usernames, accounts and passwords.

    Generally, each student has two usernames: one from the department for UNIX (e.g. broada) and one from the campus for the PCs and other services (e.g. MBAX4APB).

    Email is essential to the running of the department - even the cleaners have it! Email should be used for personal messages, not mass communication. Typing info broada tells you all information about the user broada (me!), including email aliases (the user can ask for more). There are various ways of reading email, such as mailtool, elm, emacs, pine or netscape mail. POP/IMAP servers are for PC-based email - POP is available but not IMAP. The campus username also gives you email - when you self-register on the PCs, you can configure it to forward all the email it receives to your departmental account mailbox.

    Usenet news is free directly from Manchester Computing. It should be used for mass communication, not personal messages. Again, there are several ways of reading news, such as lrn, nn, emacs or netscape news. There are several local Computer Science newsgroups, and many others besides. A danger of reading news is that you can get addicted - some people have failed their degrees because they wasted all their time reading news!

    There are a number of online library services (OPACs), including the John Rylands University Library of Manchester, which includes all books, journals and monographs held in the library. The web-based version of TALIS is recommended.

    We have unrestricted access to the World Wide Web. There is now an official server, plus a general server for student pages and projects. Student pages are randomly monitored for compliance with legal regulations! (particularly those concerning libel and racism).

    The department has several printers. There is a line printer and a number of laser printers. Usage records are kept, and some you have to pay for. Don't send a large document (such as a PhD thesis) all to the printer at once (send it a chapter at a time), or at peak times, because it is annoying in the extreme when people do that!

    The department provides dial up facilities for staff and second/third year research students attached to research groups, plus Manchester Computing provides a dial up service for the whole university.

    It is possible to restore deleted files from the dump tapes by asking systems staff, but it is better to keep your own backup and not to delete important files in the first place!

    The amount of filestore taken up by a user is monitored by their quota (typically 50 Mb). A supervisor can ask the duty office to increase their charge's quota, which may be refused on the grounds that a substantial portion of the student's filestore is being taken up by non-work-related stuff such as personal web pages with a lot of graphics.

    Manchester Computing has several public clusters, plus CIF and MIDAS for which one would need to register (by getting an application form from the MC information point, which Aidan Loyns must countersign).

    Hardware problems should be reported to the duty office (by email, by phone or in LF21), but the duty office should only be contacted in respect of other problems as a last resort - it is better to read the manuals (which reside in /usr/common/info) or to ask one's colleagues, supervisor or lab demonstrator.


    Week 3 (15th October 1997)

    The First Year of Research (Pedro Sampaio, second year research student)

  • The first big issue is how to choose a relevant research topic. A research topic must be complex (challenging) enough to justify a PhD thesis, yet concrete enough to actually become one. It must be uncharted enough to get new results (competition), yet interesting enough that other researchers would want to read it. It must be exciting enough for you and your supervisor to keep working on. It should fall between the two highly risky extremes of a topic that has been much worked on already and one that no one has done before!

    Research topics that were relevant a few years ago might be too boring or too unnecessary to make good research topics now, like who cares if you reduce an O(n^3.4) algorithm from the 1970s to O(n^3.39)? Further examples of bad research topics are to extend COBOL with primitives for concurrency, or to study features of keyboards and propose changes to vi.

    Don't try a tremendously complex idea for your PhD because you might not be able to cope! Such ideas are better saved for postdoctoral research.

    The hot research topics tend to be those that are starting to appear in conferences, or important topics that always appear in conferences but no one has done much about (e.g. optimising database queries).

    You must believe in what you're doing and go for it!

  • Another important thing is to make a research plan, i.e. a map of your PhD thesis, showing the major landmarks and bottlenecks. This helps you to get focussed on what you intend to do, it helps interaction with your supervisor, it helps you to collect an organised, relevant bibliography, and it helps you to master the two fundamental skills of a researcher: writing and speaking.

  • To conduct research in the first year, you should read up on both the technical aspects (textbooks and highly-cited papers for background knowledge) and the meta-aspects (CS700 and How To Get A PhD). Should do a critical literature review in an organised framework. Keep records of activities. Conduct pilot experiments and write them up on a word processor. You must learn how to assess your own progress.

    Experiments take a long time, so you should write up clearly and convincingly why you're doing an experiment - what question is it designed to answer? The approach is important even if you don't have results yet; you should document your methodology.

    Computer scientists don't actually do that many 'experiments' - perhaps 'studies' would be a better word.

  • An important decision you have to make is whether to submit the report you have to do by the end of the first year as an MPhil thesis or as a Transfer Report. While it's very nice to get another degree, the catch is that you are not allowed to reuse work from one degree in another! So if you want to insert work from the first year in your PhD thesis, you should do a Transfer Report to upgrade your registration from MPhil to PhD instead of graduating MPhil.

    The first year may have subproducts that don't go in your MPhil thesis, such as part of the literature review or some of the results of certain experiments. You must be able to break it into pieces and write about it.

  • It's important to take a sensible path through he project you're working on for three years. A PhD doesn't have to be a complete system, you just need to identify some important small parts and get some concrete results. You could present the design of the rest of the problem that is not yet solved - others could work on it even if you leave.


    Week 4 (22nd October 1997)

    How to win the Department's PhD prize! (Rizos Sakellariou)

    Rizos Sakellariou won the prize for best PhD thesis at the 1997 Research Students Symposium, though he took four years over his PhD! When David Brée demanded he make a guest appearance on CS700, he didn't know how to refuse!

    He put his success down to luck. There are different ways to do a PhD which are appropriate for different people.

    Rizos Sakellariou worked in the field of autoparallelising compilers under the supervision of John Gurd, and developed a tool to automatically convert a sequential program to a parallel program to run on parallel hardware (there should be potential for CBR in here somewhere!).

    In the first year, he did a lot of reading. This helped him to place his research within his field, and gave him a preliminary idea of what to do.

    He spent his second year doing "various things" which, however, did not cohere. But a PhD thesis has to be coherent. That is why he ended up doing his PhD in four years.

    He talked about a student's negative emotions during the PhD process. You have to be certain that you really want to do a PhD - research just isn't some people's cup of tea and it would be better for such people to drop out sooner rather than later, if doing so isn't going to destroy their life! Rizos Sakellariou admitted that at one point he himself was on the verge of giving up and getting a job in industry! However, you have to remember that it is normal to have some very negative thoughts during the PhD process, and try to console yourself with the fact that everyone else will be having them too!

    It helps to have a hobby so that you can spend some time each day not thinking about your research.

    If there's one thing Rizos Sakellariou said about the PhD process, it's that failure and success are very close!

    He advised us to talk to more than one person about research, because everyone shapes their own opinions about something that is unclear. Even talking to people outside the field can be beneficial, providing they have enough background to be able to grasp the basics. Explaining your work to them forces you to understand it yourself!

    You should try to integrate into the research group you're working in and, after the first year, think of yourself as an equal member.

    Rizos Sakellariou then explained, with some in depth technical details from his own research, how a research area can fit into the general hierarchy of Computer Science (e.g. his research falls into /high-performance-computing/ parallel-computing, mine falls into /AI/CBR) and how that research area can give rise to more specific research problems (such as how to detect potential parallelism or how to do good case retrieval - more generally, steps in some process). It's enough for a PhD to concentrate on one of these specific research problems, but must take into account the assumptions of the general problem.

    Don't get depressed if you feel something is irrelevant, because it could broaden your horizons and even be useful later on.

    It helps researchers to have a secret weapon (Rizos Sakellariou's was his ability to find equivalences between problems, such as the isomorphism between splitting loops equally among parallel processors and splitting a pyramid into portions of equal volume).

    Before you can get your PhD, you will have to pass an oral exam. The purpose of this is to check whether you understand what you have done, that it is your own work, and that it is a contribution to science.

    The main thing to learn from Rizos Sakellariou is that if you want to win the PhD prize, do it in four years!!!! There's a trade-off between doing well and finishing on time with something that's just good enough for a PhD. Unlike doing a BSc, there's no definite norm, though staff will put pressure to finish on time. However, for most PhD candidates it's three years, four years, or never.

    In certain ways, it's unfair that Rizos Sakellariou should have won the PhD prize. Maybe there should be a separate prize for the best PhD to finish on time!

    David Brée praised Rizos Sakellariou's presentation, saying it was an exemplar of clear detail - most presentations are either clear but not detailed, or detailed but not clear!

    Rizos Sakellariou went on to give a talk in CS710 as well!


    Week 5 (29th October 1997)

    AMULET Group Mini-Presentations

  • Chatchai Jantaraprim
  • Suck Heui Chung

    "If you're doing something useful, you're helping criminals!" (David Brée)

    Choosing a Research Topic (David Brée)

    AI tells us that when you don't know how to solve a problem, fall back on general problem solving.

    Choosing a research topic is the hardest part of doing a PhD, yet it comes right at the beginning!!

    It's not unusual to spend the first year of research thrashing around trying to find a research topic! Once you have done so, then you can start to run.

    The easiest way to choose a research topic is to ask your supervisor to give you one! The drawback is that you won't learn to choose a research topic by doing so yourself, though you can be sure that at least someone thinks it's a good research topic!

    Choosing a research topic can be thought of as a generate-and-test algorithm:
    - The tester says whether a given researrch topic is suitable for a PhD.
    - The generator finds you such a researcch topic.

    Unfortunately, there is no generator that can be presented in the general context of CS700. However, there are a few hard-and-fast criteria that form the basis of a tester:

  • A PhD must be original. Check that no-one has done it already. And remember, plagiarism is taboo!

  • A PhD must be a contribution to knowledge. It has to be of more than local interest, which rules out the application of known techniques to solve a local organisation's problem.

  • The effect of a PhD must be separable. That is to say, it must be distinguishable from other work; you must be able to separate out and measure the effect of your work on the overall result of joint efforts. Actually, how big the effect is is not as important as the fact that you do measure it!

  • A PhD must have potential for real effect. Preferably, the effect should be at least an order of magnitude (e.g. a case-based system that is ten times faster than the equivalent rule-based system). The effect could be a physical effect (in this case, time) or a financial effect (a small physical effect might have a huge financial effect, or a big physical effect might have no financial effect at all).

    It's even possible to get a PhD with a negative effect, for example you could set out to prove Chomsky wrong after he said that you can't parse language left-to-right without a stack, or to turn to chalkdust Minsky and Papert's thesis that stopped neural network research for a decade.

  • Either the problem has already been recognised as such but not solved, or a solution to the problem would have clear consequences of scientific or engineering importance.

  • Researchers in the field find it to be an acceptable topic for research.They are often willing to co-operate if you ask them "is this a good research topic?". You can find such researchers all over the world, via the Internet.

    In particular, your internal and external examiners must find your research topic acceptable! The internal examiner is usually someone in the department other than your supervisor whose research is closely related to yours; you can pick them yourself. The external examiner is someone outwith the department but within the United Kingdom who has absolute power over whether or not your PhD passes! You have no say in who is your external examiner, though you might be able to make a wild guess!

  • When you find a solution, you must be able to recognise that it is indeed a solution. Avoid vague commitments!

  • The work required can be done in the time available. Try to plan how you are going to get to your solution, with milestones along the way. You might find yourself having to work more than 80 hours a week at some stages!

  • A research topic must appeal to you intuitively. You have to believe that it's for you, because if it doesn't turn you on, you will get bored.

  • Your research topic must be just right for you. You need a secret weapon that equips you better to find a solution than any other researchers, such as foreknowledge. For example, Mendel knew all about the colour combinations of generations of sweet peas from his childhood!


    Week 6 (5th November 1997)

    Mini-Presentations

  • Akhtar Ali Muhammed: Information Management Group
  • Greg Wright: Systems Architecture Group

    Information Sources (David Brée)

    The good old John Rylands University Library of Manchester is a valuable source of information, and assorted guides to the library were distributed in CS700 today. The green general guides contain information about the library such as how to find things, borrowing books, using the photocopying facilities and inter-library loan for ordering material which is not in the library. The yellow computer guides contain information about the library's computing facilities (such as accessing their CD-ROMs and the World Wide Web, another valuable source of information).

    The third valuable source of information is BIDS (Bath Information and Data Service). BIDS includes a Science Citation Index under the ISI service. David Brée handed out user guides, told us the BIDS username and password, and made us all sign an agreement form binding us to various legal obligations concerning confidentiality, security, copyright and proper usage of BIDS.


    Week 7 (12th November 1997)

    Mini-Presentations

  • Andrew Broad: Case-Based Reasoning Group
  • Jae-Eun Shin: Informatics Process Group

    The Standard Paradigm for Research (David Brée)

    The traditional scientific method consists of the following steps, to be repeated over and over again:
    - Make a conjecture.
    - Design experiments to test the conjectture.
    - Do the experiments.
    - Analyse the results.
    - If the results fit the conjecture
    then accept the conjecture (and publish a paper);
    else reject or modify the conjecture.

    We need a conjecture generator. Inside the conjecture generator is a theory. A conjecture is more specific than a theory, it's something that is directly testable and therefore falsifiable. (Ideas for conjectures often come from reading papers.)

    At first sight, I thought what has this traditional scientific method got to do with Computer Science? It looks more like the stuff of Science as taught in high school rather than anything I have come across in Computer Science so far. But in fact, it does apply to Computer Science to if you think of doing experiments by writing and running programs to test conjectures such as "do discrimination networks give shorter retrieval times than linear search of a flat memory?". So it's really about conjectures in a synthetical sense rather than an analytical sense.

    But there's a more fundamental problem with traditional scientific method - the framework is too rigid. It's actually most unusual practice to design an experiment with no expectations about the results, otherwise how would we decide which of the myriad of possible experiments are worth doing anyway? And we often form conjectures by looking at the results and design an experiment with to test these intuitive conjectures that we have generated by eyeballing the data rather than from a theory. This approach could be called pre-theoretical science.


    Week 8 (19th November 1997)

    The First Year of a PhD and How to Survive It (Norman Paton)

    Last year, four out of sixteen first year research students were refused access into the Research School, which prevented them from going on to get PhDs. I must ensure that I'm still here in the second year because it would destroy my life if this happened to me.

    The students who failed the first year found that it was difficult to identify that things were going wrong until it was too late, due to the extremely unrigid structure of doing research degrees.

    Deadlines help you to stay on track for a PhD, and for this reason there is monitoring outwith the student-supervisor relationship. We have to have occasional meetings with an advisor, but the main role of the advisor is as the next level up from the supervisor when things go wrong.

    MSc and MPhil students belong to the Postgraduate School, which aims to provide initial training for research students, whereas students registered on the PhD programme belong to the Research School, which aims to monitor progress, ensure that there is a supportive environment and maximise the quality and visibility of research students' output, as this contributes to the department's reputation for research. The Research School is on the Web at http://www.cs.man.ac.uk/researchs.

    By the end of the first year, I should be ready to enter the Research School, which means that I should be in a position to contribute to the research of the department (such that it will lead to publications), know what I want to research into and why it is worthwhile, know my area and be clear where my work fits in and what is distinctive about it, and I should have a clear and feasible plan.

    Getting an article published in a journal or conference proceedings is a good way to impress them that I am good enough to enter the Research School!

    There are two main deliverables for the first year of research:

  • A 1000-word report documenting the first year, summarising my achievements and my plans for the second year and beyond. This is used for the powers that be (John Gurd et al) to assess whether I deserve to enter the Research School.

  • An MPhil thesis or Transfer Report which describes other work related to my research, describe in detail the work done for my MPhil and clearly state the current (MPhil) contribution and the expected contribution for the future.

    If I submit it for an MPhil then I can't use the results in my PhD - I would have to select a new topic for my PhD (which can be in the same broad area). A Transfer Report is a document that looks like an MPhil thesis, but since it's not a degree, it can contribute directly to the PhD.

    The second year of research tends to be where the main part of work for the PhD gets done, while the final year is used for evaluation and refinement and to write up the PhD thesis.

    In Norman Paton's first year of research, he was in the unusual position of being a research assistant, which meant that he didn't get to invent his own research topic, but was given one.

    When a supervisor gives a student a topic, it's likely that the end of the road is not known.

    In the first year, Norman Paton's research was to extend two existing systems (Perlog and EFDM) and combine them into a new system (P/FDM). He applied this system to protein structures, an application that had requirements that P/FDM must meet. He built a complete working system and contributed to two papers, one on the P/FDM system and one on the protein structures application, both co-written with his supervisor.
    However, this wasn't a PhD result - it was just two plausible things (one logicky, one objecty) vaguely glommed together. It also had problems (it was too slow, the meta data was messy and the interface was too low-level), but that wasn't necessarily a bad thing because it pointed the way forward, which is what you must be able to see at the end of the first year!

    A major mistake Norman Paton made in the first year was not to write a literature review, which meant that he had to read all his references again when the time came to write his PhD thesis, a major tedium which could have been avoided. It's best to be systematic and to write up the literature review as you go along. The process of writing a literature review can help you to identify your specific research topic (see what has and hasn't been done before) and, if you do the literature review well, you could even get it published!

    Norman Paton had lots of rows with his supervisor, but this was not so bad as supervisors don't want students to be nodding dogs! It's dangerous to argue too much at the start because you could lose a big idea, but increasingly throughout the PhD process, it is important for students to have their own opinions and to be able to tell good ideas from bad ones.

    Norman Paton did not know the structure of his PhD thesis by the end of the first year.

    Having recounted his own war stories, Norman Paton then gave us some very useful, general hints on research:

  • Make sure you're doing something which builds on your strengths (not necessarily your supervisor's strengths, e.g. the supervisor might be very practical whereas you are very theoretical or vice versa). Your research should also build on the strengths and past results of your research group.

  • Don't set out to start a revolution because it's too difficult and messy for a PhD! A radical departure requires considerable experience, competence and judgement, and if you try to do it as a PhD student, you could show yourself up badly and end up with a bloody mess on the floor!

  • Don't reinvent the wheel.

  • Don't repeat mistakes (read the literature to see what to avoid!)

  • Find a real application.

  • Above all, bear in mind that research evolves. Don't think that you and your supervisor should know all the answers at the beginning, but try to go forward, in the right general direction, in the hope that something interesting will emerge (which is often the case). Don't expect to solve the whole problem in the first year, just a smallish chunk of it - doing something tells you what to do next. Don't try to think through a big problem until you know the whole solution, or all you'll drown in the size of the problem, accomplish nothing except a realisation that the problem is big, and you will fail. If you want big ideas to fall out of the sky, try things out - build little prototypes first!


    Week 9 (26th November 1997)

    AI Group Mini-Presentations

  • Hye-Sook Kim
  • Freddy Choi

    What's in a Research Plan? (David Brée)

    Whereas the choice of a research topic tells you what to do, a research plan tells you how to do it.

    Remember the scientific method framework:
    - Make an hypothesis.
    - Design experiments to test the hypotheesis.
    - Do the experiments.
    - Analyse the results.
    - If the results fit the hypothesis
    then accept the hypothesis;
    else reject or modify the hypothesis.

    You should look where your research is on the Science v Engineering continuum - a lot of things in Computer Science are more on the engineering side rather than pure theory.

    There are two ways to test an hypothesis: theoretical analysis and empirical analysis. Scientific engineering is where you test a theory by building something.

    For example, in Machine Learning, there are three algorithms called ID3, AQ15 and PSP. They work in the lab, but the research issue is "why are the methods not applied?"

    The hypothesis is that it's because they don't scale up. They have a worst case complexity of O(n^3). What we need to find out is whether this worst case tends to occur in practice.

    So we design an experiment to test scalability, by testing on sets of various sizes. The test sets should be taken from a real problem (in the public domain if possible), and in fact most domains have a standard problem. For Machine Learning, it's the Iris data set, or alternatively letter recognition. So we take a random sample of each size that we want to test, run each algorithm on that test set, and plot graphs of the times taken by each algorithm.

    In this example, it is important for enough time to be allocated in the research plan for analysing the results and interpreting them and, in particular, for plotting. For example, we probably want to plot log time (t) along the ordinate against the sample size (n) increasing in powers of two along the abscissa, and remember to plot the variation as well as the mean!

    From the hypothesis that the algorithms are O(n^3), we would expect curves of the form t = k.n^3, therefore ln t = 3 ln n + c, i.e. we would expect the graphs plotted on the log-linear scale to have a slope of 3 if the hypothesis that the algorithms are O(n^3) in practice holds up.

    However, we find that the algorithms turn out to be O(n log n) in practice, which disproves the hypothesis.

    The main lesson in this is to find out where you are on the Science v Engineering continuum, and remember that whatever you do there's a theoretical side and an empirical side!


    Back to CS700
    Hosted by www.Geocities.ws

    1