<?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: What Computer Science could borrow from the English class</title>
	<atom:link href="http://compsci.ca/blog/what-computer-science-could-borrow-from-the-english-class/feed/" rel="self" type="application/rss+xml" />
	<link>http://compsci.ca/blog/what-computer-science-could-borrow-from-the-english-class/</link>
	<description>Programming, Education, Computer Science</description>
	<lastBuildDate>Thu, 24 Feb 2011 18:08:53 -0500</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Tony</title>
		<link>http://compsci.ca/blog/what-computer-science-could-borrow-from-the-english-class/comment-page-1/#comment-21451</link>
		<dc:creator>Tony</dc:creator>
		<pubDate>Sun, 20 May 2007 04:34:01 +0000</pubDate>
		<guid isPermaLink="false">http://compsci.ca/blog/what-computer-science-could-borrow-from-the-english-class/#comment-21451</guid>
		<description>thx Katie - I&#039;ll check out Richard&#039;s website :)

Justin - thank you for sharing! Your situation is quite representative of a promising computer science student, held back by the flaws of the educational system. Just take control, push your own boundaries and hold on - it gets better ;)

@M Easter, Woofster - alright, so creativity is not desired in routine, code-monkey tasks. Though Engineers and Computer Scientists don&#039;t want to code monkey around either. Creativity is essential to solving new problems and pushing the boundaries of existing technology.

So yes - programming _is_ applied math. The said math can also be applied in new, creative ways for fun and profit.</description>
		<content:encoded><![CDATA[<p>thx Katie &#8211; I&#8217;ll check out Richard&#8217;s website <img src='http://compsci.ca/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Justin &#8211; thank you for sharing! Your situation is quite representative of a promising computer science student, held back by the flaws of the educational system. Just take control, push your own boundaries and hold on &#8211; it gets better <img src='http://compsci.ca/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>@M Easter, Woofster &#8211; alright, so creativity is not desired in routine, code-monkey tasks. Though Engineers and Computer Scientists don&#8217;t want to code monkey around either. Creativity is essential to solving new problems and pushing the boundaries of existing technology.</p>
<p>So yes &#8211; programming _is_ applied math. The said math can also be applied in new, creative ways for fun and profit.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: M Easter</title>
		<link>http://compsci.ca/blog/what-computer-science-could-borrow-from-the-english-class/comment-page-1/#comment-20865</link>
		<dc:creator>M Easter</dc:creator>
		<pubDate>Fri, 18 May 2007 03:11:42 +0000</pubDate>
		<guid isPermaLink="false">http://compsci.ca/blog/what-computer-science-could-borrow-from-the-english-class/#comment-20865</guid>
		<description>I disagree with Woofster.

I&#039;m not sure that we want engineers to be poets, but we do want them to be composers. To know that there are a variety of compositional tools at their disposal, and there is a standard approach of knowing when to use them.

It may well be a romantic whimsy, but I see the works by Knuth, a great algorithm book like CLR, etc as being on par with the scores of Beethoven, Mozart, Bach.  They should be studied with a view to that sense of virtuosity.  Also, E Raymond&#039;s book on the philosophy of Unix is a great &quot;computational appreciation&quot;.

It is true that often engineers are stuck in rather routine situations.  In the musical analogy, we are writing jingles for commercials and can&#039;t really take chances with creativity.  A jingle for McD&#039;s that starts with a weird Chopin chord change isn&#039;t going to fly.  Neither will a payroll system that is based entirely on Ruby closures.

But the awareness of where we are on the spectrum, and the sense of wonder for &quot;the greats&quot; is of tremendous value.

What&#039;s more, it could energize young students.  I&#039;m not sure that &quot;don&#039;t kid yourself: coding is applied math&quot; is exactly the message we want to send.  At the very least we could say: 

&quot;coding is a working with a particular instance of a Turing machine, which is very much _pure_ math. Speaking of Turing, let me tell you about this fantastic computational composer......&quot;</description>
		<content:encoded><![CDATA[<p>I disagree with Woofster.</p>
<p>I&#8217;m not sure that we want engineers to be poets, but we do want them to be composers. To know that there are a variety of compositional tools at their disposal, and there is a standard approach of knowing when to use them.</p>
<p>It may well be a romantic whimsy, but I see the works by Knuth, a great algorithm book like CLR, etc as being on par with the scores of Beethoven, Mozart, Bach.  They should be studied with a view to that sense of virtuosity.  Also, E Raymond&#8217;s book on the philosophy of Unix is a great &#8220;computational appreciation&#8221;.</p>
<p>It is true that often engineers are stuck in rather routine situations.  In the musical analogy, we are writing jingles for commercials and can&#8217;t really take chances with creativity.  A jingle for McD&#8217;s that starts with a weird Chopin chord change isn&#8217;t going to fly.  Neither will a payroll system that is based entirely on Ruby closures.</p>
<p>But the awareness of where we are on the spectrum, and the sense of wonder for &#8220;the greats&#8221; is of tremendous value.</p>
<p>What&#8217;s more, it could energize young students.  I&#8217;m not sure that &#8220;don&#8217;t kid yourself: coding is applied math&#8221; is exactly the message we want to send.  At the very least we could say: </p>
<p>&#8220;coding is a working with a particular instance of a Turing machine, which is very much _pure_ math. Speaking of Turing, let me tell you about this fantastic computational composer&#8230;&#8230;&#8221;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Justin Belanger</title>
		<link>http://compsci.ca/blog/what-computer-science-could-borrow-from-the-english-class/comment-page-1/#comment-20830</link>
		<dc:creator>Justin Belanger</dc:creator>
		<pubDate>Fri, 18 May 2007 00:52:52 +0000</pubDate>
		<guid isPermaLink="false">http://compsci.ca/blog/what-computer-science-could-borrow-from-the-english-class/#comment-20830</guid>
		<description>Being a computer science student (in Grade 11, no less) myself, I have to admit that your article really made me think. After reading it, I questioned, &quot;do I really know anything about programming?&quot; Through all the lectures, the assignments, the work, I thought I had become adept in programming. As it turns out, I was wrong. I still do not understand the concepts of the language (Turing) that I&#039;ve been learning, though I&#039;ve gained the questionably useful ability to recite snippets of memorized patterns of code fairly easily. The worst part of it is that I really do enjoy programming. I find it highly rewarding, entertaining, and challenging, but having taken myself outside the &quot;comfort zone&quot;, I&#039;ve realized that I don&#039;t know the first thing about WHY I program the things I do. And, unfortunately, that&#039;s sucked a lot of the enjoyment and meaning out of programming for me.</description>
		<content:encoded><![CDATA[<p>Being a computer science student (in Grade 11, no less) myself, I have to admit that your article really made me think. After reading it, I questioned, &#8220;do I really know anything about programming?&#8221; Through all the lectures, the assignments, the work, I thought I had become adept in programming. As it turns out, I was wrong. I still do not understand the concepts of the language (Turing) that I&#8217;ve been learning, though I&#8217;ve gained the questionably useful ability to recite snippets of memorized patterns of code fairly easily. The worst part of it is that I really do enjoy programming. I find it highly rewarding, entertaining, and challenging, but having taken myself outside the &#8220;comfort zone&#8221;, I&#8217;ve realized that I don&#8217;t know the first thing about WHY I program the things I do. And, unfortunately, that&#8217;s sucked a lot of the enjoyment and meaning out of programming for me.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Katie</title>
		<link>http://compsci.ca/blog/what-computer-science-could-borrow-from-the-english-class/comment-page-1/#comment-20273</link>
		<dc:creator>Katie</dc:creator>
		<pubDate>Tue, 15 May 2007 16:55:02 +0000</pubDate>
		<guid isPermaLink="false">http://compsci.ca/blog/what-computer-science-could-borrow-from-the-english-class/#comment-20273</guid>
		<description>You might be interested in Richard Gabriel.  He advocates bringing writing workshop techniques into coding.  His website is here: http://www.dreamsongs.com/.</description>
		<content:encoded><![CDATA[<p>You might be interested in Richard Gabriel.  He advocates bringing writing workshop techniques into coding.  His website is here: <a href="http://www.dreamsongs.com/." rel="nofollow">http://www.dreamsongs.com/.</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Konstantin Lopyrev</title>
		<link>http://compsci.ca/blog/what-computer-science-could-borrow-from-the-english-class/comment-page-1/#comment-19951</link>
		<dc:creator>Konstantin Lopyrev</dc:creator>
		<pubDate>Mon, 14 May 2007 06:24:31 +0000</pubDate>
		<guid isPermaLink="false">http://compsci.ca/blog/what-computer-science-could-borrow-from-the-english-class/#comment-19951</guid>
		<description>Hey, music and math used to be studied as a double major!

KL</description>
		<content:encoded><![CDATA[<p>Hey, music and math used to be studied as a double major!</p>
<p>KL</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Woofster</title>
		<link>http://compsci.ca/blog/what-computer-science-could-borrow-from-the-english-class/comment-page-1/#comment-19902</link>
		<dc:creator>Woofster</dc:creator>
		<pubDate>Mon, 14 May 2007 00:15:22 +0000</pubDate>
		<guid isPermaLink="false">http://compsci.ca/blog/what-computer-science-could-borrow-from-the-english-class/#comment-19902</guid>
		<description>The &quot;code is poetry&quot; metaphor is common enough and tempting to boot, but it&#039;s not really apt. The classical music metaphor isn&#039;t much of an improvement. All of the points listed by M Easter are, point for point, applicable to literature and poetry.

The temptation lies with the knowledge that coding -- past a certain point of complexity, and given certain problem domains -- frequently involves a considerable amount of creativity on the part of the coder. In my experience, however, a great deal of that creativity given even typically complex problem domains involves a filling in for inexperience which, in the long run, is merely a reinventing of the wheel. In a perfect world, in fact, free-wheeling creativity is not really what we want from programmers. What we want is programs which work, reliably and bug-free. Creativity may be called for in the inteface, or in optimization of operations, data storage, etc. But we don&#039;t want engineers to be poets, not really. We want them to be smart, certainly, and able to translate demanding requirements into a semblance of simplicity -- but poets? 

The best, most successful poetry frequently relies on ambiguity and irresolvability. Very often the most profound poems point to tensions in the human experience -- a way of looking at the world which teaches us about ourselves and which instructs in recreating the &quot;feeling of the feeling&quot; of a certain emotional experience. It is true that rigorous analysis is called for in English classes, but the character of this analysis is never pointing towards coming up with a provable solution to a literary problem.

As a coder I do understand what this post is trying to say, because I&#039;ve had, many times, to employ creativity in solving problems. But in the end I think that this is fundamentally a mathematical exercise. There&#039;s really no getting around the fact that coding is applied math. Not as much fun as a metaphor, but perhaps more apt in looking at the real problem of students not understanding basic concepts (and also more apt in understanding why coding may &quot;feel&quot; more like music, which has many mathematical facets).

Just my .02.</description>
		<content:encoded><![CDATA[<p>The &#8220;code is poetry&#8221; metaphor is common enough and tempting to boot, but it&#8217;s not really apt. The classical music metaphor isn&#8217;t much of an improvement. All of the points listed by M Easter are, point for point, applicable to literature and poetry.</p>
<p>The temptation lies with the knowledge that coding &#8212; past a certain point of complexity, and given certain problem domains &#8212; frequently involves a considerable amount of creativity on the part of the coder. In my experience, however, a great deal of that creativity given even typically complex problem domains involves a filling in for inexperience which, in the long run, is merely a reinventing of the wheel. In a perfect world, in fact, free-wheeling creativity is not really what we want from programmers. What we want is programs which work, reliably and bug-free. Creativity may be called for in the inteface, or in optimization of operations, data storage, etc. But we don&#8217;t want engineers to be poets, not really. We want them to be smart, certainly, and able to translate demanding requirements into a semblance of simplicity &#8212; but poets? </p>
<p>The best, most successful poetry frequently relies on ambiguity and irresolvability. Very often the most profound poems point to tensions in the human experience &#8212; a way of looking at the world which teaches us about ourselves and which instructs in recreating the &#8220;feeling of the feeling&#8221; of a certain emotional experience. It is true that rigorous analysis is called for in English classes, but the character of this analysis is never pointing towards coming up with a provable solution to a literary problem.</p>
<p>As a coder I do understand what this post is trying to say, because I&#8217;ve had, many times, to employ creativity in solving problems. But in the end I think that this is fundamentally a mathematical exercise. There&#8217;s really no getting around the fact that coding is applied math. Not as much fun as a metaphor, but perhaps more apt in looking at the real problem of students not understanding basic concepts (and also more apt in understanding why coding may &#8220;feel&#8221; more like music, which has many mathematical facets).</p>
<p>Just my .02.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: M Easter</title>
		<link>http://compsci.ca/blog/what-computer-science-could-borrow-from-the-english-class/comment-page-1/#comment-19774</link>
		<dc:creator>M Easter</dc:creator>
		<pubDate>Sun, 13 May 2007 18:06:22 +0000</pubDate>
		<guid isPermaLink="false">http://compsci.ca/blog/what-computer-science-could-borrow-from-the-english-class/#comment-19774</guid>
		<description>I completely agree that there is an artistic side to computer science.  In fact, this very thought is a major theme to my blog.

However, I think that music provides a much better analogy than poetry or English lit.

Music, particularly classical music has these ideas:

-- a culture of architecture and patterns
-- a strong sense of &quot;creativity within certain rules&quot; combined with a rare, breath-taking applications of &quot;breaking the rules&quot; for certain effect
-- a long history of master composers and apprentices learning from the masters
-- many large-scale undertakings (e.g. symphony) where there are many layers and a lot of things going on at one time, which if not handled correctly, can be chaos

As I write this, my inner voice is reminding me that poetry has similar ideas.  But somehow, music seems like a stronger metaphor.  Perhaps it comes from pair-programming: one can _see_ 2 people sitting at a piano, working out ideas, creating etc.  I don&#039;t get that sense with respect to writing.</description>
		<content:encoded><![CDATA[<p>I completely agree that there is an artistic side to computer science.  In fact, this very thought is a major theme to my blog.</p>
<p>However, I think that music provides a much better analogy than poetry or English lit.</p>
<p>Music, particularly classical music has these ideas:</p>
<p>&#8211; a culture of architecture and patterns<br />
&#8211; a strong sense of &#8220;creativity within certain rules&#8221; combined with a rare, breath-taking applications of &#8220;breaking the rules&#8221; for certain effect<br />
&#8211; a long history of master composers and apprentices learning from the masters<br />
&#8211; many large-scale undertakings (e.g. symphony) where there are many layers and a lot of things going on at one time, which if not handled correctly, can be chaos</p>
<p>As I write this, my inner voice is reminding me that poetry has similar ideas.  But somehow, music seems like a stronger metaphor.  Perhaps it comes from pair-programming: one can _see_ 2 people sitting at a piano, working out ideas, creating etc.  I don&#8217;t get that sense with respect to writing.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Konstantin Lopyrev</title>
		<link>http://compsci.ca/blog/what-computer-science-could-borrow-from-the-english-class/comment-page-1/#comment-19541</link>
		<dc:creator>Konstantin Lopyrev</dc:creator>
		<pubDate>Sat, 12 May 2007 17:28:37 +0000</pubDate>
		<guid isPermaLink="false">http://compsci.ca/blog/what-computer-science-could-borrow-from-the-english-class/#comment-19541</guid>
		<description>I agree entirely with what you are saying. Just learning the syntax of a language doesn&#039;t teach you anything about computer science. Computer Science is more about problem solving and algorithms, than pure coding. Nobody wants to end up being a code monkey, but that&#039;s what I see computer science classes teaching you sometimes. I remember that in grade 10, I decided to skip the grade 10 computer science course and go to the grade 11 one. Boy, that was a smart dicision. Besides being particularly slow, my computer science teacher was very good in that he focused on more than just writing code. I remember that the very first assignment he gave everyone taking the course had nothing to do with programming. It was purely problem solving. When I took the grade 12 class, we spent a lot of time learning algorithms and data structures. The teacher assumed that you know most of the syntax already and didn&#039;t waste class time teaching us how to code what he&#039;s talking about. I found that to be a great approach. Clearly, it was. By the end of Grade 12, all of us were writing simple AI&#039;s for a game called Connect 4 or Hex. After taking grade 11 and grade 12, I feel that I&#039;ve learned quite a lot about computer science, and that is shown by my good performance on programming contests.
To compare, I sometimes go into the grade 10 class that is being taught by a teacher who has very little experience in problem solving and algorithms. All I ever see the grade 10 class doing is writing programs to display some sort of text on the screen. Here is the typical class assignment (Imagine it in a horrible chinese accent): &quot;Ok... class... So, today you&#039;re going to be making a program to read in the name of several items that can be sold in a shop. Each item will be assigned a price and a quantity. Your output will be the total price.&quot; Perhaps, when you&#039;re in the first month of Computer Science and you&#039;re just learning basic syntax, that would be a good assignment. However, if you spend an entire semester doing assignments similar to that, you will never want to take Computer Science again. I feel that my school&#039;s grade 10 computer science course discourages people to continue with the grade 11 and grade 12 courses. That is a great loss, because people who would potentially grow up to become great Computer Scientist go on to do something else.

KL</description>
		<content:encoded><![CDATA[<p>I agree entirely with what you are saying. Just learning the syntax of a language doesn&#8217;t teach you anything about computer science. Computer Science is more about problem solving and algorithms, than pure coding. Nobody wants to end up being a code monkey, but that&#8217;s what I see computer science classes teaching you sometimes. I remember that in grade 10, I decided to skip the grade 10 computer science course and go to the grade 11 one. Boy, that was a smart dicision. Besides being particularly slow, my computer science teacher was very good in that he focused on more than just writing code. I remember that the very first assignment he gave everyone taking the course had nothing to do with programming. It was purely problem solving. When I took the grade 12 class, we spent a lot of time learning algorithms and data structures. The teacher assumed that you know most of the syntax already and didn&#8217;t waste class time teaching us how to code what he&#8217;s talking about. I found that to be a great approach. Clearly, it was. By the end of Grade 12, all of us were writing simple AI&#8217;s for a game called Connect 4 or Hex. After taking grade 11 and grade 12, I feel that I&#8217;ve learned quite a lot about computer science, and that is shown by my good performance on programming contests.<br />
To compare, I sometimes go into the grade 10 class that is being taught by a teacher who has very little experience in problem solving and algorithms. All I ever see the grade 10 class doing is writing programs to display some sort of text on the screen. Here is the typical class assignment (Imagine it in a horrible chinese accent): &#8220;Ok&#8230; class&#8230; So, today you&#8217;re going to be making a program to read in the name of several items that can be sold in a shop. Each item will be assigned a price and a quantity. Your output will be the total price.&#8221; Perhaps, when you&#8217;re in the first month of Computer Science and you&#8217;re just learning basic syntax, that would be a good assignment. However, if you spend an entire semester doing assignments similar to that, you will never want to take Computer Science again. I feel that my school&#8217;s grade 10 computer science course discourages people to continue with the grade 11 and grade 12 courses. That is a great loss, because people who would potentially grow up to become great Computer Scientist go on to do something else.</p>
<p>KL</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mike Minutillo</title>
		<link>http://compsci.ca/blog/what-computer-science-could-borrow-from-the-english-class/comment-page-1/#comment-19405</link>
		<dc:creator>Mike Minutillo</dc:creator>
		<pubDate>Sat, 12 May 2007 01:22:47 +0000</pubDate>
		<guid isPermaLink="false">http://compsci.ca/blog/what-computer-science-could-borrow-from-the-english-class/#comment-19405</guid>
		<description>I agree that writing code is a small part of Computer Science but it is a very important one. It is the language that is used to convey higher-level constructs.

I definitely agree that the &lt;strong&gt;survey of languages&lt;/strong&gt; is a terrible way to learn. It confuses new people and leaves them with no real understanding of anything. 

The problem with that is that they will learn &lt;i&gt;the ruby way&lt;/i&gt; or &lt;i&gt;the C way&lt;/i&gt; of doing things and they will pick up some very bad habits which will eventually lead them to write C code in LISP (OK so that&#039;s a stretch but you get the idea).

Is it possible to teach these concepts without coding? I&#039;ve always liked the tactile approach of getting a bunch of people to be data and then some other person to organize that data somehow and then describe how they do it. Getting students to &quot;discover&quot; bubble-sort this way is awesome fun.</description>
		<content:encoded><![CDATA[<p>I agree that writing code is a small part of Computer Science but it is a very important one. It is the language that is used to convey higher-level constructs.</p>
<p>I definitely agree that the <strong>survey of languages</strong> is a terrible way to learn. It confuses new people and leaves them with no real understanding of anything. </p>
<p>The problem with that is that they will learn <i>the ruby way</i> or <i>the C way</i> of doing things and they will pick up some very bad habits which will eventually lead them to write C code in LISP (OK so that&#8217;s a stretch but you get the idea).</p>
<p>Is it possible to teach these concepts without coding? I&#8217;ve always liked the tactile approach of getting a bunch of people to be data and then some other person to organize that data somehow and then describe how they do it. Getting students to &#8220;discover&#8221; bubble-sort this way is awesome fun.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tony</title>
		<link>http://compsci.ca/blog/what-computer-science-could-borrow-from-the-english-class/comment-page-1/#comment-19272</link>
		<dc:creator>Tony</dc:creator>
		<pubDate>Fri, 11 May 2007 16:06:18 +0000</pubDate>
		<guid isPermaLink="false">http://compsci.ca/blog/what-computer-science-could-borrow-from-the-english-class/#comment-19272</guid>
		<description>Excellent points Mike, though the experience of &quot;written code&quot; is given way too much emphasis. Students have had the same 10 years of experience with logic, math, and to a lesser degree - scientific approach.

Could the concept of a repeated task, until a condition is met, be explained without using the term &lt;strong&gt;for loop&lt;/strong&gt; or a paramount concern of how many &lt;a href=&quot;http://compsci.ca/blog/semicolon-ninja/&quot; title=&quot;Semicolon ninja&quot; rel=&quot;nofollow&quot;&gt;semi-colons&lt;/a&gt; it requires?

I&#039;ve heard of Computer Science classes where the same material was taught in grades 10, 11, and 12 - just with a different programming languages each year. Great, kids will know how to write &quot;for loop&quot; in 3 different ways, and still not understand as to why.</description>
		<content:encoded><![CDATA[<p>Excellent points Mike, though the experience of &#8220;written code&#8221; is given way too much emphasis. Students have had the same 10 years of experience with logic, math, and to a lesser degree &#8211; scientific approach.</p>
<p>Could the concept of a repeated task, until a condition is met, be explained without using the term <strong>for loop</strong> or a paramount concern of how many <a href="http://compsci.ca/blog/semicolon-ninja/" title="Semicolon ninja" rel="nofollow">semi-colons</a> it requires?</p>
<p>I&#8217;ve heard of Computer Science classes where the same material was taught in grades 10, 11, and 12 &#8211; just with a different programming languages each year. Great, kids will know how to write &#8220;for loop&#8221; in 3 different ways, and still not understand as to why.</p>
]]></content:encoded>
	</item>
</channel>
</rss>


