<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
     xmlns:admin="http://webns.net/mvcb/"
     xmlns:content="http://purl.org/rss/1.0/modules/content/"
     xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
	<channel> 

	<title>Comments on: Help me to write algorithms</title>
	<link>http://ask.metafilter.com/4574/Help-me-to-write-algorithms/</link>
	<description>Comments on Ask MetaFilter post Help me to write algorithms</description>
	<pubDate>Sun, 11 Jan 2004 21:15:43 -0800</pubDate>
	<lastBuildDate>Sun, 11 Jan 2004 21:15:43 -0800</lastBuildDate>
	<language>en-us</language>
	<docs>http://blogs.law.harvard.edu/tech/rss</docs>
	<ttl>60</ttl>

	<item>
		<title>Question: Help me to write algorithms</title>
		<link>http://ask.metafilter.com/4574/Help-me-to-write-algorithms</link>	
		<description>Can anyone suggest a book, website, etc. that describes the process of breaking a problem down in order to write a program. I have struggled for far too long trying to figure out how to write a program from scratch only to be stumped by the logic involved.&lt;br&gt;
&lt;br&gt;
This question, I think, is outside of a specific language or philosophy (Java, OOP, et al.). It&apos;s just something I haven&apos;t been able to get my head around.</description>
		<guid isPermaLink="false">post:ask.metafilter.com,2004:site.4574</guid>
		<pubDate>Sun, 11 Jan 2004 20:33:20 -0800</pubDate>
		<dc:creator>grefo</dc:creator>
		
			<category>programming</category>
		
			<category>development</category>
		
			<category>oop</category>
		
			<category>java</category>
		
			<category>logic</category>
		
			<category>resources</category>
		
			<category>book</category>
		
			<category>online</category>
		
			<category>web</category>
		
			<category>site</category>
		
			<category>website</category>
		
	</item> <item>
		<title>By: majick</title>
		<link>http://ask.metafilter.com/4574/Help-me-to-write-algorithms#104361</link>	
		<description>I&apos;m sort of grasping, here, but I think perhaps you are talking about &lt;a href=&quot;http://www.hyperdictionary.com/computing/requirements+analysis&quot;&gt;requirements analysis&lt;/a&gt;, which is generally considered to be one of the more important parts of the initial discoery phase of any project and the place from which functional requirements come.&lt;br&gt;
&lt;br&gt;
Perhaps a little time spent reading &lt;a href=&quot;http://www.bredemeyer.com/howto.htm&quot;&gt;about functional requirements and use cases&lt;/a&gt; could be enlightening.&lt;br&gt;
&lt;br&gt;
Be forewarned, though, that the fields of software architecture, analysis, and design are shot through with jargon, a cultish devotion to overdefined analysis processes, and heavy on theory -- typically with very little emphasis on getting things into code.  See &lt;a href=&quot;http://www.sei.cmu.edu/cmmi/&quot;&gt;The Software Engineering Institute&lt;/a&gt; as an example.</description>
		<guid isPermaLink="false">comment:ask.metafilter.com,2004:site.4574-104361</guid>
		<pubDate>Sun, 11 Jan 2004 21:15:43 -0800</pubDate>
		<dc:creator>majick</dc:creator>
	</item><item>
		<title>By: five fresh fish</title>
		<link>http://ask.metafilter.com/4574/Help-me-to-write-algorithms#104363</link>	
		<description>No, I think he&apos;s more wanting the ... thought process of someone who programs.  How to think like a programmer.  The concept.</description>
		<guid isPermaLink="false">comment:ask.metafilter.com,2004:site.4574-104363</guid>
		<pubDate>Sun, 11 Jan 2004 21:26:44 -0800</pubDate>
		<dc:creator>five fresh fish</dc:creator>
	</item><item>
		<title>By: Aaorn</title>
		<link>http://ask.metafilter.com/4574/Help-me-to-write-algorithms#104369</link>	
		<description>I&apos;m not finding any great web pages on this right now, but the programming textbooks I&apos;ve seen generally offer some sort of discussion of &quot;top-down vs. bottom-up&quot; methods of going from a stated problem to a program.&lt;br&gt;
&lt;br&gt;
In a nutshell, &quot;bottom-up&quot; means you start by writing code for all the most basic concievable parts of your program, and then the next layer of code that uses those basic functions, and then more advanced pieces, and so on. &quot;Top-down&quot; is just the opposite: figure out a general framework for the program, but leave out the small functional pieces and fill them in later, after the &quot;big picture&quot; is complete. (Think of top-down like writing an outline.)&lt;br&gt;
&lt;br&gt;
Most books will tell you that which approach you take toward breaking down a problem is just a matter of personal preference. You might not even find it to be a meaningful or useful distinction -- I know plenty of programmers who consider that discussion a waste of time in CS classes.&lt;br&gt;
&lt;br&gt;
Wherever you stand, the best way to get into a programming mindset is to practice. Take devices you&apos;re familiar with -- for example, an alarm clock -- and think through how to implement them as a program. What functions and variables does it need? What would make sense as an object, and what would the methods of that object be? (i.e., what does each object need to *do*?)</description>
		<guid isPermaLink="false">comment:ask.metafilter.com,2004:site.4574-104369</guid>
		<pubDate>Sun, 11 Jan 2004 21:43:07 -0800</pubDate>
		<dc:creator>Aaorn</dc:creator>
	</item><item>
		<title>By: namespan</title>
		<link>http://ask.metafilter.com/4574/Help-me-to-write-algorithms#104373</link>	
		<description>Two possible approaches:&lt;br&gt;
&lt;br&gt;
(1) Study code that does something you might find interesting. What with the number of &quot;cookbooks&quot; that exist out there in addition to free script repositories, this shouldn&apos;t be too hard to find.&lt;br&gt;
&lt;br&gt;
(2) Pick up an introductory college programming textbook... Thinking in Java maybe. Or &lt;a href=&quot;http://www.mindview.net/Books/TIPython&quot;&gt;Thinking in Python&lt;/a&gt;. &lt;br&gt;
&lt;br&gt;
What you really need to do is learn to familiarize yourself with data structures and algorithms as tools. #1 will help you do it largely by practical example. #2 will help you do it by giving yousome background in the underlying theory, some toy examples, and some exercises to help. :) &lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
So</description>
		<guid isPermaLink="false">comment:ask.metafilter.com,2004:site.4574-104373</guid>
		<pubDate>Sun, 11 Jan 2004 21:54:44 -0800</pubDate>
		<dc:creator>namespan</dc:creator>
	</item><item>
		<title>By: holloway</title>
		<link>http://ask.metafilter.com/4574/Help-me-to-write-algorithms#104376</link>	
		<description>Just so you know the functional requirements and use case method is one way, and &lt;a href=&quot;http://linux.oreillynet.com/pub/a/linux/2001/05/04/xp_intro.html&quot;&gt;&lt;acronym title=&quot;eXtreme Programming&quot;&gt;XP&lt;/acronym&gt;&lt;/a&gt; is another (which I use, and I hate the name, as does everyone).</description>
		<guid isPermaLink="false">comment:ask.metafilter.com,2004:site.4574-104376</guid>
		<pubDate>Sun, 11 Jan 2004 22:11:32 -0800</pubDate>
		<dc:creator>holloway</dc:creator>
	</item><item>
		<title>By: kindall</title>
		<link>http://ask.metafilter.com/4574/Help-me-to-write-algorithms#104391</link>	
		<description>&lt;a href=&quot;http://www.amazon.com/exec/obidos/ASIN/0201633612/ref=nosim&quot;&gt;Design Patterns&lt;/a&gt;.</description>
		<guid isPermaLink="false">comment:ask.metafilter.com,2004:site.4574-104391</guid>
		<pubDate>Sun, 11 Jan 2004 23:24:40 -0800</pubDate>
		<dc:creator>kindall</dc:creator>
	</item><item>
		<title>By: sebas</title>
		<link>http://ask.metafilter.com/4574/Help-me-to-write-algorithms#104395</link>	
		<description>If you are talking about modelling (processes in a application, etc) than &lt;a href=&quot;http://www.uml.org/&quot; title=&quot;Unified Modeling Language, UML helps you specify, visualize, and document models of software systems, including their structure and design.&quot;&gt;UML&lt;/a&gt; might be a starting point. &lt;br&gt;
&lt;br&gt;
However if you want to get in the mindset of someone who programs I would suggest to download Java, set a task for yourself in a weekend (eg. write an application) and up your caffeine levels to maximum. At 4 am on Monday morning you will feel like any other programmer.</description>
		<guid isPermaLink="false">comment:ask.metafilter.com,2004:site.4574-104395</guid>
		<pubDate>Sun, 11 Jan 2004 23:48:34 -0800</pubDate>
		<dc:creator>sebas</dc:creator>
	</item><item>
		<title>By: woil</title>
		<link>http://ask.metafilter.com/4574/Help-me-to-write-algorithms#104407</link>	
		<description>The design patterns book recommended by kindall is excellent. It may not be exactly what you&apos;re looking for but basically is a collection of common types of problems in the software engineering field and common solutions to those problems. While your problem may not fit exactly into one of these, this book my help you think along the lines needed to find the proper solution. Again: highly recommended.</description>
		<guid isPermaLink="false">comment:ask.metafilter.com,2004:site.4574-104407</guid>
		<pubDate>Mon, 12 Jan 2004 00:58:00 -0800</pubDate>
		<dc:creator>woil</dc:creator>
	</item><item>
		<title>By: reynaert</title>
		<link>http://ask.metafilter.com/4574/Help-me-to-write-algorithms#104416</link>	
		<description>I&apos;ve got a feeling that you don&apos;t want something about UML or design patterns but rather something like &lt;a href=&quot;http://www.htdp.org/&quot;&gt;How to Design Programs&lt;/a&gt; (the full book is available online).</description>
		<guid isPermaLink="false">comment:ask.metafilter.com,2004:site.4574-104416</guid>
		<pubDate>Mon, 12 Jan 2004 03:35:46 -0800</pubDate>
		<dc:creator>reynaert</dc:creator>
	</item><item>
		<title>By: mischief</title>
		<link>http://ask.metafilter.com/4574/Help-me-to-write-algorithms#104421</link>	
		<description>One question, grefo, do you have any FORMAL training in writing software? Or, are you self-taught?</description>
		<guid isPermaLink="false">comment:ask.metafilter.com,2004:site.4574-104421</guid>
		<pubDate>Mon, 12 Jan 2004 04:02:41 -0800</pubDate>
		<dc:creator>mischief</dc:creator>
	</item><item>
		<title>By: andrew cooke</title>
		<link>http://ask.metafilter.com/4574/Help-me-to-write-algorithms#104438</link>	
		<description>what reynaert said.  in spades.  with a cherry on top.</description>
		<guid isPermaLink="false">comment:ask.metafilter.com,2004:site.4574-104438</guid>
		<pubDate>Mon, 12 Jan 2004 05:26:13 -0800</pubDate>
		<dc:creator>andrew cooke</dc:creator>
	</item><item>
		<title>By: grefo</title>
		<link>http://ask.metafilter.com/4574/Help-me-to-write-algorithms#104448</link>	
		<description>You folks are great! I haven&apos;t been able to read through all the links yet, but &quot;How to Design Programs&quot; looks exactly like what I am looking for.&lt;br&gt;
&lt;br&gt;
To answer mishief&apos;s question, no, I have no formal training. Completely self-taught, if I really know programming at all, heh.&lt;br&gt;
&lt;br&gt;
To better define what I am/was looking for, how &apos;bout an example? Let&apos;s say I want to make a program that composes haiku from a list of words. I know the rules for haiku, but now what? Great example, huh?</description>
		<guid isPermaLink="false">comment:ask.metafilter.com,2004:site.4574-104448</guid>
		<pubDate>Mon, 12 Jan 2004 06:13:47 -0800</pubDate>
		<dc:creator>grefo</dc:creator>
	</item><item>
		<title>By: seanyboy</title>
		<link>http://ask.metafilter.com/4574/Help-me-to-write-algorithms#104459</link>	
		<description>&lt;i&gt;Let&apos;s say I want to make a program that composes haiku from a list of words. &lt;/i&gt;&lt;br&gt;
Nothing like a non-trivial example to start you off. The example you&apos;ve given is actually quite hard, and probably not the sort of thing to jump straight into.</description>
		<guid isPermaLink="false">comment:ask.metafilter.com,2004:site.4574-104459</guid>
		<pubDate>Mon, 12 Jan 2004 06:51:28 -0800</pubDate>
		<dc:creator>seanyboy</dc:creator>
	</item><item>
		<title>By: seanyboy</title>
		<link>http://ask.metafilter.com/4574/Help-me-to-write-algorithms#104461</link>	
		<description>But &lt;a href=&quot;http://www.everypoet.com/haiku/default.htm&quot;&gt;here is an example&lt;/a&gt; of a Haiku Generator. (Use View--&amp;gt;Source)</description>
		<guid isPermaLink="false">comment:ask.metafilter.com,2004:site.4574-104461</guid>
		<pubDate>Mon, 12 Jan 2004 06:56:28 -0800</pubDate>
		<dc:creator>seanyboy</dc:creator>
	</item><item>
		<title>By: andrew cooke</title>
		<link>http://ask.metafilter.com/4574/Help-me-to-write-algorithms#104471</link>	
		<description>some raw material for deciding how much language affects how you write a program &lt;a href=&quot;http://99-bottles-of-beer.ls-la.net/&quot;&gt;here&lt;/a&gt;.&lt;br&gt;
&lt;br&gt;
&lt;small&gt;disclaimer: the haskell version, in all it&apos;s declarative, class-using glory (or not), is mine&lt;/small&gt;</description>
		<guid isPermaLink="false">comment:ask.metafilter.com,2004:site.4574-104471</guid>
		<pubDate>Mon, 12 Jan 2004 07:16:51 -0800</pubDate>
		<dc:creator>andrew cooke</dc:creator>
	</item>
	</channel>
</rss>
