Eigenvalues and Eigenvectors

Yeah, exactly. Eigen-whats?

Welcome to the primer material for the Machine Learning module. It  looks pretty mathsy, specifically Linear Algebra (think matrix algebra and Eigen-dooflabs), Differentiation and Integration and some probability and information theory.

Yeah, it looks tough. But I’m intrigued, too. Studying the material, I can’t wait to find out how these things actually apply to machine learning. Something inside my head that romantically pursues elegance in this stuff is thinking of some analogy of resonance and harmonics – but applied to learning algorithms. Probably way off base, but hey. Soon I will be highly learned in these things.

The tutors actually have a dedicated website for the course here, which is where all the primer material, previous years’ notes and past exam papers can be found. It looks like a great resource for prospective sudents like myself, so hats off to the tutors on this one.

Getting ready for 2009-10

According to Manchester’s online timetables, my MSc course starts again in the week commencing 28 September.

This year, I’m much better organised. There’s no messing about with my University application, I know where the online resources are, I’ve done the journey a dozen times now and I have a much better idea of what I’m up against.

I’m hoping to be heading over to Manchester on the 23rd and 24th September to attend the last couple of days of Induction Week. This is when the lecturers running the MSc courses present on their courses and when I need to decide what I’m going to study this year.

Right now, I’m looking seriously at:

Machine Learning

Patterns for e-Business Applications

Building Web Applications

I’m looking forward to getting started and this time round I’ve been saving up my holidays at work so that I can take a couple of weeks off whilst I get into Induction Week and the first module of the year.

I’ll show my age and quote Whitesnake – “Here I go again”

Using Dropbox for Syncing Computers

I tried Dropbox when I was doing my first MSc module.

As the course involved writing code and documents, I would work during the day when I was onsite on my laptop, then switch to my desktop to continue working for the week.

Naturally, I would forget to copy something to my laptop ready for the following week, so I tried Google Docs and blogged about it here. Pretty good – just a little clunky and not quite up to the job with the maths symbolic stuff I needed to use.

In a comment to that post, Luke Maciak suggested Dropbox. (Incidentally, I can recommend his blog for entertaining reading too)

Using it, I get an online repository where I can put files, and I can download client software for my (Windows when I was running Windows) and Linux machines.

The client software gives me a ‘Dropbox’ folder. Placing any files in there synchronizes them with the online repository. Any files I’ve added or updated on other machines are synchronized down from the repository, and I can get to and share my files via the Dropbox website as well.

The main difference for me is that Dropbox is completely transparent. It’s just files in that folder. No messing.

So far*, it just works – in fact, I’ve started using to to share some of my Ubuntu desktop configuration. Everything behaves exactly as I expect it to, and there’s been no nasty surprises, so I’d tentatively recommend it if you have multiple computers that you want to keep files in sync across.

You get the first 2GB of space free. If you’re interested in giving it a go, you can get Dropbox here.

*of course, tomorrow it will probably break. That’s computers for you. I’d suggest taking your own, separate backups of that ol’ Dropbox folder now and again, just in case.

One Down

Yep, I passed my first MSc module, fairly comfortably as it turns out. The results were posted up to an adminstrative system based on Peoplesoft when they were ratified. I’m pretty chuffed to have passed, to be honest.

The information and adminstrative facilities Manchester makes available online are great for me, being a little too far away to actually head along to thing when I feel like it. I’m also very lazy, so having to phone up tends to put me off too. I’ll go into some more about what’s available to help you avoid actual human contact in a later post as I think as it’s pretty relevant if you’re considering doing this kind of study.

So what now? Well, I’ve completed the certification I mentioned in my last post, which is one of the reasons I’ve not posted in a few weeks. That had pros and cons as as I expect you get with any professional certification, but overall I thought it was a very positive experience.

I note that in the weeks running up to my MSc exam and then to my certification, the sun was blazing and everyone else seemed to having a right old time. Within 60 minutes of my return home after my last exam, the rain was pelting down and it’s just been kinda nasty since. If only I could de-rationalise a little so that I could hold a divine entity of some description responsible, I’d feel much better about it.

In what’s left of the summer, I’m reading “Artificial Intelligence – A Modern Approach”, by Russell and Norvig, because I’m still considering trying to get some AI modules under my belt, and because it’s an interesting subject anyway. I’m also reading “Head First Design Patterns” by Freeman, Freeman, Bates and Sierra, because I want to know more about this approach to software design than I do.

If I have time, then continuing my dabbling with enterprise and semantic technologies will likely be the order of the day – and I might get round to updating this WP installation and blogging on a slightly more frequent basis.

Cheers!

Waiting for results…

My grades for the Semi Structured Data… module will hopefully be out next week. I’m fairly confident, as my coursework marks were safely in the pass territory, so it’s not bothering me too much. If I wasn’t confident, I’d probably be a nervous wreck by now.

I have an exam voucher for the Sun Certified Web Component Developer (with free retake!) which expires at the end of July, so I’ve picked up studying for that again. I was studying for it before the MSc year started in 2008, so I hope I’ve just got time to pick it up and pass before the voucher expires.

Once (I’ve passed | the voucher has expired)* I’ll be making my choices for next year’s MSc modules, and then working hard to prepare. If you’re interested in seeing the kind of things that are on offer, the module options get posted on the Manchester CS Website.

Right. Now I have Chapter 13 of Head First Servlets and JSP – Filters and Wrappers to review.

(By the way – if you happen to be a servlets and JSP programmer but you haven’t done any formal training, I can thoroughly recommend that book whether you want to do the cert or not – the servlet specification provides loads of useful facilities that you can completely miss out on if you haven’t had the guided tour. It’s co-authored by Kathy Sierra, so you know it’s going to be a great tutorial resource. I’m getting through quite a few books of late, I might blog up my thoughts on them now and again.)

* delete as appropriate

15 120ths of an MSc – Hopefully…

That’s it, first module all done.

Unless I failed the exam, of course, in which case I will be very sheepishly blogging to that effect and about my resit sometime over summer!

The weather in the UK has been absolutely gorgeous this last week whilst I’ve been trying to revise, giving me plenty of excuses to take breaks and get out of the house. Not to mention sitting in the garden soaking up the sunshine with my laptop. It’s easy to forget how convenient my home wireless network is, for me the technology has gone from science fiction to taken for granted in no time.

The exam was two hours, on a computer-based system called abc, which I think has been developed by the University of Manchester. It’s pretty good to use, automatically saving your responses to text-area based and multiple choice questions. You can hop backwards and forwards, with a timer on screen letting you know how long you have left.

Now, it’s time to start thinking about what happens next year… liking the look of Grid Computing, Ontologies, Machine Learning. Which means lots of reading and studying over summer!

The Home Straight

…well the first home straight, anyway. I’ve been revising a few hours a week for the past month or so but now it’s a week to go until my first module exam and it’s time to kick it up a gear.

I’m told that the syllabus has changed this year, and that this is the first exam on a computer-based exam system… hmmmm. Multiple choice too. I know multiple choice is generally perceived as being an easy option, but I’ve found it can be a curse. You can’t get any marks for ‘the working’, and certainly with the kind of precise syntax and semantics that pervade IT and Computer Science subjects there’s plenty of scope for misleading and confusing options as answers.

I’m finding the revision exercise quite interesting – there were exercises, subtleties and corner-cases I pretty much missed during the course, probably because it was a frenzy of work to get the coursework and assessments done on time. Yesterday, it was the Element Declarations Consistent and Unique Particle Attribution constraints in W3C XML Schema. Tricky to visualise!

As far as the coursework goes, got most of the marks back now, just waiting on the last three or four. Pretty chuffed with the grades so far, sure shouldn’t do me any harm!

Anyway, booked a few days off work to revise before the exam on the 2nd…

Semi-Structured Data and the Web – Day 5.5

Two weeks later, on deadline day…

I think I defeated the XQuery assignment. It took the best part of a week, guessing at around 18 hours,  but my 485 lines of code handle everything I can think of that was within the spec of the assignment. It was loads of fun handling transformations from various combinations of sequences, choices, star-expressions, minOccurs and maxOccurs in an element to a XML description of regular expressions, as well as implementing a combinations generator and a function to filter out unique elements in a sequence of elements.

I’m sure all that stuff with a functional lean is pretty old hat to someone who’s a Python, Erlang, F# or Haskell guru, but for little ol’ me with my OO background, it was pretty painful to swap my thinking over to immutable variables (which I’m sure is a contradiction in terms!), a complete inability to track state and just plain indulgence in recursion.

In short, it was brilliant. Exactly what I’m here for, to get out of my ‘comfort zone’ and learn new ways of thinking. Continue reading “Semi-Structured Data and the Web – Day 5.5”

Semi-Structured Data and the Web – Day 5

It’s been an enlightening week on the homework front.

Having had some experience with XML before, I know how easy it is to mess up writing XML, particularly if you’re doing it by hand. Nesting wrong here, a tag misspelled there… although XML is, technically speaking, ‘human readable’, it’s not exactly human-friendly. It’s extremely precise, tends to be very verbose, and has newlines, tabs and other whitespace mixed in which tickles the ol’ natural human intuition about structure but is structurally meaningless to the machine. (Google ‘xml human readable’ for loads of articles on the subject.) Continue reading “Semi-Structured Data and the Web – Day 5”

Semi-Structured Data and the Web – Day 4

Homework this work was rather tricky – transforming XMLSchema into a tree grammar representation using XQuery. Sounds simple enough, but I now feel a certain revulsion, maybe even extending as far as hatred, towards XQuery. To be honest, I think it’s got a lot to do with the fact that XQuery is a functional language, and I’m new to the whole functional thing. It feels a little like programming by explosion… Towards the deadline, I think I was starting to get the hang of it. You just have to think a little… differently. Unfortunately, it took too long for me to figure this out and get the homework assignment done, so we had to hand in a partially complete assignment. Not liking that much.

On the menu today: More tree grammar stuff, including algorithms to validate an instance document against a grammar, Schematron (a rule-based document validation language)  and XSugar – all of which have more homework assignments set. No time for more blogging, too much work to do!