<?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>Sat, 21 Jan 2012 20:10:48 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>A Very Geeky Dilemma</title>
		<link>http://blog.crossedstreams.com/msc/a-very-geeky-dilemma/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=a-very-geeky-dilemma</link>
		<comments>http://blog.crossedstreams.com/msc/a-very-geeky-dilemma/#comments</comments>
		<pubDate>Thu, 15 Sep 2011 21:53:06 +0000</pubDate>
		<dc:creator>Paul Brabban</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[Machine Learning]]></category>
		<category><![CDATA[MSc]]></category>
		<category><![CDATA[University of Manchester]]></category>

		<guid isPermaLink="false">http://blog.crossedstreams.com/?p=1023</guid>
		<description><![CDATA[A new module has appeared on the University of Manchester CS horizon, and it&#8217;s temping me away from wrapping up the taught course with my previous front-runner &#8216;Ontology Engineering for the Semantic Web&#8216;. Yep, COMP61032 &#8216;Optimization for Learning, Planning and Problem Solving&#8216; has appeared in my field of vision and it looks a bit hardcore. [...]]]></description>
			<content:encoded><![CDATA[<p>A new module has appeared on the University of Manchester CS horizon, and it&#8217;s temping me away from wrapping up the taught course with my previous front-runner &#8216;<a title="Ontology Engineering for the Semantic Web, 2011 at the University of Manchester" href="http://www.cs.manchester.ac.uk/postgraduate/taught/programmes/acs/syllabus.php?code=COMP60421&amp;year=2011">Ontology Engineering for the Semantic Web</a>&#8216;.</p>
<p>Yep, COMP61032 &#8216;<a title="Optimisation for Learning, Planning and Problem Solving 2011 at the Univerity of Manchester" href="http://www.cs.manchester.ac.uk/postgraduate/taught/programmes/acs/syllabus.php?code=COMP61032&amp;year=2011">Optimization for Learning, Planning and Problem Solving</a>&#8216; has appeared in my field of vision and it looks a bit hardcore. It&#8217;s part of the &#8216;Learning from Data&#8217; theme &#8211; I guess optimisation is a natural partner to machine learning approaches, owing to the need to chew up a whole lot of information as quickly as possible.</p>
<p>Why is it tempting? Lots of algorithms and computational complexity going on &#8211; it&#8217;s one of those modules that&#8217;s shouting &#8220;Bet you can&#8217;t pass me&#8221;. More than that though, it&#8217;s modules with that computational theory slant that have shown me moments of catch-your-breath clarity in the way that messy practicality distils to elegant mathematical beauty. It&#8217;s a great sense of satisfaction when you persevere and get to see it.</p>
<p>So &#8211; Ontology engineering, or Optimisation? Hey, I warned you it was geeky.</p>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow: hidden;">
<h1 style="margin : 10px 0px 20px 0px;">Optimization for learning, planning and problem-solving</h1>
</div>
<div class="disclaimer">These are my thoughts and opinions and do not reflect
those of anyone else. Read the <a href="disclaimer">disclaimer</a> for more verbal
teflon.</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.crossedstreams.com/msc/a-very-geeky-dilemma/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Text Mining &#8211; Day 4</title>
		<link>http://blog.crossedstreams.com/msc/text-mining-day-4/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=text-mining-day-4</link>
		<comments>http://blog.crossedstreams.com/msc/text-mining-day-4/#comments</comments>
		<pubDate>Sun, 17 Apr 2011 08:43:02 +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=970</guid>
		<description><![CDATA[Between prep for my MSc. project, getting married, snowed under at work, starting the my next MSc. module and being full of cold, there hasn&#8217;t been much time for blogging&#8230; So today was day 4 of the Text Mining module. As a friend put it, &#8220;Text Mining? What &#8211; like using grep?&#8221; Text Mining is [...]]]></description>
			<content:encoded><![CDATA[<p>Between prep for my MSc. project, getting married, snowed under at work, starting the my next MSc. module and being full of cold, there hasn&#8217;t been much time for blogging&#8230;</p>
<p>So today was day 4 of the <a href="http://www.cs.manchester.ac.uk/undergraduate/programmes/courseunits/syllabus.php?code=COMP61332&amp;year=2010">Text Mining</a> module. As a friend put it, &#8220;Text Mining? What &#8211; like using <a href="http://en.wikipedia.org/wiki/Grep">grep</a>?&#8221;</p>
<p>Text Mining is defined as finding previously unknown information in unstructured data. Unknown &#8211; as in never explicitly written down.</p>
<p>So by &#8216;text&#8217;, we mean un- or partially-structured data, like word documents or this blog page. There&#8217;s some structure here, headings, subheadings, lists and the like. but it&#8217;s not &#8216;structured&#8217; in the sense that database tables are, with fields and columns and a type system.</p>
<p>Tools like grep can match words (more generally, expressions describing relatively simple patterns of characters called regular expressions), so whilst they&#8217;re fairly easy to use (so long as you <a href="http://www.ex-parrot.com/~pdw/Mail-RFC822-Address.html">don&#8217;t try to push them too far</a>), they are limited in the complexity of what they can do.</p>
<p>For example, you can&#8217;t easily use grammatical ideas, like identifying documents that are about fish (a fish), but not fishing (I fish). You can&#8217;t search for documents related to a concept, and recognising generic names or technical terms is out. You can&#8217;t build structures like indices to help with searches, which means that over reasonably large collections of documents, grep is too slow to be very useful.</p>
<p>I&#8217;m still getting my head around how it hangs together, but text mining seems like a set of gloriously messy, pragmatic and seemingly pretty successful ways to let computers listen in on the languages that humans have evolved.</p>
<div class="disclaimer">These are my thoughts and opinions and do not reflect
those of anyone else. Read the <a href="disclaimer">disclaimer</a> for more verbal
teflon.</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.crossedstreams.com/msc/text-mining-day-4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Logic and Applications &#8211; Tough Exam!</title>
		<link>http://blog.crossedstreams.com/msc/logic-and-applications-tough-exam/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=logic-and-applications-tough-exam</link>
		<comments>http://blog.crossedstreams.com/msc/logic-and-applications-tough-exam/#comments</comments>
		<pubDate>Wed, 02 Feb 2011 22:10:41 +0000</pubDate>
		<dc:creator>Paul Brabban</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[Logic]]></category>
		<category><![CDATA[MSc]]></category>

		<guid isPermaLink="false">http://blog.crossedstreams.com/?p=960</guid>
		<description><![CDATA[I took the Logic and Applications exam last Friday. I think I&#8217;m ready now to talk about the ordeal&#8230; It wasn&#8217;t so bad really, I guess. I made a bad call as to which questions to answer (it was one of those answer three of four kind-of-things) and ran out of time. One of the [...]]]></description>
			<content:encoded><![CDATA[<p>I took the Logic and Applications exam last Friday. I think I&#8217;m ready now to talk about the ordeal&#8230;</p>
<p>It wasn&#8217;t so bad really, I guess. I made a bad call as to which questions to answer (it was one of those answer three of four kind-of-things) and ran out of time. One of the questions I initially chose had what was for me a brick wall towards the midway point, and on a two hour exam, spending 20-25 mins heading down a dead end isn&#8217;t the best idea!</p>
<p>I guess the two frustrations I felt with this exam were firstly that the course covered so much material so quickly, but each of the topics turned out to be a bit of a rabbit-hole when I got to thinking about it during the revision process &#8211; the more I thought about it, the more questions I found!</p>
<p>On top of that, one of the key aspects of a course like this is transformation of formulae into alternative forms which have properties we want &#8211; usually, more efficient solving algorithms. These transformations are rather like the algebraic manipulation of mathematical formulae we did at school &#8211; progressing in unit steps, painstakingly copying out each new form as you go. That consumes a lot of time, especially when the formulae don&#8217;t give out easily, but it doesn&#8217;t really seem to prove much about the student&#8217;s skills &#8211; the pages-of-transforms kind of work was all hammered pretty hard in the coursework, after all. Then again, maybe I just screwed something up early doors and that led to the extensive transform.</p>
<p>The course was new this year anyway, so maybe it takes a little time for the exams to settle in terms of difficulty. Or I&#8217;m just a dumbass. Anyway, it&#8217;s too late to worry about all that now. Hopefully, I passed &#8211; that&#8217;s the main thing, right?</p>
<div class="disclaimer">These are my thoughts and opinions and do not reflect
those of anyone else. Read the <a href="disclaimer">disclaimer</a> for more verbal
teflon.</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.crossedstreams.com/msc/logic-and-applications-tough-exam/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Preparing for the Logic and Applications Exam</title>
		<link>http://blog.crossedstreams.com/msc/preparing-for-the-logic-and-applications-exam/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=preparing-for-the-logic-and-applications-exam</link>
		<comments>http://blog.crossedstreams.com/msc/preparing-for-the-logic-and-applications-exam/#comments</comments>
		<pubDate>Sat, 22 Jan 2011 22:46:01 +0000</pubDate>
		<dc:creator>Paul Brabban</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[Logic]]></category>
		<category><![CDATA[manchester]]></category>
		<category><![CDATA[MSc]]></category>

		<guid isPermaLink="false">http://blog.crossedstreams.com/?p=928</guid>
		<description><![CDATA[It feels like a long time between finishing the Logic and Applications course back in early November and the exam, which is next week on the 27th January. In between, I&#8217;ve done a little work on my project proposal in the meantime, but certainly since late December I&#8217;ve been focussing more on preparing for the [...]]]></description>
			<content:encoded><![CDATA[<p>It feels like a long time between finishing the Logic and Applications course back in early November and the exam, which is next week on the 27th January. In between, I&#8217;ve done a little work on my project proposal in the meantime, but certainly since late December I&#8217;ve been focussing more on preparing for the exam.</p>
<p>It&#8217;s always a bit surprising when I start revising how much stuff we covered in a five-week course and this one was no exception. The syllabus is <a href="http://www.cs.manchester.ac.uk/undergraduate/programmes/courseunits/syllabus.php?code=COMP61111&amp;year=2010">here</a> on the UoM CS website. It&#8217;s also a new course this year, so there aren&#8217;t any specific past papers (exam papers from previous years) to get a feel for how the exam will be phrased and what kind of content has been examined before.</p>
<p>The nearest course in previous years was the Automated Reasoning course, which covered similar stuff but also included some aspects of logic programming in <a href="http://www.learnprolognow.org/">Prolog</a>. In this course we used theorem provers <a href="http://www.spass-prover.org/">SPASS</a> and <a href="http://minisat.se/MiniSat.html">MiniSAT</a> for the small amount of experimental work involved. Hopefully there won&#8217;t be any &#8216;remember-the-syntax&#8217; style questions&#8230;</p>
<div class="disclaimer">These are my thoughts and opinions and do not reflect
those of anyone else. Read the <a href="disclaimer">disclaimer</a> for more verbal
teflon.</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.crossedstreams.com/msc/preparing-for-the-logic-and-applications-exam/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Logic and Applications Day 5</title>
		<link>http://blog.crossedstreams.com/msc/logic-and-applications-day-5/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=logic-and-applications-day-5</link>
		<comments>http://blog.crossedstreams.com/msc/logic-and-applications-day-5/#comments</comments>
		<pubDate>Sun, 07 Nov 2010 22:23:38 +0000</pubDate>
		<dc:creator>Paul Brabban</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[Logic]]></category>
		<category><![CDATA[MSc]]></category>

		<guid isPermaLink="false">http://blog.crossedstreams.com/?p=903</guid>
		<description><![CDATA[So I&#8217;ve finished the Logic and Applications module now &#8211; the last coursework has been submitted and I&#8217;ve been enjoying a couple of days of doing things other than schoolwork! The course was very focused on satisfiability &#8211; given a set of logical statements, is it possible to find an interpretation, a set of assignments [...]]]></description>
			<content:encoded><![CDATA[<p>So I&#8217;ve finished the Logic and Applications module now &#8211; the last coursework has been submitted and I&#8217;ve been enjoying a couple of days of doing things other than schoolwork!</p>
<p>The course was very focused on satisfiability &#8211; given a set of logical statements, is it possible to find an interpretation, a set of assignments for the logical statements, that satisfies them? That might not sound particularly useful, but it&#8217;s easy to express a question about a system this way.</p>
<p>As an example, consider the <a href="http://en.wikipedia.org/wiki/Minesweeper_%28computer_game%29">Minesweeper game</a>. (Sorry if you&#8217;ve not come across this game before, check out the Wikipedia page for an example if so) Initially, we know very little and what we do know isn&#8217;t directly useful &#8211; how many squares there are. Once we&#8217;ve tried a couple of random clicks, we have some information we can use and express in these logics.</p>
<p>Perhaps we know that the square at 7 across and 12 up contains a mine and that the square at 8 across and 12 up has one adjacent mine. The question we might ask is whether 8,12 contains a mine and this is where satisfiability comes into play. Given logical statements encoding the rules of minesweeper, and the two details we mentioned specific to this game, is it possible that 8,12 contains a mine?</p>
<p>In other words, is the set of logical statements describing the rules, this game (to this point) and a statement expressing that 8,12 contains a mine satisfiable? The answer of course is easy for human to figure out.</p>
<p>The ability to automate the search for satisfiability allows these kinds of problems to be solved quickly and accurately using tried and tested reasoning tools. The general approach we used on the course was to search for a satisfying interpretation, which quickly leads to a problem &#8211; <a href="http://en.wikipedia.org/wiki/Combinatorial_explosion">combinatorial explosion</a>. The number of possible interpretations of a set of logical statements grows exponentially as the number of logical variables grows.</p>
<p>As such, a big focus on the course was algorithms and approaches to battle this exponential complexity &#8211; there are many techniques to reduce the space of possible interpretations and bring the complexity problem under control. That said, one of the impressions I come away with is that for a given problem no generalized technique will be able to guarantee to determine satisfiability in a reasonable time.</p>
<p>A final point, and an important one, is that the techniques we used were based almost entirely on mathematical proofs, that is to say that we are able to deduce that the techniques are correct and have certain other properties using formal methods. Of course, mathematical proof is formed by logical deduction too, so there&#8217;s a certain recursive nature to all this.</p>
<p>It&#8217;ll be good to get started on a fairly relaxed process of revision for all this stuff. The sheer volume of information thrown at us on these modules is huge, and it always feels a little like riding a rollercoaster, so it&#8217;s good to get back in there and review the material at a more relaxed pace.</p>
<div class="disclaimer">These are my thoughts and opinions and do not reflect
those of anyone else. Read the <a href="disclaimer">disclaimer</a> for more verbal
teflon.</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.crossedstreams.com/msc/logic-and-applications-day-5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>No Building Web Applications</title>
		<link>http://blog.crossedstreams.com/development/no-building-web-applications/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=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 [...]]]></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>
<div class="disclaimer">These are my thoughts and opinions and do not reflect
those of anyone else. Read the <a href="disclaimer">disclaimer</a> for more verbal
teflon.</div>
]]></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/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=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 [...]]]></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 &#8216;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>
<div class="disclaimer">These are my thoughts and opinions and do not reflect
those of anyone else. Read the <a href="disclaimer">disclaimer</a> for more verbal
teflon.</div>
]]></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/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=pattern-based-software-dev-%25e2%2580%2593-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 [...]]]></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>
<div class="disclaimer">These are my thoughts and opinions and do not reflect
those of anyone else. Read the <a href="disclaimer">disclaimer</a> for more verbal
teflon.</div>
]]></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/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=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>
<div class="disclaimer">These are my thoughts and opinions and do not reflect
those of anyone else. Read the <a href="disclaimer">disclaimer</a> for more verbal
teflon.</div>
]]></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/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=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 [...]]]></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>
<div class="disclaimer">These are my thoughts and opinions and do not reflect
those of anyone else. Read the <a href="disclaimer">disclaimer</a> for more verbal
teflon.</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.crossedstreams.com/msc/pattern-based-software-development-day-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

