<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>crossedstreams.com &#187; Computer Science</title>
	<atom:link href="http://blog.crossedstreams.com/category/computer-science/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.crossedstreams.com</link>
	<description>Total protonic reversal!</description>
	<lastBuildDate>Fri, 13 Aug 2010 23:34:13 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>No Building Web Applications</title>
		<link>http://blog.crossedstreams.com/development/no-building-web-applications/</link>
		<comments>http://blog.crossedstreams.com/development/no-building-web-applications/#comments</comments>
		<pubDate>Sun, 28 Mar 2010 21:28:18 +0000</pubDate>
		<dc:creator>Paul Brabban</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[MSc]]></category>

		<guid isPermaLink="false">http://blog.crossedstreams.com/?p=680</guid>
		<description><![CDATA[I tried the first couple of weeks of the Building Web Applications, but I won&#8217;t be continuing with the module.
I was hoping that there&#8217;d be some deep insight into the pros and cons of the Java web applications and the JSF framework and RESTful Web Services, but it was pretty clear that we weren&#8217;t going [...]]]></description>
			<content:encoded><![CDATA[<p>I tried the first couple of weeks of the <a href="http://www.cs.manchester.ac.uk/postgraduate/taught/programmes/acs/syllabus.php?code=COMP60432&amp;year=2010">Building Web Applications</a>, but I won&#8217;t be continuing with the module.</p>
<p>I was hoping that there&#8217;d be some deep insight into the pros and cons of the Java web applications and the <a href="http://en.wikipedia.org/wiki/JavaServer_Faces">JSF</a> framework and <a href="http://www.xfront.com/REST-Web-Services.html">RESTful Web Services</a>, but it was pretty clear that we weren&#8217;t going to cover enough ground to make the course worthwhile. There&#8217;s also some pretty idiosyncratic approaches to writing Java code going on too, so it was all a bit strange.</p>
<p>I could have carried on through the module as it should have been easy to get a good grade but then I&#8217;m doing the course for the challenge and opportunities to learn more than for the letters after my name. It&#8217;d be a shame to lose out on learning something else.</p>
<p>The software engineering modules have been a little disappointing, to be honest &#8211; where I found the Computer Science modules assumed a challenging knowledge of maths and computing, the software engineering modules seem to assume little or no prior knowledge. Maybe that&#8217;s just my perception, having been working on-and-off in software development for the past 4-5 years.</p>
<p>On the bright side, I did get a lead on what looks like an excellent book to get stuck into JSF 1.2 in <a href="http://horstmann.com/corejsf/">Core JavaServer Faces by Geary and Horstmann</a>.</p>
<p>That means that I just need to revise the Patterns for e-Business course foe this set of exams. In Autumn I&#8217;ll continue with Computer Science modules and it&#8217;ll be once more unto the breach with the whole logic thing, so I&#8217;ve pulled a couple of books out of the library to get started with that again.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.crossedstreams.com/development/no-building-web-applications/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Manchester University&#8217;s CS Legacy</title>
		<link>http://blog.crossedstreams.com/computer-science/manchester-universitys-cs-legacy/</link>
		<comments>http://blog.crossedstreams.com/computer-science/manchester-universitys-cs-legacy/#comments</comments>
		<pubDate>Mon, 01 Mar 2010 22:32:39 +0000</pubDate>
		<dc:creator>Paul Brabban</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[history]]></category>
		<category><![CDATA[manchester]]></category>

		<guid isPermaLink="false">http://blog.crossedstreams.com/?p=597</guid>
		<description><![CDATA[When I chose Manchester University for my Computer Science MSc, it was partially because of its reputation but I realized I didn&#8217;t actually know anything specific about that legacy.
I thought I&#8217;d find out a little more about some of the computing cornerstones that were laid in Manchester&#8217;s labs. Did you know that the first Random [...]]]></description>
			<content:encoded><![CDATA[<p>When I chose Manchester University for my Computer Science MSc, it was partially because of its reputation but I realized I didn&#8217;t actually know anything specific about that legacy.</p>
<p>I thought I&#8217;d find out a little more about some of the computing cornerstones that were laid in Manchester&#8217;s labs. Did you know that the first Random Access Memory was created there? Fast, random access memory is a core part of computer systems today. Having enough of it is crucial to making your laptop or desktop run all those applications quickly for you.</p>
<p><strong>The Williams (or Williams-Kilburn) Tube</strong> was the first random access memory that could access at speeds suitable for a computer. It was the ancestor of the multi-gigabyte cards you&#8217;ll find in your computer today.</p>
<p>Back in the days before TVs were two inches thick, the moving pictures on the screen were drawn by magnetic fields and streams of electrons in a glass tube called a Cathode Ray Tube, or CRT. Did you ever hold your hand near the screen of a CRT television and feel the static tingle? Somewhere around 1946, Tom Kilburn and Freddie Williams at Manchester University used the charge on a CRT&#8217;s phosphorescent coating to store ones and zeroes (effectively as dots), where they could be detected by a &#8216;pickup plate&#8217; which lay over the &#8217;screen&#8217;.</p>
<p>As the electron beam hit the screen, a positive charge would be left behind at that position. Not for long mind you, as the charge would dissipate, but the information read by the pickup plate was used to refresh the tube before the charge had chance to leak away. This refreshing process is still required by the RAM chips in your computer today.</p>
<p>If you&#8217;re interested in knowing more, you can read all about it on <a href="http://en.wikipedia.org/wiki/Williams_tube">Wikipedia</a> and <a href="http://www.computer50.org/kgill/williams/williams.html">computer50.org</a>, the sources I used to get this information.</p>
<p>To test the Williams Tube, the folks at Manchester built the first stored-program computer, a pretty important milestone in its own right. Maybe more on that some other time.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.crossedstreams.com/computer-science/manchester-universitys-cs-legacy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pattern-Based Software Dev – Day 4</title>
		<link>http://blog.crossedstreams.com/msc/pattern-based-software-dev-%e2%80%93-day-4/</link>
		<comments>http://blog.crossedstreams.com/msc/pattern-based-software-dev-%e2%80%93-day-4/#comments</comments>
		<pubDate>Sun, 28 Feb 2010 22:05:35 +0000</pubDate>
		<dc:creator>Paul Brabban</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[MSc]]></category>

		<guid isPermaLink="false">http://blog.crossedstreams.com/?p=610</guid>
		<description><![CDATA[The material for day 4 focussed on Business Process Modelling. This sits orthogonally to Patterns for e-Business, defining business functions over their architecture.
There are two notations for Business Processes put forward &#8211; BPMN and UML Use Case/Activity Diagrams. My part of the coursework assignment is to apply BPM to the johnlewis.com some processes on the [...]]]></description>
			<content:encoded><![CDATA[<p>The material for day 4 focussed on Business Process Modelling. This sits orthogonally to Patterns for e-Business, defining business functions over their architecture.</p>
<p>There are two notations for Business Processes put forward &#8211; <a href="http://www.bpmn.org">BPMN</a> and UML <a href="http://www.agilemodeling.com/artifacts/useCaseDiagram.htm">Use Case</a>/<a href="http://www.agilemodeling.com/artifacts/activityDiagram.htm">Activity Diagrams</a>. My part of the coursework assignment is to apply BPM to the johnlewis.com some processes on the website, for which I&#8217;ve chosen Activity Diagrams and <a href="http://www.visual-paradigm.com/product/vpuml/">Visual Paradigm for UML</a>. I did take a look at the implementations of BPMN, but I found a familiar pattern &#8211; they either didn&#8217;t work or cost $$$. Fortunately, VP is still serving me well.</p>
<p>The lab session was spent working with my team on the coursework and setting up tasks for the rest of week. As we&#8217;re producing a large report and taking different sections, we&#8217;ve set up a Google Docs site to drop working drafts onto to help us collaborate. It&#8217;s the first time I&#8217;ve used Google Docs like this and so far I like it, it&#8217;s responsive, intuitive and it&#8217;s easy to share a folder with a group of people, so for this kind of work it&#8217;s looking good.</p>
<p>In other news, the marks for the Machine Learning module are in and I&#8217;m very happy to have passed! That&#8217;s two modules, or one-quarter of my MSc done.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.crossedstreams.com/msc/pattern-based-software-dev-%e2%80%93-day-4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pattern-Based Software Dev &#8211; Day 3</title>
		<link>http://blog.crossedstreams.com/msc/pattern-based-software-dev-day-3/</link>
		<comments>http://blog.crossedstreams.com/msc/pattern-based-software-dev-day-3/#comments</comments>
		<pubDate>Tue, 16 Feb 2010 23:40:33 +0000</pubDate>
		<dc:creator>Paul Brabban</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[MSc]]></category>

		<guid isPermaLink="false">http://blog.crossedstreams.com/?p=566</guid>
		<description><![CDATA[Today was hand-in day for the first part of this module&#8217;s coursework &#8211; to design a shop, based on four requirements, using Object-Oriented design principles. Specifically, we had to use the State, Strategy and Item Description patterns, although I also worked in a couple of other patterns I like &#8211; Decorator (solves problems of composing [...]]]></description>
			<content:encoded><![CDATA[<p>Today was hand-in day for the first part of this module&#8217;s coursework &#8211; to design a shop, based on four requirements, using Object-Oriented design principles. Specifically, we had to use the State, Strategy and Item Description patterns, although I also worked in a couple of other patterns I like &#8211; Decorator (solves problems of composing functionality using recursion) and Iterator (hides implementation details of collections behind a simple object you can only iterate over).</p>
<p>I quite enjoyed having a simple pet problem like this, with a real reason to work through some aspects of it. If you&#8217;re interested in having a go yourself, the assignment reminded me of the first pragprog Code Kata &#8211; <a href="http://codekata.pragprog.com/2007/01/code_kata_one_s.html">Supermarket Pricing</a>.</p>
<p>As a result of the coursework, I&#8217;ve found a UML tool I can live with &#8211; <a href="http://www.visual-paradigm.com/">Visual Paradigm</a>. I&#8217;ll probably do a bit of a review and compare with the other tools I tried soon, but suffice to say it was by some margin the most pleasant and easy-to-use tool of the 5 or 6 I tried. £40 needed to get rid of the invasive watermark, but it looks like when it comes to CASE tools you get what you pay for.</p>
<p>The lectures are proving tricky to keep on top of &#8211; the pace is kinda slow (maybe that&#8217;s just me), so I find myself struggling to maintain attention. Still, the lecture notes are very detailed, so I spent a a few hours reviewing last week&#8217;s notes creating myself some revision material. I&#8217;ve been using a piece of software called Freemind to do &#8216;mind-mapping&#8217;, something I found out about in a <a href="http://unsheffield.net/2009/06/steve-brett-mindmapping/">presentation by Steve Brett</a> in last years&#8217; <a href="http://unsheffield.net/">unsheffield unconference</a>. It seems to work pretty well for the way I do revision, here&#8217;s a screenshot if you&#8217;ve not seen a mind map before.</p>
<p><img src="http://blog.crossedstreams.com/wp-content/uploads/2010/02/Screenshot3.png" alt="Freemind Screenshot" title="Freemind Screenshot" width="646" height="244" class="aligncenter size-full wp-image-591" /></p>
<p>So anyway, it&#8217;s all good. Coursework part 2 starts now, two more lectures in this module.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.crossedstreams.com/msc/pattern-based-software-dev-day-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pattern-Based Software Dev &#8211; Day 1</title>
		<link>http://blog.crossedstreams.com/msc/pattern-based-software-development-day-1/</link>
		<comments>http://blog.crossedstreams.com/msc/pattern-based-software-development-day-1/#comments</comments>
		<pubDate>Mon, 08 Feb 2010 21:49:19 +0000</pubDate>
		<dc:creator>Paul Brabban</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[MSc]]></category>

		<guid isPermaLink="false">http://blog.crossedstreams.com/?p=544</guid>
		<description><![CDATA[I got a couple of great surprises this morning on turning up in Manchester for the module starting today.
First up, the lectures were originally timetabled for a 9:30am start, and are now timetabled for 11:00am. That gives me loads of time between arriving in Manchester at 08:00 and starting lectures to eat, get to the [...]]]></description>
			<content:encoded><![CDATA[<p>I got a couple of great surprises this morning on turning up in Manchester for the module starting today.</p>
<p>First up, the lectures were originally timetabled for a 9:30am start, and are now timetabled for 11:00am. That gives me loads of time between arriving in Manchester at 08:00 and starting lectures to eat, get to the library, do any admin stuff that&#8217;s easier when I&#8217;m onsite and generally chill out before getting started.</p>
<p>Second &#8211; I signed up for &#8216;IBM Patterns for e-Business Applications&#8217;, because I wanted to get some Software Engineering coverage as part of my MSc, and there was some coverage of design patterns in the syllabus for this module in 2009. I was in two minds about it, studying something with &#8216;IBM&#8217; on it didn&#8217;t seem entirely right for an academic course.</p>
<p>To my surprise, the course has been re-branded &#8216;Pattern-Based Software Development&#8217; overnight, and a complete re-write of the lectures has started to appear that appears to focus on understanding and applying some of the <a title="GoF design patterns at Wikipedia" href="http://en.wikipedia.org/wiki/Design_Patterns">GoF design patterns</a> &#8211; pretty much the exact course I <strong>wanted</strong> to take. I&#8217;ve studied and applied some of the GoF patterns before, and I&#8217;m really looking forward to learning the syllabus and having my work critically reviewed.</p>
<p>As an aside, it looks like the Manchester CS department is completely re-working its <a title="Taught MSc Pathways at Manchester" href="http://www.cs.manchester.ac.uk/postgraduate/taught/programmes/">taught MSc Advanced Computer Science proposition</a>, organising the taught modules into &#8216;pathways&#8217; like <a title="ACS:Aritifical Intelligence" href="http://www.cs.manchester.ac.uk/postgraduate/taught/programmes/acs/index.php?pathwayid=10">Artificial Intelligence</a> and <a title="ACS:Natural Language Processing" href="http://www.cs.manchester.ac.uk/postgraduate/taught/programmes/acs/index.php?pathwayid=5">Natural Language Processing</a>. Looks like a good move to me, helpful for students choosing modules.</p>
<p>The lecture material introduced the Strategy, State, Proxy and Item Description patterns. The first three are pretty well known, but it&#8217;s the first time I&#8217;ve come across the last one.</p>
<p>Coursework material involves UML Class diagrams and designing a system to solve a loosely defined business problem. Unfortunately, it seems that good UML tools are tough to find. After a few days of <span style="text-decoration: line-through;">battling</span> working with the Eclipse project&#8217;s <a href="http://www.eclipse.org/modeling/mdt/?project=uml2">UML2 plugin</a> I&#8217;ve come to the conclusion that I don&#8217;t much like it for simple diagramming. I&#8217;ve tried a few other tools with limited success, just a couple left to try. It might be you do have to pay $$$ to get a good one &#8211; but we&#8217;ll see.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.crossedstreams.com/msc/pattern-based-software-development-day-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Finishing up the Machine Learning Module</title>
		<link>http://blog.crossedstreams.com/msc/finishing-up-the-machine-learning-module/</link>
		<comments>http://blog.crossedstreams.com/msc/finishing-up-the-machine-learning-module/#comments</comments>
		<pubDate>Wed, 20 Jan 2010 19:07:25 +0000</pubDate>
		<dc:creator>Paul Brabban</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[MSc]]></category>

		<guid isPermaLink="false">http://blog.crossedstreams.com/?p=488</guid>
		<description><![CDATA[Well, the Machine Learning exam was this morning&#8230; another 5:30 am start to get to Manchester in plenty of time.
My Top Tip for distance learning today has to be: if you have to attend classes, labs, exams &#8211; you know, stuff that you can&#8217;t really afford to miss, aim to be there an hour early.
Today, [...]]]></description>
			<content:encoded><![CDATA[<p>Well, the Machine Learning exam was this morning&#8230; another 5:30 am start to get to Manchester in plenty of time.</p>
<p>My Top Tip for distance learning today has to be: <strong>if you have to attend classes, labs, exams &#8211; you know, stuff that you can&#8217;t really afford to miss, aim to be there an hour early</strong>.</p>
<p>Today, I didn&#8217;t realise that the exam wasn&#8217;t in the same building that I&#8217;ve had every lecture, lab and exam so far. In fact, it was on the other side of the campus, and it&#8217;s not a small University. I was very glad of having 45 minutes from checking my information to the exam starting! Totally my own fault, of course &#8211; focussed on studying and the date and time of the exam, I made an assumption &#8211; but these things happen. If you&#8217;re there early and everything works out fine you have time to relax and centre yourself. On the other hand, if there is a problem, you&#8217;ll be very glad of that time.</p>
<p>The course itself was a fascinating introduction to several aspects of automated learning. Starting out with linear and nonlinear classifiers, moving on to decision trees, then probabilistic classifiers, unsupervised learning and finally sequence learning, we covered a large set of knowledge with significant maths pre-requisites.</p>
<p>Most of the material was quite approachable (now that I&#8217;m largely over my irrational fear of mathematical symbols &#8211; I wonder if there&#8217;s an official phobia for that?), with the notable exception of the probabilistic stuff. I&#8217;m not sure why I had such a problem with it and even after some serious digging in books I&#8217;m still not totally clear on some of it. More work needed there in the future, I fear.</p>
<p>Funny thing about the maths stuff &#8211; it has taken/is taking me a lot of effort to penetrate the notation. Once I can read it, though, the concept hiding underneath tends to be fairly intuitive. Go figure.</p>
<p>So how did the exam go? As with the last one, I can easily imagine how it might have been much tougher. Feels like it went OK, but you never know do you?</p>
<p>Anyway, now the immediate study pressure is off for a few weeks I&#8217;m hoping to catch up on some reading (right now, a quarter of the way through <a href="http://cc2e.com/">Code Complete 2</a>, by Steve McConnell &#8211; I&#8217;d like to finish that off) and get a few more blog posts in.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.crossedstreams.com/msc/finishing-up-the-machine-learning-module/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Top 5 Cool Machine Learning Links</title>
		<link>http://blog.crossedstreams.com/msc/top-5-machine-learning-links/</link>
		<comments>http://blog.crossedstreams.com/msc/top-5-machine-learning-links/#comments</comments>
		<pubDate>Tue, 24 Nov 2009 20:17:01 +0000</pubDate>
		<dc:creator>Paul Brabban</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[MSc]]></category>
		<category><![CDATA[Machine Learning]]></category>

		<guid isPermaLink="false">http://blog.crossedstreams.com/?p=333</guid>
		<description><![CDATA[I&#8217;ve seen so much awesome stuff in my forays into Machine Learning as part of the course I&#8217;m doing, I thought I&#8217;d present for your entertainment and information my top 5 machine learning resources.
No, come back &#8211; some of this stuff is actually quite cool, I promise!
Here goes, in no particular order:
How to make $1M [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve seen so much awesome stuff in my forays into Machine Learning as part of the course I&#8217;m doing, I thought I&#8217;d present for your entertainment and information my top 5 machine learning resources.</p>
<p>No, come back &#8211; some of this stuff is actually quite cool, I promise!</p>
<p>Here goes, in no particular order:</p>
<h3>How to make $1M with Machine Learning and Netflix</h3>
<p>Netfix offered a $1M prize for a team that could best their video classification technology by a significant margin.<br />
The <a href="http://www.netflixprize.com/">netflixprize page</a> tells the official story, and the presentation attached to <a href="http://abeautifulwww.com/2007/11/23/ensemble-machine-learning-tutorial/">this blog post</a> is well worth a look.</p>
<h3>Detexify &#8211; Handwritten symbol recognition</h3>
<p>For those of you that use LaTeX, you&#8217;ll know the pain of trying to find the code for a symbol if you can&#8217;t remember it. <a href="http://detexify.kirelabs.org/classify.html">Detexify</a> lets you draw a symbol on the screen, then uses machine learning techniques to recognise it and tell you which codes it thinks you need. The accuracy is astonishing &#8211; a really good showcase for the potential of the techniques.</p>
<div id="attachment_341" class="wp-caption aligncenter" style="width: 310px"><a href="http://detexify.kirelabs.org/classify.html"><img class="size-medium wp-image-341" title="Detexify" src="http://blog.crossedstreams.com/wp-content/uploads/2009/10/detexify-300x212.png" alt="Detexify in action" width="300" height="212" /></a><p class="wp-caption-text">Detexify in action</p></div>
<h3>Lego Mindstorms Robots that Learn</h3>
<p><a href="http://www.javaworld.com/javaworld/jw-05-2005/jw-0516-lego.html?page=1">This JavaWorld article</a> takes Lego Mindstorms and adds a pinch of Machine Learning to make a robot that learns to follow a path on the ground.</p>
<p>I highly recommend this article for a casual read, it&#8217;s very nicely written and accessible but does delve into the theory and mathematical foundations of the <a href="http://en.wikipedia.org/wiki/Perceptron">Perceptron</a> algorithm at the heart of the article.</p>
<h3>Machine Learning at videolectures.net</h3>
<p>There are 794 presentations and lectures &#8211; that&#8217;s not a typo, seven hundred and ninety-four &#8211; on every aspect of machine learning you could dream of <a href="http://videolectures.net/Top/Computer_Science/Machine_Learning/">here</a>, at videolectures.net, from a range of sources. Many are quite approachable for the layperson.</p>
<h3>The Singularity Summit</h3>
<p>To wrap up, the <a href="http://www.singularitysummit.com/summit/what_is_the_singularity">Singularity Summit</a> seems to be the forum for the players in the general Artificial Intelligence arena to talk about the past, future and philosophical implications of AI.</p>
<p><a href="http://itc.conversationsnetwork.org/series/singularitysummit.html">The Conversations Network</a> hosts a free podcast series for the summit &#8211; personally, I really enjoyed <a href="http://itc.conversationsnetwork.org/shows/detail3388.html">James Hughes&#8217; twenty-odd minute talk</a>, in which he answers one of  the great unanswered questions &#8211; if you&#8217;re standing on a railway bridge, are you safer stood next to an artificial intelligence or a human being?</p>
<h3>That&#8217;s All Folks</h3>
<p>I hope there&#8217;s something in there that&#8217;s given you some food for thought. If you have any stuff that you think is awesomely cool in this space, drop me a comment so I can check it out!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.crossedstreams.com/msc/top-5-machine-learning-links/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Machine Learning &#8211; Day 5</title>
		<link>http://blog.crossedstreams.com/msc/machine-learning-day-5/</link>
		<comments>http://blog.crossedstreams.com/msc/machine-learning-day-5/#comments</comments>
		<pubDate>Wed, 28 Oct 2009 21:54:05 +0000</pubDate>
		<dc:creator>Paul Brabban</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[MSc]]></category>
		<category><![CDATA[Machine Learning]]></category>

		<guid isPermaLink="false">http://blog.crossedstreams.com/?p=371</guid>
		<description><![CDATA[So that&#8217;s the end of the taught course in Machine Learning, finishing up learning about Markov Chains and Hidden Markov Models.
Yep, those are just links to the Wikipedia articles, and it&#8217;s quite possible that if you clicked on them and you&#8217;re anything like me, the crazy-looking maths stuff at the other end made the sensible [...]]]></description>
			<content:encoded><![CDATA[<p>So that&#8217;s the end of the taught course in Machine Learning, finishing up learning about <a href="http://en.wikipedia.org/wiki/Markov_chain">Markov Chains</a> and<a href="http://en.wikipedia.org/wiki/Hidden_Markov_model"> Hidden Markov Models</a>.</p>
<p>Yep, those are just links to the Wikipedia articles, and it&#8217;s quite possible that if you clicked on them and you&#8217;re anything like me, the crazy-looking maths stuff at the other end made the sensible part of your brain run off and sit in a corner, clutching its knees and rocking gently back and forth.</p>
<p>Probably muttering to itself.</p>
<p>To be honest, I can&#8217;t really explain what this stuff is about just yet &#8211; I&#8217;ve had a lot crammed into my head over the past few weeks, and I think I need a really good night&#8217;s sleep before I can comprehend the deeper aspects of this last bit. Suffice to say for now that it seems like some really interesting and powerful ideas are in play, and when I&#8217;ve got my head round it I&#8217;ll blog up my thoughts.</p>
<p>I&#8217;ve now got one more homework assignment on today&#8217;s material to complete by next Wednesday, and the project we&#8217;ve been assigned to do is then due on Friday 6th November &#8211; a nice surprise, as a typo on the schedule had us believe it was due on the previous Tuesday.</p>
<p>I&#8217;m sorry the taught part of the course is done, to be honest. Although I&#8217;m not sure I could have taken any more at the pace it was being taught, I&#8217;ve thoroughly enjoyed the material.</p>
<p>In fact, I&#8217;d say I feel a little inspired.</p>
<p>And, as James Brown might say &#8211; it feels good.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.crossedstreams.com/msc/machine-learning-day-5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Machine Learning &#8211; Day 3</title>
		<link>http://blog.crossedstreams.com/msc/machine-learning-day-3/</link>
		<comments>http://blog.crossedstreams.com/msc/machine-learning-day-3/#comments</comments>
		<pubDate>Thu, 15 Oct 2009 22:29:46 +0000</pubDate>
		<dc:creator>Paul Brabban</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[MSc]]></category>
		<category><![CDATA[Machine Learning]]></category>

		<guid isPermaLink="false">http://blog.crossedstreams.com/?p=311</guid>
		<description><![CDATA[Getting through the coursework was a challenge &#8211; my computers have never worked so hard.
The last section involved performing a computation over a data set that took a few seconds per run to exhaustively search for the optimal settings for two parameters in the computation&#8217;s algorithm. Searching over 25 possible settings doesn&#8217;t sound like a [...]]]></description>
			<content:encoded><![CDATA[<p>Getting through the coursework was a challenge &#8211; my computers have never worked so hard.</p>
<p>The last section involved performing a computation over a data set that took a few seconds per run to exhaustively search for the optimal settings for two parameters in the computation&#8217;s algorithm. Searching over 25 possible settings doesn&#8217;t sound like a lot, but two of &#8216;em means 625 runs &#8211; times a few seconds is quite a wait.</p>
<p>Oh, wait &#8211; there was also a requirement to randomly shuffle the input data for the algorithm ten times and do some simple stats, to give some chance of reducing potential bias brought about by the order in which the data appears in the data set. So that&#8217;d be 10 runs per pair of parameter settings, which is 6250 runs. Or several hours with a CPU core maxed out and a nice, toasty computer.</p>
<p>But hey. I got some neat 3-d mesh plots out of it, showing the performance of the algorithm over the parameter search space. Proper science, this! Sure it has faults, but Matlab&#8217;s plotting functionality is pretty neat and easy to use. Plots like the following are a doddle:</p>
<p><img class="alignnone size-full wp-image-54" title="Matlab 3D Plot" src="http://blog.crossedstreams.com/wp-content/uploads/2009/10/matlab-mesh.png" alt="Matlab 3D Plot" width="748" height="562" /></p>
<p>Figure 1. Gratuitous use of a 3D plot for fun and profit</p>
<p>The goal of the exercise was to identify the most relevant &#8216;features&#8217; in the data set for assigning the data into an appropriate class. Imagine you had a big table of information about a set of people, where the first column (could call it &#8216;Feature 1&#8242;)  was their heights, the second was the time of day the height was measured, and you were trying to predict their sex. You and I would guess that height would be a good indicator of sex and the time of day would be irrelevant, but we&#8217;d be cheating by applying information about the meaning of the data that exists in our heads and wasn&#8217;t supplied with the problem.</p>
<p>By applying a variety methods to our table of data, a computer might be able to recognise relationships between the features and what we&#8217;re trying to predict, without knowing anything else about the information. In doing, it could remove the features that do not appear to have any relationship and save the computational effort and time that would otherwise be spent processing useless data. The approaches that can be applied are various, and some degree of tuning needs to be applied to to ensure that removing features doesn&#8217;t compromise the goal in subtle ways.</p>
<p>Today&#8217;s lectures moved on to machine learning techniques using the perplexing mathematics of probability (perplexing for my tiny brain, at any rate), in preparation for the last two weeks where unsupervised learning is the order of the day. The usual lab afternoon was focussed on kicking off a three week project involving applying the techniques we&#8217;re learning to do something with bunch of data in the style of a research paper.</p>
<p>Time to polish up the LaTeX from last year then&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.crossedstreams.com/msc/machine-learning-day-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Semi-Structured Data and the Web &#8211; Day 5.5</title>
		<link>http://blog.crossedstreams.com/msc/semi-structured-data-and-the-web-day-55/</link>
		<comments>http://blog.crossedstreams.com/msc/semi-structured-data-and-the-web-day-55/#comments</comments>
		<pubDate>Mon, 16 Mar 2009 12:47:32 +0000</pubDate>
		<dc:creator>Paul Brabban</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[MSc]]></category>
		<category><![CDATA[xquery]]></category>
		<category><![CDATA[xslt]]></category>

		<guid isPermaLink="false">http://blog.crossedstreams.com/?p=42</guid>
		<description><![CDATA[Two weeks later, on deadline day&#8230;
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 [...]]]></description>
			<content:encoded><![CDATA[<p>Two weeks later, on deadline day&#8230;</p>
<p>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.</p>
<p>I&#8217;m sure all that stuff with a functional lean is pretty old hat to someone who&#8217;s a Python, Erlang, F# or Haskell guru, but for little ol&#8217; me with my OO background, it was pretty painful to swap my thinking over to immutable variables (which I&#8217;m sure is a contradiction in terms!), a complete inability to track state and just plain indulgence in recursion.</p>
<p>In short, it was brilliant. Exactly what I&#8217;m here for, to get out of my &#8216;comfort zone&#8217; and learn new ways of thinking.<span id="more-42"></span></p>
<p>Transforming XML documents using XSLT seems to be a bit of a breeze. I have used XSLT before the course and I generally like it for doing transformations. It has a flexible template-based structure which makes reuse quite attractive and works in quite a straightforward way, once you&#8217;ve got the idea behind it. As a friend commented over lunch the other day, it&#8217;s a very declarative way of doing things. If you try and write procedural code in XSLT, you&#8217;ll probably have a hard time of it. As will the next guy, who has to maintain your templates.</p>
<p>The manual run of a tree against a tree grammar was a little painful. There were some tedious aspects to it, but it did show up a couple of things in the algorithm that I hadn&#8217;t quite understood properly, so it was a very worthwhile exercise.</p>
<p>Still no sign of any marks for any of the assessments, and things went kind of quiet on the email and discussion forums front too. Turns out to be due to the issues with the Blackboard product I mentioned in the last post, and illness in the teaching staff. In fairness, the deadlines have been slightly extended further to compensate. I&#8217;m told we&#8217;ll get some marks back later today&#8230;</p>
<p>&#8230;and that&#8217;s the end of my first MSc module&#8217;s taught component. Now, there is a big gap, barring the exam for this module in May, before the next year begins in October&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.crossedstreams.com/msc/semi-structured-data-and-the-web-day-55/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
