<div dir="ltr">As someone who learned correct programming principles from HtDP (out of classroom but with help from a PL professor), I'm glad it exists and I think it hit the right balance for me, and probably works well in classroom settings as well.<div>

<br></div><div>However, since I understand the value of HtDP from experience, I've since tried, unsuccessfully, to get multiple people to look into it to learn to program. These are people that have an interest in programming but not in school, have been through parts of <a href="http://www.codecademy.com">www.codecademy.com</a> and enjoyed it but can't seem to get into HtDP. My understanding after talking to them is that they get stopped by the wall of text with a bunch of numbers and an occasional picture of a cat or rocket ship. Even after getting them excited by showing them an animating rocket ship and how little code it took, they never get there on their own because there's too much to read and understand to get there.</div>

<div><br></div><div>My point is that although HtDP fits its target audience well, I think there's a different audience that Racket is missing entirely (even in the presence of things like Picturing Programs), the audience that wants to learn and be engaged with minimal reading. Whether that's an audience worth catering to is another question and one I'm not equipped to answer.</div>

</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Fri, May 30, 2014 at 9:32 AM, Matthias Felleisen <span dir="ltr"><<a href="mailto:matthias@ccs.neu.edu" target="_blank">matthias@ccs.neu.edu</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
On May 29, 2014, at 6:00 PM, Hendrik Boom <<a href="mailto:hendrik@topoi.pooq.com">hendrik@topoi.pooq.com</a>> wrote:<br>
<br>
> On Thu, May 29, 2014 at 08:59:44PM +0000, George Rudolph wrote:<br>
>><br>
>> I am thinking about having students in my upcoming Programming Languages<br>
>> course do one or more live coding exercises, perhaps<br>
>> even a live performance at the end of Fall semester.<br>
>> There are other live coding tools,<br>
>> but I plan on teaching them functional programming using Racket, so why<br>
>> not have some fun?  I'd be interested in any suggestions you all might have as to how to make that experience pleasant for all.<br>
><br>
> Maybe there should be a htdp book that uses live coding and audio<br>
> instead of numbers or pictures?<br>
<br>
<br>
I intensely dislike 'fun' in education. It's like medicine; if it is bitter, it will heal you :-)<br>
<br>
<br>
<br>
<br>
A lot of effort in US K12 education is about "getting students interested" and "making it fun and engaging." What saddens me to no end, is that this movement is swapping over into College. In my experience this desire to make classroom experiences "fun" is partly due to a lack of teacher training -- teachers don't know enough about the material to bring across their excitement and enthusiasm, intrinsic to the material rather than with extrinsic tricks and tools -- and only partly due to an unwillingness on the students' side to engage.<br>


<br>
Having said that I think it is important to connect educational material to the real world and even making this connection "fun" -- as long as the introduction of this material does not overwhelm the key mission of classroom instruction, the teaching of principles that inform a person's life long ability to learn. I think I succeeded in creating a decent compromise with HtDP/2e and the mixing in off reactive programming and some decent batch programming. Going even further in the direction of "application" and "fun" would smother the design principles.<br>


<br>
I think that this philosophy applies equally well to POPL courses; after all, it all started for me in those courses.<br>
<br>
<br>
-- Matthias<br>
<br>
<br>
____________________<br>
  Racket Users list:<br>
  <a href="http://lists.racket-lang.org/users" target="_blank">http://lists.racket-lang.org/users</a><br>
</blockquote></div><br></div>