Showing posts with label Open University. Show all posts
Showing posts with label Open University. Show all posts

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.

13 December 2008

Open University - story so far

I can never find this:
Open university first class server address: oufcnt2.open.ac.uk This is handy:
My results so far...
(OES/OCAS)
T175 "Networked living: exploring information and communication technologies" - (89/94)
MST121 "Using Mathematics" - (94/92)
M150 "Data, computing and information" - (OCAS 95)
M253 "Team working in distributed environments" - (78/86)
M255 "Object-oriented programming with Java" - (91/96) Distinction M256 "Software development with Java" - (86/95) Distinction M257 "Putting Java to work" - (87/96) Distinction
M263 "Building blocks of software" - (82/97) Distinction M362 "Developing concurrent distributed systems" - (88/95) Distinction
M366 "Natural and Artificial Intelligence" - (93/96) Distinction

Starting early 2009: M359 "Relational databases: theory and practice" M363 "Software engineering with objects" M450 "The computing project"

20 October 2008

Open University M366 - exam post mortem

The M366 results came in and I wrote a long post about it - but it disappeared. Great.

M366 is an Open University course, level 3, 30 points (should be more!) entitled "Natural and Artificial Intelligence". I managed to get a distinction, with something like 96 in the continual assessment and 92 in the exam. It was hard work, so I'm glad the paper had no nasty surprises.

So, for peeps thinking "Should I do M366"? Well - it depends. Are you interested and doing it for fun rather than aiming for a particular qualification? If so then yeah - have a go. Are you aiming for a degree and need a high mark to get the grade you want? If so then M366 might not be the best plan, the grade breakdown for our presentation (the first presentation) was:

y1pCsc9c3qMQ0Nk-GV4-gJTc9lcRRtcUFlmcM9cBx6STg78u_rG9L8WuMPGvXsp1Hlp

- so if you need a distinction there might be easier options. M366 is a lot more work than the other L3 I've taken so far (the concurrency one). M366 is multidisciplinary - you have a bit of maths (quite light), logic, computer science, programming, history, philosophy of AI. Some people come in to the course wanting to read about themes of consciousness, and philosophy. Others come in wanting to learn algorithms to help with their programs. Two different camps, both find parts of the course unfamiliar and difficult. The dropout rate was high.

If you do take M366 then...

  • Read ahead early on, it doesn't matter if you fail to grasp 50% of it, just read it all early on to get the gist of the underlying themes.
  • Allot more time to this than you usually do. I read the units twice before tackling the TMA, and again during the TMA.
  • Don't go nuts. I did, I spent ages perfecting my TMAs, going much further than required with the coding section. We had a TMA question that asked for a heuristic for a search and I knew what they expected within a couple of minutes, but I didn't like it as a solution and spent days making a better version. It wasn't really worth the time. My heuristic was faster and found shorter solutions though - much better (their one overestimated - a cardinal sin!).
  • Code some of it in <Insert you native programming language here>. I did some C# and VB.Net programs implementing search and genetic algorithms. It improved my understanding.
  • Unit 6 is critical for the exam. There is a compulsory question. The subject matter is not maths/programming and so it needed a lot of work. Write notes on stuff like the Chinese Room. Write an essay on the notes. Condense the essay down to something much shorter. Re-Write it the next day to reinforce your understanding. Do this for all the other junk in Unit 6. It will take a few days, but you will then be able to do the exam question easily.
  • Netlogo. Many folk detested this. Some were not programmers, and so they were dunked in at the deep end. To those people, don't panic. You needn't write any code - if you can explain in words how it should work then you'll get marks. Once you work out that, you might be able to takle the coding. Some were programmers, and they hated the language. NetLogo is from a different branch of the programming language tree to most of the common programming languages - C, Java, VB, LoLCode, etc. You'll see it is a LISP-a-like. It is worth finding a tutorial on LISP and having a go at the basic syntax (or SICP if you are a glutton for punishment). I liked NetLogo. Write some simple programs - get used to lists of things and making your own data structures from lists.
  • Rote learn. Create some lists for the "compare and contrast" type questions and rote learn them...
  • Don't leave TMAs until the last minute. You can't breeze through these ones as the Units are huge and complicated. I learnt miles more doing the TMAs than I did studying the units before doing the TMAs.
  • Leave at least a fortnight of late nights for revision.
  • Don't whinge if it is too hard. Take a look at the MIT courses...

15 October 2008

Open University - M362/M256 exams over

Exams finally over. I was a doofus and thought they were the coming Friday and Monday. I ended up with 4 nights for M362 and a weekend for M256 when I realised my mistake. I've no idea why, but I had the wrong date down on a bit of paper and I referred to the bit of paper whenever I wanted to work out how much longer I could procrastinate for.

Anyway, the both went ok in the end. I'll guess a Grade 1 pass for M256, and a borderline 1/2 for M362. It would be very nice indeed for that to be a 1, as then I can relax for my 3 remaining Level 3s. Otherwise I'll need to concentrate hard on one of them to get a Grade 1 pass - you need 60 points at Grade 1 in Level 3 courses for a first.

The past paper MCQ answers for M256, (Wednesday 17th October 2007 - M256/S) we reckoned to be:

1 2 3 4 5 6 7 8 9 10
AD BD DE BE CD AE BDF CE BC BF
11 12 13 14 15 16 17 18 19 20
BE CE C BD ABF BD BE AD CE C

5 - this is dumb, you read "an abstract class may have instances" and immediately think - "no way Hosé". But, in M256 parlance, they can have instances - these being instances of their concrete subclasses. Urgh. It's in the Glossary.

M362 (2008) was deemed fair by most people taking it. Some bombed and are expecting re-sits. I did Q13, which was a bold move. The paper is available now. I reckoned I would drop 5 or 6 marks on Q12, especially as I didn't like the last part one bit (security managers / RMI). So, I took Q13 - I liked the last bit on JAAS, but now I'm not so sure. I found the terms features and resources in parts a and c confusing - too vague. I guess it will be a grade 2. Widdle.

M256 (2008) was deemed unfair by most in the forum. A few people thought it went ok, I guess others are keeping quiet, not wanting to disturb the waters. The main complaints were the sheer volume of text you get for the main questions. They are pretty bulky, but most is just reference. Then folk didn't like the things you hand to copy out into your answer booklet and complete - a huge sequence diagram and a walk-through. I don't know if some people were using a ruler for their sequence diagrams. Don't, just scrawl it out. I ran out of room for mine. If your reading this with M256 approaching, then practice drawing a huge sequence diagram out on A4 - landscape, avoiding the edges (margins you can't write in). With 2 past papers available from the OU you should be in a better position to revise. I had a problem with Q23, I think there was a method missing in the protocol - so I had to make one up - a getter for something or other. I'll check when the paper comes out. I couldn't see another way of getting the information (alternative navigation of links, or cunning use of other methods), and the walk-through seemed to indicate that the thing was available without having to go via another object.