<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Dan Weinreb's blog &#187; Education</title>
	<atom:link href="http://danweinreb.org/blog/category/education/feed" rel="self" type="application/rss+xml" />
	<link>http://danweinreb.org/blog</link>
	<description>Software and Innovation</description>
	<lastBuildDate>Mon, 05 Sep 2011 20:12:36 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Why Did M.I.T. Switch from Scheme to Python?</title>
		<link>http://danweinreb.org/blog/why-did-mit-switch-from-scheme-to-python</link>
		<comments>http://danweinreb.org/blog/why-did-mit-switch-from-scheme-to-python#comments</comments>
		<pubDate>Sun, 10 May 2009 13:30:15 +0000</pubDate>
		<dc:creator>Dan Weinreb</dc:creator>
				<category><![CDATA[Education]]></category>
		<category><![CDATA[Lisp]]></category>
		<category><![CDATA[Software Engineering]]></category>

		<guid isPermaLink="false">http://danweinreb.org/blog/?p=148</guid>
		<description><![CDATA[news and informationbusiness,health,entertainment,technology&#160;automotive,business,crime,health,life,politics,science,technology,travelI&#8217;ve been seeing mail and blog postings, particularly from people in the Lisp community, why MIT has switched from using Scheme to Python in the freshman core curriculum for the department of Electrical Engineering and Computer Science. At the International Lisp Conference, Prof. Gerry Sussman gave a short impromptu talk explaining the new [...]]]></description>
			<content:encoded><![CDATA[<div style="height:33px; padding-top:2px; padding-bottom:2px; clear:both;" class="vas_pro_2"><div style="float:left; width:100px; " class="vas_pro_2_facebook_like"> 
				<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fdanweinreb.org%2Fblog%2Fwhy-did-mit-switch-from-scheme-to-python&amp;layout=button_count&amp;show_faces=false&amp;width=100&amp;action=like&amp;colorscheme=light&amp;height=27" 
					scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:100px; height:27px;" allowTransparency="true"></iframe>
			</div><div style="float:left; width:90px; padding-left:10px;" class="vas_pro_2_google1"> 
				<g:plusone size="medium" href="http://danweinreb.org/blog/why-did-mit-switch-from-scheme-to-python" ></g:plusone>
			</div></div>
		<div style="display:none;"><a href="http://www.24wn.com">news and information</a><a href="http://www.forum1000.com">business,health,entertainment,technology</a>&nbsp;<a href="http://news365online.com">automotive,business,crime,health,life,politics,science,technology,travel</a></div><div style="clear:both;"></div><p>I&#8217;ve been seeing mail and blog postings, particularly from people in the Lisp community, why MIT has switched from using Scheme to Python in the freshman core curriculum for the department of Electrical Engineering and Computer Science.</p>
<p>At the <a href="http://www.international-lisp-conference.org/2009/index" target="_blank">International Lisp Conference</a>, <a href="http://en.wikipedia.org/wiki/Gerald_Jay_Sussman" target="_blank">Prof. Gerry Sussman</a> gave a short impromptu talk explaining the <a href="http://www.eecs.mit.edu/ug/newcurriculum/index.html" target="_blank">new freshman curriculum</a>.  Just to get a second opinion, I later called <a href=" http://eecsfacweb.mit.edu/facpages/white.html" target="_blank">Prof. Jacob White</a>, one of the designers of the curriculum and lecturers for the core courses.  (Digression: Jacob and I have been close friends since I was six years old!)  He confirmed Gerry&#8217;s description.</p>
<p>Asking why they changed languages is, in some sense, the wrong question.</p>
<p>The freshman software engineering course, since 1985, has been based on the book <a href="http://en.wikipedia.org/wiki/Structure_and_Interpretation_of_Computer_Programs">Structure and Interpretation of Computer Programs</a> (<a href="http://mitpress.mit.edu/sicp/">known as SICP</a>), which uses Scheme.  The course is now nearly thirty years old.  Engineering has changed quite a lot in thirty years.  Since 1995, Gerry and his co-author <a href="http://en.wikipedia.org/wiki/Hal_Abelson" target="_blank">Prof. Hal Abelson</a> have advocated changing the freshman curriculum radically, not basing it on SICP.</p>
<p>In 1980, computer engineering was based on starting with clearly-defined things (primitives or small programs) and using them to build larger things that ended up being clearly-defined.  Composition of these fragments was the name of the game.</p>
<p>However, nowadays, a real engineer is given a big software library, with a 300-page manual that&#8217;s full of errors.  He&#8217;s also given a robot, whose exact behavior is extremely hard to characterize (what happens when a wheel slips?). The engineer must learn to perform scientific experiments to find out how the software and hardware actually work, at least enough to accomplish the job at hand.  Gerry pointed out that we may not like it this way (&#8220;because we&#8217;re old fogies&#8221;), but that&#8217;s the way it is, and M.I.T. has to take that into account.</p>
<p>The new approach also has the big advantage that it combines computer science with electrical engineering, whereas the old one taught them as entirely separate disciplines.  This way, students see how they interrelate.  Also, as Jacob points out, some of the same macro-principles apply to both software and hardware, and the students see this illustrated.  There is extensive lab work, making robots and mobile applications.</p>
<p>It just so happens that the robotics substrate software that comes with the system they&#8217;re using is programmed in Python.  Similarly, the mobile software environment is based on Python.  (Or, at least, the original plan was to use such a substrate, although it may have changed for various business reasons.)</p>
<p>Changing programming languages was absolutely not a goal of the curriculum change.  It was merely the result of the consequences of various decisions.  We can always discuss how it came to be that the robots and mobile devices are using Python instead of some other language, but that&#8217;s not the question being addressed here.  M.I.T. has nothing against Scheme. (And, of course, M.I.T. does teach classic software engineering, later in the curriculum.)</p>
<p>(<a href="http://www.mitadmissions.org/topics/learning/coursework/the_end_of_an_era_1.shtml">Here&#8217;s another take on this topic.</a>)</p>
<div class="zemanta-pixie" style="margin-top: 10px; height: 15px;"><a class="zemanta-pixie-a" title="Reblog this post [with Zemanta]" href="http://reblog.zemanta.com/zemified/16c4697e-0162-4e85-ac13-b671a11e63c0/"><img class="zemanta-pixie-img" style="border: medium none; float: right;" src="http://img.zemanta.com/reblog_e.png?x-id=16c4697e-0162-4e85-ac13-b671a11e63c0" alt="Reblog this post [with Zemanta]" /></a><span class="zem-script more-related pretty-attribution"><script src="http://static.zemanta.com/readside/loader.js" type="text/javascript"></script></span></div>
]]></content:encoded>
			<wfw:commentRss>http://danweinreb.org/blog/why-did-mit-switch-from-scheme-to-python/feed</wfw:commentRss>
		<slash:comments>29</slash:comments>
		</item>
		<item>
		<title>AgentSheets: Learning Programming, for middle-schoolers</title>
		<link>http://danweinreb.org/blog/agentsheets-learning-programming-for-middle-schoolers</link>
		<comments>http://danweinreb.org/blog/agentsheets-learning-programming-for-middle-schoolers#comments</comments>
		<pubDate>Sat, 03 Jan 2009 15:36:14 +0000</pubDate>
		<dc:creator>Dan Weinreb</dc:creator>
				<category><![CDATA[Education]]></category>
		<category><![CDATA[Free Software]]></category>
		<category><![CDATA[Lisp]]></category>

		<guid isPermaLink="false">http://danweinreb.org/blog/?p=81</guid>
		<description><![CDATA[news and informationbusiness,health,entertainment,technology&#160;automotive,business,crime,health,life,politics,science,technology,travelThe Scalable Game Design project is aimed at getting computer science into middle schools, to get kids interested in information technology through their natural interest in games. A principal software tool of the project is AgentSheets, which lets you make your own simulation games without learning the syntax of a programming language. If [...]]]></description>
			<content:encoded><![CDATA[<div style="height:33px; padding-top:2px; padding-bottom:2px; clear:both;" class="vas_pro_2"><div style="float:left; width:100px; " class="vas_pro_2_facebook_like"> 
				<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fdanweinreb.org%2Fblog%2Fagentsheets-learning-programming-for-middle-schoolers&amp;layout=button_count&amp;show_faces=false&amp;width=100&amp;action=like&amp;colorscheme=light&amp;height=27" 
					scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:100px; height:27px;" allowTransparency="true"></iframe>
			</div><div style="float:left; width:90px; padding-left:10px;" class="vas_pro_2_google1"> 
				<g:plusone size="medium" href="http://danweinreb.org/blog/agentsheets-learning-programming-for-middle-schoolers" ></g:plusone>
			</div></div>
		<div style="display:none;"><a href="http://www.24wn.com">news and information</a><a href="http://www.forum1000.com">business,health,entertainment,technology</a>&nbsp;<a href="http://news365online.com">automotive,business,crime,health,life,politics,science,technology,travel</a></div><div style="clear:both;"></div><p>The <a href="http://scalablegamedesign.cs.colorado.edu/wiki/Main_Page">Scalable Game Design</a> project is aimed at getting computer science into middle schools, to get kids interested in information technology through their natural interest in games.  A principal software tool of the project is AgentSheets, which lets you make your own simulation games without learning the syntax of a programming language.</p>
<p>If you know a kid in middle school who wants to make his or her own game, or just learn about programming, I recommend that you take a look at this!</p>
<p>The general concept is a bit like some systems you may have seen before, such as the visual programming languages provided with Lego Mindstorms.  However, this requires no special hardware, and the specifics look a lot more interesting and flexible to me than anything I&#8217;ve seen along these lines.</p>
<p>An example of what you can do is the classic arcade game <a href="http://en.wikipedia.org/wiki/Frogger">Frogger</a> (developed by Konami for Sega/Gremlin in 1981).  <a href="http://scalablegamedesign.cs.colorado.edu/wiki/Frogger_Design">This tutorial</a> shows how to do it in AgentSheets.</p>
<p>There is a <a href="http://drop.io/dlweinreb/asset/the-3rd-hour">three-minute movie</a> showing kids using AgentSheets. It gives a good sense of the kind of game and the level of complexity that AgentSheets is suitable for (although it doesn&#8217;t demonstrate programming itself).</p>
<p>You can also read <a href="http://scalablegamedesign.cs.colorado.edu/wiki/Publications">research papers about the project</a>.</p>
<p>To try it out, you can <a href="http://www.agentsheets.com/products/trial/index.html">download a free trial version</a> with a ten-day license, for MacOS X or Windows.  It costs $120 in single units, less for educators or if you get ten licenses.</p>
<p>As it happens, it&#8217;s written in Common Lisp, which is how I came to hear about it.  But that doesn&#8217;t matter as far as using it is concerned.</p>
<p>The principal investigator is <a href="http://www.cs.colorado.edu/~ralex/">Prof. Alexander Repenning</a> of the University of Colorado.  He has worked at <a href="http://www.parc.xerox.com/">Xerox PARC</a> and <a href="http://www.hp.com">HP</a>, and he has collaborated with researchers at the <a href="http://el.www.media.mit.edu/groups/el/">Epistemology and Learning Group</a> of the MIT Media Lab, LOGO, and <a href="http://www.sri.com">SRI</a> to explore <a href="http://www.cs.colorado.edu/~l3d/systems/legosheets/">programmable LOGO toys</a>.  He has been involved in <a href="http://www.cs.colorado.edu/~ralex/Portfolio.pdf">many other projects</a> as well.</p>
<p>Thanks for telling me about this, Alex!</p>
]]></content:encoded>
			<wfw:commentRss>http://danweinreb.org/blog/agentsheets-learning-programming-for-middle-schoolers/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

