Tagged: Master of Science
Mission accomplished
Today was graduation day for my MSc and I have to say I rather enjoyed it.
The master of Birkbeck, David Latchman, gave a very good speech I thought, emphasising the college’s commitment to its part-time students and to helping them get the funding to which they are entitled and we also got a speech by Gulam Noon – being made a fellow – who made his views very clear when he quoted the Hadith “the ink of scholars outweighs the blood of martyrs”.
The master also made the point that Birkbeck’s graduates are its greatest recruiters and that we should do our bit to encourage applications – which I am more than happy to do.
So, onwards and upwards.
Master of Science
I am very pleased to report that I have been awarded the degree of Master of Science in Computer Science – with distinction.
So, a PhD next? Maybe, need to explore the options.
I think I will post up my project report in a few days for those of you who might be interested in Linux memory management and page reclaim.
Is the time pages are in the working set stochastic?
Reading about the Monte Carlo method has set me thinking about this and how, if at all, it might be applied to page reclaim in the Linux kernel.
In my MSc report I show that my results show that working set size is not normally distributed – despite occasional claims to the contrary in computer science text books. But it is possible that a series of normal distributions are overlaid – see the graphic below:
The first question is: how do I design an experiment to verify that these are, indeed a series of normal distributions?
(I may find out how I have done in the degree in the next week or so – wish me luck)
Related articles
- A. Papoulis, Probability, Random Variables and Stochastic Processes (renormalizationgroupllc.net)
- Done and dusted (cartesianproduct.wordpress.com)
- Mathematician, Architect But Essentially Revolutionizing Music: Iannis Xenakis (mehmetokonsar.wordpress.com)
- Fast Stochastics vs Slow Stochastics (managemenresiko.wordpress.com)
- Best book on Linux kernel internals (cartesianproduct.wordpress.com)
- Data Management: Stochastic Simulation Utilization (bjconquest.com)
- Stochastic process etc. (kourelarios.wordpress.com)
- Linux Kernel Vulnerability Discovered on Ubuntu 11.10 (pitchengine.com)
Done and dusted
I submitted my MSc project report yesterday, so that is it, at least for now, as a computer science student.
The report was on “applying working set heuristics to the Linux kernel“: essentially testing to see if there were ways to overlay some elements of local page replacement to the kernel’s global page replacement policy that would speed turnaround times.
The answer to that appears to be ‘no’ – at least not in the ways I attempted, though I think there may be some ways to improve performance if some serious studies of phases of locality in programs gave us a better understanding of ways to spot the end of one phase and the beginning of another.
But, generally speaking, my work showed the global LRU policy of the kernel was pretty robust.
I find out how I did in November.
Need to find some other programming task now. Mad bit of me suggests getting engaged with GNU Hurd. Though mucking about with Android also has an appeal.
Related articles
- Linux Kernel Moves To Github (linux.slashdot.org)
- How-To Debug Linux Kernel with Xilinx FPGA (lighttomorrow.wordpress.com)
Jobs, jobs, jobs
My post on the HESA longitudinal survey of graduates made it on to slashdot and provoked a healthy discussion here.
Lots of people complaining that what universities call “computer science” is not computer science at all – not enough maths or rigour or theory in general.
That may or may not be true: I am not an undergraduate, so cannot comment. But I do know from my experience of the MSc that you can make of it what you will.
A lot of people on the course complained that the object-orientated programming and design part was in Groovy and not Java (or, heaven forfend, some .NET flavour). Unlike me they worked in IT and saw the course as a step up the career ladder – I saw it more as a mind expansion thing (though also was about proving to employers that my claim of IT skills was real). The more I read – especially when I got into Structure and Interpretation of Computer Programs – the more I could see what the lecturers were on about.
I don’t think one position was superior to the other and I certainly don’t think teaching Java instead of Groovy would have harmed anyone’s employment chances – so the argument that people teach useless task-orientated stuff and not enough science does not work for me in explaining high levels of unemployment.
Men and boys who are poorly socialised strikes me as a better explanation, but again I am not backing that with any evidence!
Related articles
- Do computer science graduates get jobs in the end? (cartesianproduct.wordpress.com)
- Computer science: the worst degree? (cartesianproduct.wordpress.com)
Coming close to the end
Suddenly, the writing phase of my MSc project feels close to the end.
It’s not over by any means – I have a whole substantial section to write on experimental results and then another stating why the two main sets of experiments had similar (negative) results. But the end is visible.
That is actually a bit scarey. Because while the writing goes on it is possible to think “I can smooth that contradiction out later” – now later is getting close to now.
Actually, the remarkable thing so far is how coherent it all feels. Ten days ago, my results in the notebook seemed to be little more than a collection of random numbers produced by equally random software patches. But that was, it is now clear, mainly panic driven – actually I seemed to have approached the experimental phase in a reasonably sensible and rational way.
It is quite reassuring to discover you are not an idiot after all!
Related articles
- Getting frantic (cartesianproduct.wordpress.com)
- Progress on the MSc project (cartesianproduct.wordpress.com)
- over-confidence KILLS (scribblesofmylife.wordpress.com)
- Applying for medicine with a MSc (newmediamedicine.com)
Nasty computer scientists
I am having a particularly bad day with the MSc project report – finding it difficult to motivate myself to write more and unconvinced the examiners will be impressed by my work – so maybe I should not dwell on this, but it is interesting, so what the hell.
Computer science, it can feel, is not taken quite seriously by other scientists – or indeed, by the world in general. Perhaps that explains the low level of graduate employment for those with computer science degrees (or perhaps the graduates explain why others do not take it quite as seriously as other scientific disciplines?). Or maybe it is to maths as engineering is to physics – insufficiently pure and for the artisan and not the gentleman?
Well, Bertrand Meyer has another possible explanation – it is because computer scientists are too rude about one another. This extract says it all:
The particular combination of incompetence and arrogance that characterizes much of what Naughton calls “bad refereeing” always stings when you are on the receiving end, although after a while it can be retrospectively funny; one day I will publish some of my own inventory, collected over the years. As a preview, here are two comments on the first paper I wrote on Eiffel, rejected in 1987 by the IEEE Transactions on Software Engineering (it was later published, thanks to a more enlightened editor, Robert Glass, in the Journal of Systems and Software, 8, 1988, pp. 199-246
). The IEEE rejection was on the basis of such review gems as:
- I think time will show that inheritance (section 1.5.3) is a terrible idea.
- Systems that do automatic garbage collection and prevent the designer from doing his own memory management are not good systems for industrial-strength software engineering.
Related articles
- Back when women were over a third of computer scientists (computinged.wordpress.com)
- Better hurricane prediction now than before (amanwithaphd.wordpress.com)
- How Scientists Are Predicting the Path of Hurricane Irene – And Why We’re Better At It Than Ever Before | 80beats (blogs.discovermagazine.com)
- Meet A ‘Change Agent’ for Smarter, Efficient Telecommunications Who Is Mentoring Future Scientists [USA Science and Engineering Festival: The Blog] (scienceblogs.com)
- Introducing Carlos Hernandez (english414fall2011.wordpress.com)
- Computer science: the worst degree? (cartesianproduct.wordpress.com)
- Birkbeck (cartesianproduct.wordpress.com)
- British IT Education (broadstuff.com)
Birkbeck
I get a lot of people coming to the site clearly considering whether it is worth their while taking up their offer of a place to do an MSc in Computer Science at Birkbeck. So, I want to say that they should, but they should think about:
- Have they got the time – for a part-timer this can mean three evenings a week of three-hour’s worth lectures: you can get away with missing some (as I had to because I was out of the country) but you will suffer as a result.
- Have they got the right mental attitude – I have to say I was a bit iffy on this in the first year (until the shock of the exams), as I thought it was all C++ (been there, done that) and a bit of ‘A’ level maths – turned out to be a bit harder than that after all!
It’s quite hard work in the end – especially the very end, with the project – your friends and relations will think that because you have passed the exams it must be a doddle from this part on, when it actually gets worse. You can think of it as passing the exams meaning you have reached the level of a graduate, you then have to complete the project to earn the Masters – so three years in two years (or one if you are full-timer) and then another year in three months!
But it’s also great, an intellectual stretch and a gateway to lots of other things.
If you do take it up, try and read up some stuff in advance – I really wish I had done that in my first year – I have a few recommendations here, but there are lots of other books to read.
Related articles
- Letters: The shame of this ‘gated intellectual community’ (guardian.co.uk)
- New antibiotics a step closer with discovery of bacterial protein structure (eurekalert.org)
Progress on the MSc project
Had a letter from Birkbeck today telling me I had passed all my exams – so the issue now is finishing the MSc project and so getting the degree (I suppose, in theory at least as I have yet to be formally awarded it, I could now claim to have reached post graduate diploma level).
Right now, on the project, I am testing small kernel patches to see if a localised page replacement policy makes any noticeable difference for systems that are, or are in danger of, thrashing (ie spending nearly all their time waiting for paging to and from disk as opposed to doing any real computing).
The first patch I tried, forcing the largest and a large (not necessarily second-largest) process to write any dirty pages to disk had no noticeable effect – having thought about it a bit more, I now realise is unlikely that file backed pages are going to be dirty in this way for many processes, so actually all this code is likely to have done little but degrade performance.
What I really need is an aggressive rifle through the biggest processes page stack, essentially accelerating the hands of the CLOCK (of the CLOCK page replacement algorithm) for this process (or, diminishing the handspread, to use a term often seen in this context) compared to those in general. So that’s next.
Related articles
- Getting frantic (cartesianproduct.wordpress.com)
- Writing more code to avoid writing any of the report? (cartesianproduct.wordpress.com)
- Making up my mind – MSc choice part III (paulvi.nl)
- Dissertation Progress (challenges30.com)
- courses (shikshadelhi.wordpress.com)
Getting frantic
I have my second, self-imposed, deadline for my MSc project looming and I haven’t written a word.
I have written lots of software and might be close to actually running the experiments I need to be able to write up. Though I have had a frantic evening trying to work out why one of the programs I had written was not working properly – and have settled on a kludge in the meantime.
The code calls fork():
int main(int argc, char* argv[])
{
FILE* outXML;
if (argc < 2)
return 0; /* must supply a file to execute */
srand(time(NULL));
pid_t forker = fork();
if (forker == 0) {
//in the child process
if (argc == 3) {
ptrace(PTRACE_TRACEME, 0, 0, 0);
execlp(argv[1], argv[2]);
} else {
ptrace(PTRACE_TRACEME, 0, 0, 0);
execvp(argv[1], NULL);
}
return 0;
}
I had had this sort of code in:
char* childargs[argc - 1];
for (i = 1; i {
len = strlen(argv[i]);
childargs[i - 1] = malloc(len);
strcpy(childargs[i - 1], argv[i]);
}
execvp(childargs[0], childargs);
But it failed to run properly – anyone know why?
Related articles
- What’s next? (cartesianproduct.wordpress.com)

