<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments on: Algorithms questions are hard, but that&#8217;s inherent in the subject</title>
	<atom:link href="http://imprompt.us/2009/algorithms-questions-are-hard-but-thats-inherent-in-the-subject/feed/" rel="self" type="application/rss+xml" />
	<link>http://imprompt.us/2009/algorithms-questions-are-hard-but-thats-inherent-in-the-subject/</link>
	<description>Computer Science and Teaching and Other Ancillary Things</description>
	<lastBuildDate>Sat, 24 Jul 2010 12:23:13 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
	<item>
		<title>By: Daniel Stutzbach</title>
		<link>http://imprompt.us/2009/algorithms-questions-are-hard-but-thats-inherent-in-the-subject/comment-page-1/#comment-16799</link>
		<dc:creator>Daniel Stutzbach</dc:creator>
		<pubDate>Tue, 05 Jan 2010 09:28:38 +0000</pubDate>
		<guid isPermaLink="false">http://imprompt.us/?p=149#comment-16799</guid>
		<description>Nearly all of my students were able to complete the compare-sorting-algorithms assignment.  Many had errors in one or more of their programs, and a few students were unable to get some of the algorithms working at all.  IIRC, I gave them two weeks to do it.  I provided the bubble sort implementation, the random data for several values of n, detailed instructions on how to validate the correctness of their algorithm, and on how to measure execution time.  We had already covered insertion sort, quicksort, and mergesort in class, and the course textbook provided pseudo-code.  It was easily the most straightforward programming assignment I gave (but writing code wasn&#039;t really the main purpose of the exercise).&lt;br&gt;&lt;br&gt;YMMV.&lt;br&gt;&lt;br&gt;If you try Skiena, I&#039;d like to hear how that works out.  I used the first edition as reference book for finding algorithms to solve programming competition problems on more than one occasion.</description>
		<content:encoded><![CDATA[<p>Nearly all of my students were able to complete the compare-sorting-algorithms assignment.  Many had errors in one or more of their programs, and a few students were unable to get some of the algorithms working at all.  IIRC, I gave them two weeks to do it.  I provided the bubble sort implementation, the random data for several values of n, detailed instructions on how to validate the correctness of their algorithm, and on how to measure execution time.  We had already covered insertion sort, quicksort, and mergesort in class, and the course textbook provided pseudo-code.  It was easily the most straightforward programming assignment I gave (but writing code wasn&#39;t really the main purpose of the exercise).</p>
<p>YMMV.</p>
<p>If you try Skiena, I&#39;d like to hear how that works out.  I used the first edition as reference book for finding algorithms to solve programming competition problems on more than one occasion.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Peter Boothe</title>
		<link>http://imprompt.us/2009/algorithms-questions-are-hard-but-thats-inherent-in-the-subject/comment-page-1/#comment-16798</link>
		<dc:creator>Peter Boothe</dc:creator>
		<pubDate>Tue, 05 Jan 2010 09:03:09 +0000</pubDate>
		<guid isPermaLink="false">http://imprompt.us/?p=149#comment-16798</guid>
		<description>True!  I took at least one of those algorithms courses myself!&lt;br&gt;&lt;br&gt;I like your &quot;build a few and compare&quot; approach.  I worry that it will fall afoul of the &quot;students can&#039;t code fast enough&quot; problem.  As for books, I would like to take this opportunity to recommend &quot;Algorithm Design&quot; by Kleinberg and Tardos, which served me quite well this term.  I am going to investigate the possibility of using &quot;The Algorithm Design Manual&quot; by Skiena next term, but &quot;Algorithm Design&quot; was light-years ahead of CLRS and a much better reference once the class was over than &quot;Algorithms&quot; by Dasgupta et al. (which is perhaps the most readable algorithms book I&#039;ve yet found)&lt;br&gt;&lt;br&gt;&quot;Algorithms&quot; is a *fantastic* book however.  I recommend checking it out online at &lt;a href=&quot;http://www.cs.berkeley.edu/%7Evazirani/algorithms.html&quot; rel=&quot;nofollow&quot;&gt;http://www.cs.berkeley.edu/~vazirani/algorithms...&lt;/a&gt;</description>
		<content:encoded><![CDATA[<p>True!  I took at least one of those algorithms courses myself!</p>
<p>I like your &#8220;build a few and compare&#8221; approach.  I worry that it will fall afoul of the &#8220;students can&#39;t code fast enough&#8221; problem.  As for books, I would like to take this opportunity to recommend &#8220;Algorithm Design&#8221; by Kleinberg and Tardos, which served me quite well this term.  I am going to investigate the possibility of using &#8220;The Algorithm Design Manual&#8221; by Skiena next term, but &#8220;Algorithm Design&#8221; was light-years ahead of CLRS and a much better reference once the class was over than &#8220;Algorithms&#8221; by Dasgupta et al. (which is perhaps the most readable algorithms book I&#39;ve yet found)</p>
<p>&#8220;Algorithms&#8221; is a *fantastic* book however.  I recommend checking it out online at <a href="http://www.cs.berkeley.edu/%7Evazirani/algorithms.html" rel="nofollow"></a><a href="http://www.cs.berkeley.edu/~vazirani/algorithms.." rel="nofollow">http://www.cs.berkeley.edu/~vazirani/algorithms..</a>.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Daniel Stutzbach</title>
		<link>http://imprompt.us/2009/algorithms-questions-are-hard-but-thats-inherent-in-the-subject/comment-page-1/#comment-16797</link>
		<dc:creator>Daniel Stutzbach</dc:creator>
		<pubDate>Tue, 05 Jan 2010 08:55:42 +0000</pubDate>
		<guid isPermaLink="false">http://imprompt.us/?p=149#comment-16797</guid>
		<description>I think there&#039;s a third way to teach an Algorithms class, and that&#039;s to teach it as a math course where you spend all of the time analyzing the performance of algorithms and no time writing actual code.  Both of the Algorithms classes I took were like that.  &lt;br&gt;&lt;br&gt;Needless to say, I&#039;m a fan of the &quot;why&quot; style you&#039;re describing. :-)&lt;br&gt;&lt;br&gt;When I taught the Algorithms course at SMU as an Adjunct a few years back, I tried to give the students a framework for categorizing algorithms (greedy, dynamic programming, and so forth) and throw all kinds of problems at them to give them a sense for which kinds of problems could be solved with which kinds of algorithms.  I also tried to give them a sense for the benefits and drawbacks of different kinds of algorithms (e.g., greedy algorithms are easy to write and fast!  Oh, but if you use one you have to write a proof of correctness...)&lt;br&gt;&lt;br&gt;At one point I assigned the students a performance study where they had to implement several different sorting algorithms (bubble sort, insertion sort, quicksort, mergesort, and &quot;call the language&#039;s built-in sort function&quot;) and measure their run time for many different n.  Suddenly all of that abstract big-O stuff became concrete as they twiddled their thumbs waiting for bubble sort and insertion sort to complete.  It was cool watching that &quot;click&quot; for them.&lt;br&gt;&lt;br&gt;I think &quot;the language&#039;s built-in sort function&quot; may have also humbled a few egos.</description>
		<content:encoded><![CDATA[<p>I think there&#39;s a third way to teach an Algorithms class, and that&#39;s to teach it as a math course where you spend all of the time analyzing the performance of algorithms and no time writing actual code.  Both of the Algorithms classes I took were like that.  </p>
<p>Needless to say, I&#39;m a fan of the &#8220;why&#8221; style you&#39;re describing. <img src='http://imprompt.us/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>When I taught the Algorithms course at SMU as an Adjunct a few years back, I tried to give the students a framework for categorizing algorithms (greedy, dynamic programming, and so forth) and throw all kinds of problems at them to give them a sense for which kinds of problems could be solved with which kinds of algorithms.  I also tried to give them a sense for the benefits and drawbacks of different kinds of algorithms (e.g., greedy algorithms are easy to write and fast!  Oh, but if you use one you have to write a proof of correctness&#8230;)</p>
<p>At one point I assigned the students a performance study where they had to implement several different sorting algorithms (bubble sort, insertion sort, quicksort, mergesort, and &#8220;call the language&#39;s built-in sort function&#8221;) and measure their run time for many different n.  Suddenly all of that abstract big-O stuff became concrete as they twiddled their thumbs waiting for bubble sort and insertion sort to complete.  It was cool watching that &#8220;click&#8221; for them.</p>
<p>I think &#8220;the language&#39;s built-in sort function&#8221; may have also humbled a few egos.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
