<?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>devgrind &#187; algorithm</title>
	<atom:link href="http://devgrind.com/tag/algorithm/feed/" rel="self" type="application/rss+xml" />
	<link>http://devgrind.com</link>
	<description>thinking outside the { }</description>
	<lastBuildDate>Tue, 04 May 2010 17:25:24 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Trees and Roots</title>
		<link>http://devgrind.com/2010/05/04/trees-and-roots/</link>
		<comments>http://devgrind.com/2010/05/04/trees-and-roots/#comments</comments>
		<pubDate>Tue, 04 May 2010 17:24:20 +0000</pubDate>
		<dc:creator>Magnus</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[algorithm]]></category>
		<category><![CDATA[data structure]]></category>

		<guid isPermaLink="false">http://devgrind.com/?p=127</guid>
		<description><![CDATA[A friend on Facebook mentioned a nice little naming problem I had not been aware of in years of computer science:
We are always drawing tree structures with the root on top, sometimes with the root on the left, but almost never with the root where it belongs (according to biologists) in a tree: at the [...]]]></description>
			<content:encoded><![CDATA[<p>A <a href="http://www.najavonschmude.de/">friend</a> on Facebook mentioned a nice little naming problem I had not been aware of in years of computer science:</p>
<p>We are always drawing tree structures with the <em>root</em> on top, sometimes with the root on the left, but almost never with the root where it belongs (according to biologists) in a tree: at the <em>bottom</em>.</p>
<p>In a comment, a kind soul suggested viewing the usual top-down trees as Christmas trees, and thus naming the root &#8220;<em>star</em>&#8220;. Should I ever teach data structures again, I will use this one.</p>
<p>And the start of a tree drawn from left to right could be &#8230; the <em>source</em> (of a creek, a river).</p>
]]></content:encoded>
			<wfw:commentRss>http://devgrind.com/2010/05/04/trees-and-roots/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Introduction to Algorithms</title>
		<link>http://devgrind.com/2008/01/28/introduction-to-algorithms/</link>
		<comments>http://devgrind.com/2008/01/28/introduction-to-algorithms/#comments</comments>
		<pubDate>Mon, 28 Jan 2008 10:47:43 +0000</pubDate>
		<dc:creator>Arne</dc:creator>
				<category><![CDATA[algorithm]]></category>
		<category><![CDATA[learning]]></category>
		<category><![CDATA[media]]></category>

		<guid isPermaLink="false">http://devgrind.com/2008/01/28/introduction-to-algorithms/</guid>
		<description><![CDATA[Maybe this is old news to some, but I recently discovered that there&#8217;s a complete recording (audio at iTunes, audio and video on the web) of an MIT lecture by Prof. Charles E. Leiserson using &#8220;The Big Book&#8221; Introduction to Algorithms (which he co-wrote) as textbook. I just listened to the first of 25 lectures [...]]]></description>
			<content:encoded><![CDATA[<p>Maybe this is old news to some, but I recently discovered that there&#8217;s a complete recording (audio at <a href="http://deimos3.apple.com/WebObjects/Core.woa/Browse/mit.edu.1298167185">iTunes</a>, audio and video on the <a href="http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/6-046JFall-2005/LectureNotes/index.htm">web</a>) of an <a href="http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/6-046JFall-2005/CourseHome/index.htm">MIT lecture</a> by Prof. Charles E. Leiserson using &#8220;The Big Book&#8221; <a href="http://en.wikipedia.org/wiki/Introduction_to_Algorithms">Introduction to Algorithms</a> (which he co-wrote) as textbook. I just listened to the first of 25 lectures and liked it as a refresher course on the stuff I learned at university years ago. Lecture notes are available online as well.</p>
]]></content:encoded>
			<wfw:commentRss>http://devgrind.com/2008/01/28/introduction-to-algorithms/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to not solve a Sudoku</title>
		<link>http://devgrind.com/2007/04/25/how-to-not-solve-a-sudoku/</link>
		<comments>http://devgrind.com/2007/04/25/how-to-not-solve-a-sudoku/#comments</comments>
		<pubDate>Wed, 25 Apr 2007 10:09:30 +0000</pubDate>
		<dc:creator>Arne</dc:creator>
				<category><![CDATA[agility]]></category>
		<category><![CDATA[algorithm]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[testing]]></category>

		<guid isPermaLink="false">http://devgrind.com/2007/04/25/how-to-not-solve-a-sudoku/</guid>
		<description><![CDATA[I found this at Ravi Mohan&#8217;s One Man Hacking:
Ron Jeffries attempts to create a sudoku solver &#8211; here, here, here, here and here. (You really ought to read these articles. They are ummm&#8230;{cough} &#8230;err&#8230;. enlightening.)
Peter Norvig  creates a Sudoku Solver.
Compare. Learn.
To increase the impact, I suggest you read Norvig&#8217;s essay first. It&#8217;s a great [...]]]></description>
			<content:encoded><![CDATA[<p>I found this at Ravi Mohan&#8217;s <a href="http://ravimohan.blogspot.com/2007/04/learning-from-sudoku-solvers.html">One Man Hacking</a>:</p>
<blockquote><p>Ron Jeffries attempts to create a sudoku solver &#8211; <a href="http://www.xprogramming.com/xpmag/OkSudoku.htm">here</a>,<a href="http://www.xprogramming.com/xpmag/Sudoku2.htm"> here</a>, <a href="http://www.xprogramming.com/xpmag/SudokuMusings.htm">here</a>, <a href="http://www.xprogramming.com/xpmag/Sudoku4.htm">here</a> and <a href="http://www.xprogramming.com/xpmag/sudoku5.htm">here</a>. (You really ought to read these articles. They are ummm&#8230;{cough} &#8230;err&#8230;. enlightening.)</p>
<p>Peter Norvig <a href="http://norvig.com/sudoku.html"> creates a Sudoku Solver</a>.</p>
<p>Compare. Learn.</p></blockquote>
<p>To increase the impact, I suggest you read Norvig&#8217;s essay first. It&#8217;s a great read and the elegance and concision of his solution gave me this tingly warm feeling of sheer developer entrancement. In contrast, Jeffries&#8217; writings on implementing a Sudoku solver by following a test-driven development approach, are just disconcerting. In the end, he abandons his half-finished work after five postings. If he achieves anything, he impressively demonstrates that he&#8217;s not exactly an algorithms expert (which Peter Norvig, of course, is).</p>
<p>But, as Ravi says, there&#8217;s an important lesson to learn here: agile approaches are about software development, not about algorithm design. To be more precise: they are mainly about achieving software quality, not correctness. It&#8217;s the purpose of tests to help the developer maintain functional correctness &#8211; not to guide her towards a correct solution of an algorithmically non-trivial problem, such as Sudoku solving.</p>
<p>I think, this is a good example for the old saying &#8220;If your only tool is a hammer, every problem looks like a nail.&#8221; And it supports my impression that in these days too many people in the development world focus on the methodological aspects of software development and underestimate the importance of fundamentals such as algorithm design.</p>
<p>UPDATE: <a href="http://vladimirlevin.blogspot.com/2007/04/tdd-is-not-algorithm-generator.html">Vlad Levin goes into more detail</a> on this issue.</p>
]]></content:encoded>
			<wfw:commentRss>http://devgrind.com/2007/04/25/how-to-not-solve-a-sudoku/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Algorithms And Data Structures On Drugs</title>
		<link>http://devgrind.com/2007/04/24/algorithms-and-data-structures-on-drugs/</link>
		<comments>http://devgrind.com/2007/04/24/algorithms-and-data-structures-on-drugs/#comments</comments>
		<pubDate>Tue, 24 Apr 2007 10:02:28 +0000</pubDate>
		<dc:creator>Magnus</dc:creator>
				<category><![CDATA[algorithm]]></category>
		<category><![CDATA[data]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://devgrind.com/2007/04/24/algorithms-and-data-structures-on-drugs/</guid>
		<description><![CDATA[What a beautiful blog I have found: Data structures and algorithms, with nice explanations and visualizations for the complete programmer newbie.
]]></description>
			<content:encoded><![CDATA[<p>What a beautiful blog I have found: <a href="http://www.datastructures.info/">Data structures and algorithms</a>, with nice explanations and visualizations for the complete programmer newbie.</p>
]]></content:encoded>
			<wfw:commentRss>http://devgrind.com/2007/04/24/algorithms-and-data-structures-on-drugs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
