<?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: Beware Book Learning</title>
	<atom:link href="http://www.overcomingbias.com/2009/10/beware-book-learning.html/feed" rel="self" type="application/rss+xml" />
	<link>http://www.overcomingbias.com/2009/10/beware-book-learning.html</link>
	<description>Overcoming Bias is economist Robin Hanson’s blog, on honesty, signaling, disagreement, forecasting, and the far future.</description>
	<lastBuildDate>Sun, 12 Feb 2012 01:09:57 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
	<item>
		<title>By: J.</title>
		<link>http://www.overcomingbias.com/2009/10/beware-book-learning.html#comment-434802</link>
		<dc:creator>J.</dc:creator>
		<pubDate>Sun, 18 Oct 2009 12:49:57 +0000</pubDate>
		<guid isPermaLink="false">http://www.overcomingbias.com/?p=19978#comment-434802</guid>
		<description>Robin, a homeschool friend just pointed me to this post. I didn&#039;t know about you until today. I&#039;m a TJ parent too and homeschooled my daughter for 8th grade. 

You write: &quot;He was a teacher after all, and I’m just a parent.&quot; No, you are never just a parent. We get ourselves into a lot of trouble when we concede that school always knows best and we are just the parent. Many of us TJ parents have come to the realization that it&#039;s the kids who make the school what it is. A lof of parents live under the illusion that TJ is stacked full of the most awesome teachers on earth. Surely there are some outstanding ones, worth their weight in gold. But the overall perception is well over-rated.</description>
		<content:encoded><![CDATA[<p>Robin, a homeschool friend just pointed me to this post. I didn&#8217;t know about you until today. I&#8217;m a TJ parent too and homeschooled my daughter for 8th grade. </p>
<p>You write: &#8220;He was a teacher after all, and I’m just a parent.&#8221; No, you are never just a parent. We get ourselves into a lot of trouble when we concede that school always knows best and we are just the parent. Many of us TJ parents have come to the realization that it&#8217;s the kids who make the school what it is. A lof of parents live under the illusion that TJ is stacked full of the most awesome teachers on earth. Surely there are some outstanding ones, worth their weight in gold. But the overall perception is well over-rated.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: anon</title>
		<link>http://www.overcomingbias.com/2009/10/beware-book-learning.html#comment-434509</link>
		<dc:creator>anon</dc:creator>
		<pubDate>Mon, 12 Oct 2009 10:29:24 +0000</pubDate>
		<guid isPermaLink="false">http://www.overcomingbias.com/?p=19978#comment-434509</guid>
		<description>&quot;One exception is the use of type systems.&quot;

A pretty glaring exception if you ask me.  Could Haskell be taught with the same approach?

BTW, there are subsystems of Java which are simple enough that they can be explained in full, such as Featherweight Java.</description>
		<content:encoded><![CDATA[<p>&#8220;One exception is the use of type systems.&#8221;</p>
<p>A pretty glaring exception if you ask me.  Could Haskell be taught with the same approach?</p>
<p>BTW, there are subsystems of Java which are simple enough that they can be explained in full, such as Featherweight Java.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jaap Weel</title>
		<link>http://www.overcomingbias.com/2009/10/beware-book-learning.html#comment-434490</link>
		<dc:creator>Jaap Weel</dc:creator>
		<pubDate>Mon, 12 Oct 2009 01:37:23 +0000</pubDate>
		<guid isPermaLink="false">http://www.overcomingbias.com/?p=19978#comment-434490</guid>
		<description>I think there are things wrong with teaching Java in the first place. (I notice your son writes his games in Python. Maybe he&#039;s onto something.)

One of the most common problems with beginning students of computer programming is that they do not treat the programming language as a system they fully understand (because they don&#039;t), but rather as a system that contains mysteries (rules about implicit typecasting and the order in which to execute the initialization code of various classes etc.) they&#039;ll never understand. This leads to voodoo programming, defined in the Jargon File as &quot;The use by guess or cookbook of an obscure or hairy system, feature, or algorithm that one does not truly understand.&quot; To add insult to injury, the approach to software design that comes with languages like Java is full of things that have the smell of ancient rituals with origins long forgotten, at best—or tax forms to be filled out in triplicate, at worst. The introductory student has no concept of the problems (often deficiencies in the language) that led to the invention of the Factory Visitor Singleton and the like. Hence, once they leave the classroom, they&#039;ll think of such things as bureaucratic fluff and omit it and they are left to rediscover the virtues of modularity all over again.

How, then, do I propose that Computer Science be taught? &lt;em&gt;Structure and Interpretation of Computer Programs&lt;/em&gt;, the classic MIT textbook.

Abelson and Sussman make a point of &quot;making the magic go away.&quot; (I was told by the person responsible in past years for the smoke effect that at some point during the semester teaching from their book at MIT, one of them used to show up to class wearing a wizard&#039;s hat, which would then disappear in a puff of smoke.) They use a language so simple that they can explain &lt;strong&gt;all&lt;/strong&gt; of it. You learn not one, but several mental models of what is going on, in increasing levels of detail, culminating in an interpreter of the language written in itself (sounds scary? it fits on the blackboard!) and (admittedly in a usually omitted last chapter) a compiler. Scheme has no structured data types or classes or any of that, but in the course of the book, all of those are constructed as facilities &lt;em&gt;within&lt;/em&gt; the language, the student gets to see precisely how they work, and &lt;em&gt;why&lt;/em&gt;.

A student that understands SICP understands most of what we can teach about programming. (One exception is the use of type systems.) Of course a CS major may also want to know about Fibonacci heaps and shading algorithms and neural networks and branch prediction and TCP and how to schedule processes in O(1), but none of those are about how to program so much as about what to program, which is a different question.

So why do high schools teach Java? Because colleges teach Java. Why do colleges (though not, by and large, the best CS schools) teach Java? Because someone has gotten it into their head that computer programming is not a new way of thinking, but a thoroughly practical clerical task, a sideshow to the real thing, be it the Analysis of Really Clever Algorithms, or Corporate Data Processing, or what-have you. And that attitude translates into teaching the &quot;industry standard&quot; cruft and the complaint that if you teach students using a language they actually understand, like Scheme or Machine Code (cf. Harvard) or even Python (but that one&#039;s dangerously close to voodoo-land already), then they&#039;ll have to &quot;learn it all over again.&quot; I even know of colleges that teach C++. I have two degrees in Computer Science, I have written several compilers, and programmed in a dozen different languages, and I cannot wrap my head around C++: I do not understand why on earth we expect freshmen to be able to look at a 3-page Standard Template Library error message. If I had to teach CS1 (and not being likely to ever have to do so is frankly the greatest of my regrets in switching from CS to economics) I would want sophomores to tell next year&#039;s freshmen, &quot;computers aren&#039;t mysterious black boxes; once you&#039;ve taken CS1, you&#039;ll understand it&#039;s all really fairly simple; it&#039;s a big heap of NAND gates and all the rest is but conveniences to help us think about them.&quot; 

There may be another reason, which is that teaching CS well has two drawbacks: it requires better teachers than teaching it poorly, and it fails to give those students who will just never get it the impression that they&#039;ve actually understood it about as well (or as poorly) as the ones who do. As for the latter problem, I can&#039;t really see a solution. As for the former, I think we need to realize that there simply aren&#039;t enough good CS teachers to go around, or rather, that most schools cannot afford them, given how much they can often earn in industry. That is why it&#039;s important to keep thinking about ways to improve textbooks, languages, and other low-marginal-cost educational tools.

End of rant.</description>
		<content:encoded><![CDATA[<p>I think there are things wrong with teaching Java in the first place. (I notice your son writes his games in Python. Maybe he&#8217;s onto something.)</p>
<p>One of the most common problems with beginning students of computer programming is that they do not treat the programming language as a system they fully understand (because they don&#8217;t), but rather as a system that contains mysteries (rules about implicit typecasting and the order in which to execute the initialization code of various classes etc.) they&#8217;ll never understand. This leads to voodoo programming, defined in the Jargon File as &#8220;The use by guess or cookbook of an obscure or hairy system, feature, or algorithm that one does not truly understand.&#8221; To add insult to injury, the approach to software design that comes with languages like Java is full of things that have the smell of ancient rituals with origins long forgotten, at best—or tax forms to be filled out in triplicate, at worst. The introductory student has no concept of the problems (often deficiencies in the language) that led to the invention of the Factory Visitor Singleton and the like. Hence, once they leave the classroom, they&#8217;ll think of such things as bureaucratic fluff and omit it and they are left to rediscover the virtues of modularity all over again.</p>
<p>How, then, do I propose that Computer Science be taught? <em>Structure and Interpretation of Computer Programs</em>, the classic MIT textbook.</p>
<p>Abelson and Sussman make a point of &#8220;making the magic go away.&#8221; (I was told by the person responsible in past years for the smoke effect that at some point during the semester teaching from their book at MIT, one of them used to show up to class wearing a wizard&#8217;s hat, which would then disappear in a puff of smoke.) They use a language so simple that they can explain <strong>all</strong> of it. You learn not one, but several mental models of what is going on, in increasing levels of detail, culminating in an interpreter of the language written in itself (sounds scary? it fits on the blackboard!) and (admittedly in a usually omitted last chapter) a compiler. Scheme has no structured data types or classes or any of that, but in the course of the book, all of those are constructed as facilities <em>within</em> the language, the student gets to see precisely how they work, and <em>why</em>.</p>
<p>A student that understands SICP understands most of what we can teach about programming. (One exception is the use of type systems.) Of course a CS major may also want to know about Fibonacci heaps and shading algorithms and neural networks and branch prediction and TCP and how to schedule processes in O(1), but none of those are about how to program so much as about what to program, which is a different question.</p>
<p>So why do high schools teach Java? Because colleges teach Java. Why do colleges (though not, by and large, the best CS schools) teach Java? Because someone has gotten it into their head that computer programming is not a new way of thinking, but a thoroughly practical clerical task, a sideshow to the real thing, be it the Analysis of Really Clever Algorithms, or Corporate Data Processing, or what-have you. And that attitude translates into teaching the &#8220;industry standard&#8221; cruft and the complaint that if you teach students using a language they actually understand, like Scheme or Machine Code (cf. Harvard) or even Python (but that one&#8217;s dangerously close to voodoo-land already), then they&#8217;ll have to &#8220;learn it all over again.&#8221; I even know of colleges that teach C++. I have two degrees in Computer Science, I have written several compilers, and programmed in a dozen different languages, and I cannot wrap my head around C++: I do not understand why on earth we expect freshmen to be able to look at a 3-page Standard Template Library error message. If I had to teach CS1 (and not being likely to ever have to do so is frankly the greatest of my regrets in switching from CS to economics) I would want sophomores to tell next year&#8217;s freshmen, &#8220;computers aren&#8217;t mysterious black boxes; once you&#8217;ve taken CS1, you&#8217;ll understand it&#8217;s all really fairly simple; it&#8217;s a big heap of NAND gates and all the rest is but conveniences to help us think about them.&#8221; </p>
<p>There may be another reason, which is that teaching CS well has two drawbacks: it requires better teachers than teaching it poorly, and it fails to give those students who will just never get it the impression that they&#8217;ve actually understood it about as well (or as poorly) as the ones who do. As for the latter problem, I can&#8217;t really see a solution. As for the former, I think we need to realize that there simply aren&#8217;t enough good CS teachers to go around, or rather, that most schools cannot afford them, given how much they can often earn in industry. That is why it&#8217;s important to keep thinking about ways to improve textbooks, languages, and other low-marginal-cost educational tools.</p>
<p>End of rant.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Robin Hanson</title>
		<link>http://www.overcomingbias.com/2009/10/beware-book-learning.html#comment-434347</link>
		<dc:creator>Robin Hanson</dc:creator>
		<pubDate>Fri, 09 Oct 2009 04:16:58 +0000</pubDate>
		<guid isPermaLink="false">http://www.overcomingbias.com/?p=19978#comment-434347</guid>
		<description>Agreed.  &quot;Book learning&quot; just has a nice association as being opposed to experienced street smarts.</description>
		<content:encoded><![CDATA[<p>Agreed.  &#8220;Book learning&#8221; just has a nice association as being opposed to experienced street smarts.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Nikhil Punnoose</title>
		<link>http://www.overcomingbias.com/2009/10/beware-book-learning.html#comment-434345</link>
		<dc:creator>Nikhil Punnoose</dc:creator>
		<pubDate>Fri, 09 Oct 2009 03:32:56 +0000</pubDate>
		<guid isPermaLink="false">http://www.overcomingbias.com/?p=19978#comment-434345</guid>
		<description>So how embarrassed is your son, already?</description>
		<content:encoded><![CDATA[<p>So how embarrassed is your son, already?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Doug S.</title>
		<link>http://www.overcomingbias.com/2009/10/beware-book-learning.html#comment-434344</link>
		<dc:creator>Doug S.</dc:creator>
		<pubDate>Fri, 09 Oct 2009 02:44:28 +0000</pubDate>
		<guid isPermaLink="false">http://www.overcomingbias.com/?p=19978#comment-434344</guid>
		<description>My high school didn&#039;t teach any computer science content, at all. The only computer class they had was called &quot;Keyboarding&quot;.</description>
		<content:encoded><![CDATA[<p>My high school didn&#8217;t teach any computer science content, at all. The only computer class they had was called &#8220;Keyboarding&#8221;.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Eliezer Yudkowsky</title>
		<link>http://www.overcomingbias.com/2009/10/beware-book-learning.html#comment-434340</link>
		<dc:creator>Eliezer Yudkowsky</dc:creator>
		<pubDate>Fri, 09 Oct 2009 01:32:24 +0000</pubDate>
		<guid isPermaLink="false">http://www.overcomingbias.com/?p=19978#comment-434340</guid>
		<description>Second Babar.  The moral is to beware of teachers, not books.  A good book can be written by one of the top minds in the field.  If I end up talking to &lt;i&gt;average&lt;/i&gt; practitioners in a field for some reason, I&#039;m usually dismayed at how little they understand compared to the textbook authors.</description>
		<content:encoded><![CDATA[<p>Second Babar.  The moral is to beware of teachers, not books.  A good book can be written by one of the top minds in the field.  If I end up talking to <i>average</i> practitioners in a field for some reason, I&#8217;m usually dismayed at how little they understand compared to the textbook authors.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: cat</title>
		<link>http://www.overcomingbias.com/2009/10/beware-book-learning.html#comment-434339</link>
		<dc:creator>cat</dc:creator>
		<pubDate>Fri, 09 Oct 2009 00:55:44 +0000</pubDate>
		<guid isPermaLink="false">http://www.overcomingbias.com/?p=19978#comment-434339</guid>
		<description>&lt;blockquote&gt;Your son is fortunate indeed to attend such a superb school. And I am not surprised that it may be difficult for them to find teachers who are truly smart enough to work there.&lt;/blockquote&gt;

Where I grew up in the late 80&#039;s the public high school and magnet school had no trouble finding qualified teachers for CS classes.  They were able to offer me 4 years of CS classes and I arrived at college well ahead of my classmates.

I&#039;m sure they are able to find competent teachers in NoVa as well.</description>
		<content:encoded><![CDATA[<blockquote><p>Your son is fortunate indeed to attend such a superb school. And I am not surprised that it may be difficult for them to find teachers who are truly smart enough to work there.</p></blockquote>
<p>Where I grew up in the late 80&#8242;s the public high school and magnet school had no trouble finding qualified teachers for CS classes.  They were able to offer me 4 years of CS classes and I arrived at college well ahead of my classmates.</p>
<p>I&#8217;m sure they are able to find competent teachers in NoVa as well.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: cat</title>
		<link>http://www.overcomingbias.com/2009/10/beware-book-learning.html#comment-434338</link>
		<dc:creator>cat</dc:creator>
		<pubDate>Fri, 09 Oct 2009 00:48:05 +0000</pubDate>
		<guid isPermaLink="false">http://www.overcomingbias.com/?p=19978#comment-434338</guid>
		<description>I&#039;m still at a loss as to why you&#039;d even ask your son&#039;s AP teacher about modular programming other then to preen since any practicing Software Engineer knows there is a time and a place for all the different programming paradigms. 

They are teaching Computer Science not Software Engineering in preparation for college where they will most likely continue to teach your son Computer Science not Software Engineering.  There he maybe exposed to SE in some courses, but most of his classes will be focused on Computer Science.

You should be more upset at them teaching your son a subpar CS curriculum at the arguably the best public high school in the US then a half right answer to your vague question.

If an AP CS class is really CS 101 and they can&#039;t deal with the lack of abstraction C has while learning the basic CS principals then they aren&#039;t the best computer science public high school students the US has to offer.</description>
		<content:encoded><![CDATA[<p>I&#8217;m still at a loss as to why you&#8217;d even ask your son&#8217;s AP teacher about modular programming other then to preen since any practicing Software Engineer knows there is a time and a place for all the different programming paradigms. </p>
<p>They are teaching Computer Science not Software Engineering in preparation for college where they will most likely continue to teach your son Computer Science not Software Engineering.  There he maybe exposed to SE in some courses, but most of his classes will be focused on Computer Science.</p>
<p>You should be more upset at them teaching your son a subpar CS curriculum at the arguably the best public high school in the US then a half right answer to your vague question.</p>
<p>If an AP CS class is really CS 101 and they can&#8217;t deal with the lack of abstraction C has while learning the basic CS principals then they aren&#8217;t the best computer science public high school students the US has to offer.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Robert Koslover</title>
		<link>http://www.overcomingbias.com/2009/10/beware-book-learning.html#comment-434336</link>
		<dc:creator>Robert Koslover</dc:creator>
		<pubDate>Thu, 08 Oct 2009 23:55:07 +0000</pubDate>
		<guid isPermaLink="false">http://www.overcomingbias.com/?p=19978#comment-434336</guid>
		<description>Frankly, I&#039;m quite impressed that object-oriented computer programming is now actually being taught in high school (well ok, I realize that you are talking about a truly superior school).  But still... wow!  There is no shortage of students at my local university who have a lot of trouble programming even the simplest computations, in even the simplest sequential computer languages, let alone the modern object-oriented ones.  Modular code?  That&#039;s &quot;software engineering,&quot; for goodness sakes!  How about merely &lt;em&gt;understanding &lt;/em&gt;the concept of conditional branching?  Or even... binary numbers?  Your son is fortunate indeed to attend such a superb school.  And I am not surprised that it may be difficult for them to find teachers who are truly smart enough to work there.  :).</description>
		<content:encoded><![CDATA[<p>Frankly, I&#8217;m quite impressed that object-oriented computer programming is now actually being taught in high school (well ok, I realize that you are talking about a truly superior school).  But still&#8230; wow!  There is no shortage of students at my local university who have a lot of trouble programming even the simplest computations, in even the simplest sequential computer languages, let alone the modern object-oriented ones.  Modular code?  That&#8217;s &#8220;software engineering,&#8221; for goodness sakes!  How about merely <em>understanding </em>the concept of conditional branching?  Or even&#8230; binary numbers?  Your son is fortunate indeed to attend such a superb school.  And I am not surprised that it may be difficult for them to find teachers who are truly smart enough to work there.  <img src='http://www.overcomingbias.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
]]></content:encoded>
	</item>
</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Page Caching using disk (enhanced)
Database Caching using disk
Object Caching 433/450 objects using disk
Content Delivery Network via Amazon Web Services: S3: overcomingbias-assets.s3.amazonaws.com

Served from: www.overcomingbias.com @ 2012-02-11 20:56:47 -->
