22 December 2008

M450 Project

Well, I've signed up for my final 3 open university courses for the B29 degree. M450 (project), M359 (database), M363 (mishmash - seems to be mainly about requirements gathering, planning and design). And I'm straight in at the deep end, as there are only a few days left to come up with an M450 project idea.

The M450 bumph says we should spend about 300 hours on the course. The project must have some challenges - challenges that require looking at some papers! The 300 hours includes the time to answer the TMAs and do the research. So - nothing too complicated, and nothing too simple. It's hard to get something "just right". It also seems to be hinting that it is useful to have a client, or imaginary-client, so that we can assess the stages of development.

I had kept notes of interesting ideas whilst doing the AI course. I was interested in the idea of using a neural network to do colour quantisation - reduce the amount of colour information in a picture. But, I've discovered that is old-hat and it is even part of the java library. Groan.

Then I thought about doing a genetic algorithm to control some arcade game - snake and lunar lander were ideas as they are self-contained and simple games. But they have both been done. I kinda hoped to do a solver for the Times Killer Sudoku (soduku itself has been done to death), but there are now several solvers for that out there too. That would have been interesting - to compare all the different search and rules techniques. Then I thought about maybe rotating photos round the correct way using a neural network to detect the correct orientation. I figured that it wouldn't work for any old photo, so I would narrow it down to portraits or pictures of houses. For portraits, hopefully it would get the general idea that the blob of face colour should be somewhere in the top middle. For houses I thought of the scenario of an estate agent wanting to automatically rotate the images as they come in from the camera. (Why don't cameras have a built in spirit level and tag the images with the orientation? Patent the idea quick!!). The nn would be able to detect the block of sky. But - nope, that's been done to death too. I'm thinking that maybe finding any application for AI is a bit tricky.

So, that leaves the other choice - M362. There we could have some threading thing or go for a distributed application. I wrote a program to track patients psa blood test results. The idea is that the clinic is clogged up with gentlemen who come in, see the doctor, who glances at the blood results (which are taken to ensure that cancer has not recurred, if it has then the levels will be high), (s)he sees they are normal, has a bit of a chat about the weather and waves goodbye to the patient. This is a waste of time, "clinics cost money", and there are - of course - waiting lists to consider. The consultant needs to see the blood test, but not the patient. So, enter the program, it tracks the blood results and creates documents for the GP - to tell them the patient has entered remote follow up, to request that blood be taken, and to recall patients to clinic to be seen by the consultant. I wrote the standalone program a few years ago, and it was nominated for the HSJ awards this year (black tie dinner on Park Lane, don't'cha'know). We didn't win, I think we were short-listed to encourage other small projects that have a big effect (the program has saved the NHS at least £100,000), most of the other projects were on a bigger scale.

So, my proposal would be to investigate the use of JavaEE for the program. The hospital is interested in getting the program on the network, so I think that it would be a good opportunity to evaluate JavaEE. As the program itself is quite large, I would write a simplified version for the OU project - I would be creating a prototype n-tier version of the program. I would create a database, simplified logic, and concentrate on the web and client tier. None of the original program would be used, as it is in the wrong language, and old. But is this enough? What's the challenge? Which papers etc would I reference and work through? <sigh> Is creating a database application enough of a "challenge". Getting a program right is hard work, and I'll have to learn lots of new stuff - but I'll be investigating well-trodden paths and following well written instructions -- so is that good enough?

I've found an old board game that has little written about it on the web. I could only find 1 AI implementation for it, and that's a mac program - alien to me. Maybe I'll just do that. It might be more interesting. Research would be needed - all the papers on making AIs for chess, checkers, etc would be helpful. Writing the game itself would be half the challenge. There would be plenty of stuff to do and to talk about.

Time is running out, and Xmas is eating in to all my spare time.

No comments:

Post a Comment