General Queries

Back to full contents

Should I do this or should I do that?

Q. Over the years the Helpline has received a number of emails of the general nature:

I am unsure how to interpret the question XX: does it mean AAA or does it mean BBB?

I am confused at to what is expected for question XX: it seems to suggest that we are expected to AAA whilst at the same time indicating that it expects BBB. Which does it want?

Does question XX require AAA or BBB?

A. The terms `require', `expected' etc. are terms that are too strong in that context. Please see section 1.1 of the introduction to the project manual: you are expected to use your judgement, in the light of your understanding of the question and any discoveries you may have made, on the best way to respond to explain your findings. In making this judgement it will often help to read beyond the particular question that you are attempting: later questions may help to clarify the context.

If you really cannot decide between two, or more, approaches which is the more relevant, appropriate or enlightening then why not do both and compare the results. That may gain you some quality credit.

Write-ups for Mathematica

Q. Is it necessary to write a single program in Mathematica or is an interactive session OK?

A. An interactive session is fine.

Please also see the News item of 17th April 2004.

Acknowledgements

Q. How do we credit our sources (are we allowed to use books or websites which describe, for example, search algorithms)?

A. Yes, you are allowed to use such books — indeed, reading any reference works is encouraged — though you should not simply copy huge programs verbatim straight out of a book or website; instead, you can look up an algorithm and write your own program based on that algorithm.

To credit your sources, simply include a sentence in your write-up describing the books or websites that you used.

Q. What about books on the programming language that we have used? I am using Python rather than MATLAB and have been teaching myself. Do I have to acknowledge those?

A. You can use any such books you like to learn the language, and there is no need to acknowledge these.

"Program" versus "routine"

Q. Is there a difference between being asked to write a program and a routine?

A. There is no practical difference. A "routine" means a procedure or function. In general, if you're asked to "write a program" then you will have to do so from scratch; whereas if you're asked to "write a routine" then you will often just have to write a new procedure or function which can be slotted into an already-existing program. If I were you I'd ignore this and always read "routine" as "program".

Comments from books

Q. In general for the graphs produced should I try to find comments in books on them or make my own basic comments just on what I can see for myself?

A. You should make your own basic comments, and try to interpret them both mathematically and physically — i.e., if some quantity Z increases as a function of &lambda, then there's bound to be a physical reason why it would do.

If you find appropriate comments in books then that's great, but there is no particular need to do so. The projects are self-contained.

Special cases

Q. When asked to write a program, to what extent should one avoid tailoring one's program to the input that is provided (e.g., not worrying about matrices with a zero entry because the matrices in the project do not have zero entries)?

A. It doesn't matter if a program doesn't deal with pathological cases. For example, if a program is supposed to calculate the inverse of a matrix but falls over when presented with a near-singular case because the numbers overflow in the computer, that doesn't matter. But a program should definitely work with "normal" data; any special cases for which it wouldn't work should be highlighted in the write-up. It isn't sufficient for it to work only for the specific data in the project.

Flowcharts

Q. In the write up do you need a description/flowchart of every program written? In the write up do you want to see all the workings before the final answer is stated? Or is it sufficient if only a selected few steps are given?

A. The introduction in the projects booklet gives clear guidlines on what is required for the project write-ups. Part of the exercise is to determine the format of a formal report. It may help to think about the report as a project for a company, and imagine that you are passing on what you have found to your manager or the client.

"Self-contained" projects

Q. For projects which are described as "self-contained", does it mean that no outside knowledge is required and that all the information is given in the project itself, or must extra research be done? I have found that I need to learn more things than those stated.

A. Reading around the subject will be beneficial even when specific courses are stated as being relevant to the project. Specification as "self-contained" means that there is not a particular course that would be relevant and which it will be assumed you have attended.

Programs in VB on Excel

Q. I've written my programs with VB macros in Excel, and most of the interface is on seperate userforms. Do I need to include a guide as to how to use the program? Some of the input mechanisms aren't really self-explanatory, and there are quite a lot of superfulous outputs and commands.

A. You should include with your write-up and with the files which you submit electronically a README containing instructions to allow us to run the code should an examiner want to verify results.

Drawing graphs in Excel

Q. Is it acceptable for the graphs to be produced by constructing the program to write the data to a text file? This is then manually imported into MS Excel, and its graph-drawing capabilities employed.

A. Yes, that's fine.

Q. Does the exported data need to be included in the write-up if it is not specifically asked for?

A. No, it doesn't.

Reading data

Q. If I adjust a data file by opening it using, say, Word, should I then submit the adjusted file together with my program files electronically?

A. If we supply you with a data file, we can be assumed to know what's in it. Conversely, we will expect your program to have read it correctly and don't need to know how the data got from our website to your program.

"Random" and pseudorandom numbers

Q. Can pseudorandom numbers, those "random" numbers produced by computer code, be treated as random for these projects?

A. You may assume that the pseudorandom numbers generated by a library routine have passed all appropriate statistical tests and thus are as good as random numbers for all practical purposes.

Program structure

Q. Is it acceptable to have different programs for different parts of the project though they do similar things?

A. Yes, you decide the program structure for the projects. Different questions can use stripped down versions of more complicated programs from previous questions.

My programs take too long

Q. My programs take too long. For example, my graph colouring program works for G(XX,p), taking about 15 minutes, but it can't cope with G(YY,p). Similarly, in a Combinatorics project, my program has a noticable pause when working out the largest d for r=100, for any n: am I using values that are too large or do I need to find a more efficient method to calculate d?

A. For these and similar questions, each person's program will hit a brick wall when the time needed suddenly becomes essentially infinite. Where no explicit guidance is given, this is to give you a chance to think about what's going on and use your judgement to select appropriate parameters.

The "wall" will vary between programs. So the sensible thing to do is to gather as much useful data as you can with your program in the time available (say 1 hour runtime). If that seems inadequate to answer the question you may have to try to improve your program.

CATAM Helpline