<?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: Computer Science at Waterloo: the new Scheme of things</title>
	<atom:link href="http://compsci.ca/blog/computer-science-at-waterloo-the-new-scheme-of-things/feed/" rel="self" type="application/rss+xml" />
	<link>http://compsci.ca/blog/computer-science-at-waterloo-the-new-scheme-of-things/</link>
	<description>Programming, Education, Computer Science</description>
	<lastBuildDate>Sun, 21 Feb 2010 14:53:51 -0800</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Andrew Whaley</title>
		<link>http://compsci.ca/blog/computer-science-at-waterloo-the-new-scheme-of-things/comment-page-1/#comment-109956</link>
		<dc:creator>Andrew Whaley</dc:creator>
		<pubDate>Sun, 09 Nov 2008 21:28:17 +0000</pubDate>
		<guid isPermaLink="false">http://compsci.ca/blog/computer-science-at-waterloo-the-new-scheme-of-things/#comment-109956</guid>
		<description>I&#039;m an experienced software engineer in industry and whilst I sympathize with the view that students should learn a &#039;commercial&#039; language like Java, I disagree.

I work with many Java developers who are reasonably competent in Java but can&#039;t program to save their lives ! They may know the syntax and the API&#039;s but they don&#039;t know the basics like abstract data types and recursion. 

It&#039;s far better that they learn the basics using any language (and Scheme is better than most) before they learn Java - it&#039;s only syntax and API&#039;s and doesn&#039;t take long to learn. 

Besides, who&#039;s to say that Java will still be widely used 5 years from now - I for one think that it&#039;s had it&#039;s day.</description>
		<content:encoded><![CDATA[<p>I&#8217;m an experienced software engineer in industry and whilst I sympathize with the view that students should learn a &#8216;commercial&#8217; language like Java, I disagree.</p>
<p>I work with many Java developers who are reasonably competent in Java but can&#8217;t program to save their lives ! They may know the syntax and the API&#8217;s but they don&#8217;t know the basics like abstract data types and recursion. </p>
<p>It&#8217;s far better that they learn the basics using any language (and Scheme is better than most) before they learn Java &#8211; it&#8217;s only syntax and API&#8217;s and doesn&#8217;t take long to learn. </p>
<p>Besides, who&#8217;s to say that Java will still be widely used 5 years from now &#8211; I for one think that it&#8217;s had it&#8217;s day.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Prabhakar Ragde</title>
		<link>http://compsci.ca/blog/computer-science-at-waterloo-the-new-scheme-of-things/comment-page-1/#comment-103740</link>
		<dc:creator>Prabhakar Ragde</dc:creator>
		<pubDate>Fri, 18 Apr 2008 23:21:30 +0000</pubDate>
		<guid isPermaLink="false">http://compsci.ca/blog/computer-science-at-waterloo-the-new-scheme-of-things/#comment-103740</guid>
		<description>I think this link:

http://www.cs.uwaterloo.ca/prospect/placement.shtml

plus the course descriptions linked at the bottom of that page is as close as it gets to a formal description of the changes. The Web pages for the new courses will come on stream at some point (135 and 136 already exist, 145 is under development).

The natural place to discuss Java is in CS 246, but I don&#039;t know how its instructors will deal with the changes. There is a subcommittee looking at changes to the second-year curriculum.</description>
		<content:encoded><![CDATA[<p>I think this link:</p>
<p><a href="http://www.cs.uwaterloo.ca/prospect/placement.shtml" rel="nofollow">http://www.cs.uwaterloo.ca/prospect/placement.shtml</a></p>
<p>plus the course descriptions linked at the bottom of that page is as close as it gets to a formal description of the changes. The Web pages for the new courses will come on stream at some point (135 and 136 already exist, 145 is under development).</p>
<p>The natural place to discuss Java is in CS 246, but I don&#8217;t know how its instructors will deal with the changes. There is a subcommittee looking at changes to the second-year curriculum.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Fady Samuel</title>
		<link>http://compsci.ca/blog/computer-science-at-waterloo-the-new-scheme-of-things/comment-page-1/#comment-103738</link>
		<dc:creator>Fady Samuel</dc:creator>
		<pubDate>Fri, 18 Apr 2008 23:13:36 +0000</pubDate>
		<guid isPermaLink="false">http://compsci.ca/blog/computer-science-at-waterloo-the-new-scheme-of-things/#comment-103738</guid>
		<description>@Prabhakar:

Ohh I didn&#039;t realize stream 4 no longer exists. That seems reasonable. Does Computer Science at Waterloo still introduce Java to the students at some point? Concepts are very important of course, but so is code. Is there an outline somewhere of all the changes in the first and second year curriculum? Thanks.</description>
		<content:encoded><![CDATA[<p>@Prabhakar:</p>
<p>Ohh I didn&#8217;t realize stream 4 no longer exists. That seems reasonable. Does Computer Science at Waterloo still introduce Java to the students at some point? Concepts are very important of course, but so is code. Is there an outline somewhere of all the changes in the first and second year curriculum? Thanks.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tony</title>
		<link>http://compsci.ca/blog/computer-science-at-waterloo-the-new-scheme-of-things/comment-page-1/#comment-103725</link>
		<dc:creator>Tony</dc:creator>
		<pubDate>Fri, 18 Apr 2008 14:33:32 +0000</pubDate>
		<guid isPermaLink="false">http://compsci.ca/blog/computer-science-at-waterloo-the-new-scheme-of-things/#comment-103725</guid>
		<description>@Fady -- I personally doubt that having classes be taught in Scheme will impair students&#039; co-op employability. I think so because Computer Science classes are about concepts (algorithms, data structures, proofs, math (being a UW student yourself, you should know how much Math goes into the program)), Java was simply a tool used to express some of the ideas, but it was never taught as a language. Really, one should be looking at colleges if they are after a Java-shop.

A frosh student, having taken no computer science in high school, but having done a term (or even two) of Java based CS classes, is will not be significantly more qualified for co-op jobs, than a student of similar background having spend as much instructional time with Scheme. By the 2nd year, having also seen C and Python, the &quot;lack&quot; of Java will be even less significant.

To quote Robert, from above in the comments:
&lt;blockquote&gt;&lt;p&gt;[Scheme] has actually helped me on my co-op interviews ... . Interviewers commented on seeing scheme on my resume, and they were pleased with the answers I gave.&lt;/p&gt;&lt;/blockquote&gt;</description>
		<content:encoded><![CDATA[<p>@Fady &#8212; I personally doubt that having classes be taught in Scheme will impair students&#8217; co-op employability. I think so because Computer Science classes are about concepts (algorithms, data structures, proofs, math (being a UW student yourself, you should know how much Math goes into the program)), Java was simply a tool used to express some of the ideas, but it was never taught as a language. Really, one should be looking at colleges if they are after a Java-shop.</p>
<p>A frosh student, having taken no computer science in high school, but having done a term (or even two) of Java based CS classes, is will not be significantly more qualified for co-op jobs, than a student of similar background having spend as much instructional time with Scheme. By the 2nd year, having also seen C and Python, the &#8220;lack&#8221; of Java will be even less significant.</p>
<p>To quote Robert, from above in the comments:</p>
<blockquote><p>[Scheme] has actually helped me on my co-op interviews &#8230; . Interviewers commented on seeing scheme on my resume, and they were pleased with the answers I gave.</p>
</blockquote>
]]></content:encoded>
	</item>
	<item>
		<title>By: Prabhakar Ragde</title>
		<link>http://compsci.ca/blog/computer-science-at-waterloo-the-new-scheme-of-things/comment-page-1/#comment-103724</link>
		<dc:creator>Prabhakar Ragde</dc:creator>
		<pubDate>Fri, 18 Apr 2008 14:24:04 +0000</pubDate>
		<guid isPermaLink="false">http://compsci.ca/blog/computer-science-at-waterloo-the-new-scheme-of-things/#comment-103724</guid>
		<description>Fady: By coincidence, notification of your post arrived as I was preparing a presentation to co-op coordinators about the changes. Co-op has representation on the curricular bodies at faculty and university levels and has no objections to the new curriculum. Here&#039;s a good recent blog post addressing the general issue:

http://www.amazon.com/gp/blog/post/PLNK1VEO3LPERI26L

Note that stream-4 goes away as of this fall, so that all Math/CS students will have experience with C or Python before their first work term.</description>
		<content:encoded><![CDATA[<p>Fady: By coincidence, notification of your post arrived as I was preparing a presentation to co-op coordinators about the changes. Co-op has representation on the curricular bodies at faculty and university levels and has no objections to the new curriculum. Here&#8217;s a good recent blog post addressing the general issue:</p>
<p><a href="http://www.amazon.com/gp/blog/post/PLNK1VEO3LPERI26L" rel="nofollow">http://www.amazon.com/gp/blog/post/PLNK1VEO3LPERI26L</a></p>
<p>Note that stream-4 goes away as of this fall, so that all Math/CS students will have experience with C or Python before their first work term.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Fady Samuel</title>
		<link>http://compsci.ca/blog/computer-science-at-waterloo-the-new-scheme-of-things/comment-page-1/#comment-103719</link>
		<dc:creator>Fady Samuel</dc:creator>
		<pubDate>Fri, 18 Apr 2008 07:16:30 +0000</pubDate>
		<guid isPermaLink="false">http://compsci.ca/blog/computer-science-at-waterloo-the-new-scheme-of-things/#comment-103719</guid>
		<description>I&#039;m a 4th year University of Waterloo Computer Science student but I have great interest in this new curriculum. My sister is planning to start computer science at UW in the Fall. My concern with teaching Scheme in first year without touching Java/C   is that it may significantly hurt co-op employment rates. The hottest two languages used by the industry right now are Java and C/C   (plus Python to a lesser degree).  By completely disregarding the top languages, are you not effectively hurting students&#039; chances at good co-op positions? Will there still be a Java course in first year for those who prefer that?

I have nothing against Scheme, I&#039;m all for learning multiple language paradigms, but I&#039;m greatly concerned about co-op employability.</description>
		<content:encoded><![CDATA[<p>I&#8217;m a 4th year University of Waterloo Computer Science student but I have great interest in this new curriculum. My sister is planning to start computer science at UW in the Fall. My concern with teaching Scheme in first year without touching Java/C   is that it may significantly hurt co-op employment rates. The hottest two languages used by the industry right now are Java and C/C   (plus Python to a lesser degree).  By completely disregarding the top languages, are you not effectively hurting students&#8217; chances at good co-op positions? Will there still be a Java course in first year for those who prefer that?</p>
<p>I have nothing against Scheme, I&#8217;m all for learning multiple language paradigms, but I&#8217;m greatly concerned about co-op employability.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Brad Lucier</title>
		<link>http://compsci.ca/blog/computer-science-at-waterloo-the-new-scheme-of-things/comment-page-1/#comment-103479</link>
		<dc:creator>Brad Lucier</dc:creator>
		<pubDate>Tue, 08 Apr 2008 04:51:59 +0000</pubDate>
		<guid isPermaLink="false">http://compsci.ca/blog/computer-science-at-waterloo-the-new-scheme-of-things/#comment-103479</guid>
		<description>The choices in teaching programming using Scheme are not limited to SICP or HTDP.  I prefer the approach by Manis and Little at UBC as developed in &quot;The Schematics of Computation&quot;---I call it &quot;SICP for mortals&quot; because it has the big ideas of SICP but presented in a more manageable way.</description>
		<content:encoded><![CDATA[<p>The choices in teaching programming using Scheme are not limited to SICP or HTDP.  I prefer the approach by Manis and Little at UBC as developed in &#8220;The Schematics of Computation&#8221;&#8212;I call it &#8220;SICP for mortals&#8221; because it has the big ideas of SICP but presented in a more manageable way.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Gary Baumgartner</title>
		<link>http://compsci.ca/blog/computer-science-at-waterloo-the-new-scheme-of-things/comment-page-1/#comment-103167</link>
		<dc:creator>Gary Baumgartner</dc:creator>
		<pubDate>Sat, 29 Mar 2008 02:06:12 +0000</pubDate>
		<guid isPermaLink="false">http://compsci.ca/blog/computer-science-at-waterloo-the-new-scheme-of-things/#comment-103167</guid>
		<description>Addressing the statement above:

&quot;The first goal in designing any computer language is minimizing parenthesis.&quot;
&quot;Scheme fails miserably in this respect.&quot;

I, in a sense agree with the first statement.

However, the second statement is false, despite how incredibly obvious it seems at first glance! Scheme code does use more parentheses per line than code in more common languages, but (except for small programs) has fewer lines of code.

A student of mine just wrote a program in Scheme, and it turned out another experienced Python programmer was writing a program for a similar task. We counted the number of parentheses in each, and the Python program had many more (not to mention all the other punctuation), because it required many more lines of more repetitive code. In fact the *comments* in the Python code looked more similar to the Scheme code.</description>
		<content:encoded><![CDATA[<p>Addressing the statement above:</p>
<p>&#8220;The first goal in designing any computer language is minimizing parenthesis.&#8221;<br />
&#8220;Scheme fails miserably in this respect.&#8221;</p>
<p>I, in a sense agree with the first statement.</p>
<p>However, the second statement is false, despite how incredibly obvious it seems at first glance! Scheme code does use more parentheses per line than code in more common languages, but (except for small programs) has fewer lines of code.</p>
<p>A student of mine just wrote a program in Scheme, and it turned out another experienced Python programmer was writing a program for a similar task. We counted the number of parentheses in each, and the Python program had many more (not to mention all the other punctuation), because it required many more lines of more repetitive code. In fact the *comments* in the Python code looked more similar to the Scheme code.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Grant Rettke</title>
		<link>http://compsci.ca/blog/computer-science-at-waterloo-the-new-scheme-of-things/comment-page-1/#comment-103131</link>
		<dc:creator>Grant Rettke</dc:creator>
		<pubDate>Wed, 26 Mar 2008 00:21:15 +0000</pubDate>
		<guid isPermaLink="false">http://compsci.ca/blog/computer-science-at-waterloo-the-new-scheme-of-things/#comment-103131</guid>
		<description>PT brought up a critical question: is your goal to learn how to program, or to learn a particular language?

If you want to learn how to program, it takes time, practice, good material, a good medium (programming language), and hopefully you&#039;ve got a good teacher.

If you want to learn a particular language, it takes one book.

There is a big difference. Don&#039;t confuse the two!</description>
		<content:encoded><![CDATA[<p>PT brought up a critical question: is your goal to learn how to program, or to learn a particular language?</p>
<p>If you want to learn how to program, it takes time, practice, good material, a good medium (programming language), and hopefully you&#8217;ve got a good teacher.</p>
<p>If you want to learn a particular language, it takes one book.</p>
<p>There is a big difference. Don&#8217;t confuse the two!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Anon</title>
		<link>http://compsci.ca/blog/computer-science-at-waterloo-the-new-scheme-of-things/comment-page-1/#comment-103061</link>
		<dc:creator>Anon</dc:creator>
		<pubDate>Thu, 20 Mar 2008 14:25:07 +0000</pubDate>
		<guid isPermaLink="false">http://compsci.ca/blog/computer-science-at-waterloo-the-new-scheme-of-things/#comment-103061</guid>
		<description>I did my CS degree 95-98 at the University of Manchester, UK. First semester contained NO imperative languages. It was all functional programming and discrete maths. All labs we done in SML. This managed to help level the playing field for students who had little programming experience behind them, and really started to drill home a lot of concepts that the more experienced students were oblivious too. 

If you are going to teach commercial languages such as Java/.NET, do it in the later years. Get the real eduction out of the way first before polluting their minds with this.</description>
		<content:encoded><![CDATA[<p>I did my CS degree 95-98 at the University of Manchester, UK. First semester contained NO imperative languages. It was all functional programming and discrete maths. All labs we done in SML. This managed to help level the playing field for students who had little programming experience behind them, and really started to drill home a lot of concepts that the more experienced students were oblivious too. </p>
<p>If you are going to teach commercial languages such as Java/.NET, do it in the later years. Get the real eduction out of the way first before polluting their minds with this.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
