<div><span style="font-size:15px;line-height:1.4;background-color:white;color:rgb(34,34,34);font-family:Helvetica,Arial,Verdana,san-serif">So I am sharing my blog post </span><a href="" class="GBXY34NBPB" style="margin-top:0px;margin-right:10px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;font-size:13px;font-family:Arial,Helvetica,sans-serif;vertical-align:baseline;color:rgb(17,85,204);text-align:-webkit-left;background-color:rgb(255,255,255)">Why Is programming an unnatural activity?</a><span style="background-color:rgb(255,255,255);color:rgb(34,34,34);font-family:Helvetica,Arial,Verdana,san-serif;font-size:15px;line-height:21px">Hoping to get some feedback from the community.</span></div>
<div><font color="#222222" face="Helvetica, Arial, Verdana, san-serif"><span style="font-size:15px;line-height:21px"><br></span></font></div><span style="font-size:15px;line-height:1.4;background-color:white;color:rgb(34,34,34);font-family:Helvetica,Arial,Verdana,san-serif">For my P2PU course I have been looking at &quot;Novice&quot; programmers.  And in one of the papers we were asked to read </span><span style="font-size:15px;line-height:1.4;background-color:white;color:rgb(34,34,34);font-family:Helvetica,Arial,Verdana,san-serif">Mark Guzdial asks:</span><br style="color:rgb(51,51,51);font-family:Arial,Tahoma,Helvetica,FreeSans,sans-serif;font-size:15px;line-height:19px;background-color:rgb(255,255,255)">
<blockquote class="tr_bq" style="color:rgb(51,51,51);font-family:Arial,Tahoma,Helvetica,FreeSans,sans-serif;font-size:15px;line-height:19px;background-color:rgb(255,255,255)"><span style="color:rgb(34,34,34);font-family:Helvetica,Arial,Verdana,san-serif"><span style="line-height:18px">“Why?” Is programming an unnatural activity?</span></span> </blockquote>
<blockquote class="tr_bq" style="color:rgb(51,51,51);font-family:Arial,Tahoma,Helvetica,FreeSans,sans-serif;font-size:15px;line-height:19px;background-color:rgb(255,255,255)"><span style="color:rgb(34,34,34);font-family:Helvetica,Arial,Verdana,san-serif"><span style="line-height:18px">Could </span></span><span style="color:rgb(34,34,34);font-family:Helvetica,Arial,Verdana,san-serif;line-height:18px">programming be made easier in a different form?</span> </blockquote>
<blockquote class="tr_bq" style="color:rgb(51,51,51);font-family:Arial,Tahoma,Helvetica,FreeSans,sans-serif;font-size:15px;line-height:19px;background-color:rgb(255,255,255)"><span style="color:rgb(34,34,34);font-family:Helvetica,Arial,Verdana,san-serif;line-height:18px">Could programming be taught in a different </span><span style="color:rgb(34,34,34);font-family:Helvetica,Arial,Verdana,san-serif;line-height:18px">way that makes learning easier?</span> </blockquote>
<blockquote class="tr_bq" style="color:rgb(51,51,51);font-family:Arial,Tahoma,Helvetica,FreeSans,sans-serif;font-size:15px;line-height:19px;background-color:rgb(255,255,255)"><span style="color:rgb(34,34,34);font-family:Helvetica,Arial,Verdana,san-serif;line-height:18px">Or maybe we just have no idea how to actually measure what </span><span style="color:rgb(34,34,34);font-family:Helvetica,Arial,Verdana,san-serif"><span style="line-height:18px">students know about programming.</span></span><i style="color:rgb(34,34,34);font-family:Helvetica,Arial,Verdana,san-serif;line-height:18px"> (1).</i></blockquote>
<div style="color:rgb(51,51,51);font-family:Arial,Tahoma,Helvetica,FreeSans,sans-serif;font-size:15px;line-height:19px;background-color:white;background-image:initial;border-bottom-width:0px;border-color:initial;border-left-width:0px;border-right-width:0px;border-style:initial;border-top-width:0px;margin-bottom:10px;margin-top:10px;outline-color:initial;outline-style:initial;outline-width:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px;vertical-align:baseline">
<span style="color:rgb(34,34,34);font-family:Helvetica,Arial,Verdana,san-serif"><span style="line-height:18px">My main problem with the Guzdial paper (this was more my problem than a problem with the paper) is I felt it didn&#39;t provide enough details or specifics on &quot;Why it is so hard to learn to Program?&quot;  I need specifics and examples to get my head around things.  Roy Pea, was a great find and perhaps not surprisingly (for me at least) the Resnick article was very useful. </span></span></div>
<div style="color:rgb(51,51,51);font-family:Arial,Tahoma,Helvetica,FreeSans,sans-serif;font-size:15px;line-height:19px;background-color:white;background-image:initial;border-bottom-width:0px;border-color:initial;border-left-width:0px;border-right-width:0px;border-style:initial;border-top-width:0px;margin-bottom:10px;margin-top:10px;outline-color:initial;outline-style:initial;outline-width:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px;vertical-align:baseline">
<span style="color:rgb(34,34,34);font-family:Helvetica,Arial,Verdana,san-serif"><span style="line-height:18px"><br></span></span></div><div style="color:rgb(51,51,51);font-family:Arial,Tahoma,Helvetica,FreeSans,sans-serif;font-size:15px;line-height:19px;background-color:white;background-image:initial;border-bottom-width:0px;border-color:initial;border-left-width:0px;border-right-width:0px;border-style:initial;border-top-width:0px;margin-bottom:10px;margin-top:10px;outline-color:initial;outline-style:initial;outline-width:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px;vertical-align:baseline">
<span style="color:rgb(34,34,34);font-family:Helvetica,Arial,Verdana,san-serif"><span style="line-height:18px">Pea (et al) talked about three classes of bugs:</span></span></div><div style="color:rgb(51,51,51);font-family:Arial,Tahoma,Helvetica,FreeSans,sans-serif;font-size:15px;line-height:19px;background-color:white;background-image:initial;border-bottom-width:0px;border-color:initial;border-left-width:0px;border-right-width:0px;border-style:initial;border-top-width:0px;margin-bottom:10px;margin-top:10px;outline-color:initial;outline-style:initial;outline-width:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px;vertical-align:baseline">
</div><ol style="color:rgb(51,51,51);font-family:Arial,Tahoma,Helvetica,FreeSans,sans-serif;font-size:15px;line-height:19px;background-color:rgb(255,255,255)"><li style="padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;margin-top:0px;margin-right:0px;margin-bottom:0.25em;margin-left:0px">
<span style="color:rgb(34,34,34);font-family:Helvetica,Arial,Verdana,san-serif"><span style="line-height:18px">Parallelism Bugs</span></span></li><li style="padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;margin-top:0px;margin-right:0px;margin-bottom:0.25em;margin-left:0px">
<span style="color:rgb(34,34,34);font-family:Helvetica,Arial,Verdana,san-serif"><span style="line-height:18px">Intentionality Bugs</span></span></li><li style="padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;margin-top:0px;margin-right:0px;margin-bottom:0.25em;margin-left:0px">
<span style="color:rgb(34,34,34);font-family:Helvetica,Arial,Verdana,san-serif"><span style="line-height:18px">Egocentrism Bugs</span></span></li></ol><div style="color:rgb(51,51,51);font-family:Arial,Tahoma,Helvetica,FreeSans,sans-serif;font-size:15px;line-height:19px;background-color:rgb(255,255,255)">
<span style="color:rgb(34,34,34);font-family:Helvetica,Arial,Verdana,san-serif"><span style="line-height:18px"><b>Parrallelism Bugs</b></span></span></div><div style="color:rgb(51,51,51);font-family:Arial,Tahoma,Helvetica,FreeSans,sans-serif;font-size:15px;line-height:19px;background-color:rgb(255,255,255)">
<span style="color:rgb(34,34,34);font-family:Helvetica,Arial,Verdana,san-serif"><span style="line-height:18px">The </span></span><span style="color:rgb(34,34,34);font-family:Helvetica,Arial,Verdana,san-serif;line-height:18px">Parallelism</span><span style="color:rgb(34,34,34);font-family:Helvetica,Arial,Verdana,san-serif"><span style="line-height:18px"> Bugs, is basically an &quot;assumption of different lines in a program can be active or known by the computer at the same time or in parallel&quot;.  For example, look at this code:</span></span></div>
<blockquote class="tr_bq" style="color:rgb(51,51,51);font-family:Arial,Tahoma,Helvetica,FreeSans,sans-serif;font-size:15px;line-height:19px;background-color:rgb(255,255,255)"><span style="color:rgb(34,34,34);font-family:Helvetica,Arial,Verdana,san-serif"><span style="line-height:18px"></span></span><br>
<pre><span style="color:rgb(34,34,34);font-family:Helvetica,Arial,Verdana,san-serif"><span style="line-height:18px">If (Size == 10)
    print &quot;Hello&quot;
For Size in range(10):
    print Size
</span></span>  </pre></blockquote><div style="color:rgb(51,51,51);font-family:Arial,Tahoma,Helvetica,FreeSans,sans-serif;font-size:15px;line-height:19px;background-color:rgb(255,255,255)"><span style="color:rgb(34,34,34);font-family:Helvetica,Arial,Verdana,san-serif"><span style="line-height:18px">When High School students. in their second year of programming course, were asked what they thought the program would print 8 out of 15 predicted &quot;Hello&quot; would print after &quot;10&quot;.</span></span></div>
<div style="color:rgb(51,51,51);font-family:Arial,Tahoma,Helvetica,FreeSans,sans-serif;font-size:15px;line-height:19px;background-color:rgb(255,255,255)"><span style="color:rgb(34,34,34);font-family:Helvetica,Arial,Verdana,san-serif"><span style="line-height:18px"><br>
</span></span></div><div style="color:rgb(51,51,51);font-family:Arial,Tahoma,Helvetica,FreeSans,sans-serif;font-size:15px;line-height:19px;background-color:rgb(255,255,255)"><div><span style="color:rgb(34,34,34);font-family:Helvetica,Arial,Verdana,san-serif"><span style="line-height:18px"><b>Intentionality Bugs</b></span></span></div>
<div><span style="color:rgb(34,34,34);font-family:Helvetica,Arial,Verdana,san-serif"><span style="line-height:18px">The </span></span><span style="color:rgb(34,34,34);font-family:Helvetica,Arial,Verdana,san-serif;line-height:18px">Intentionality</span><span style="color:rgb(34,34,34);font-family:Helvetica,Arial,Verdana,san-serif"><span style="line-height:18px"> Bugs, is the idea in the child&#39;s mind that &quot;the program has goals and knows or sees what will happen elsewhere in itself.&quot;</span></span></div>
</div><div style="color:rgb(51,51,51);font-family:Arial,Tahoma,Helvetica,FreeSans,sans-serif;font-size:15px;line-height:19px;background-color:rgb(255,255,255)"><span style="color:rgb(34,34,34);font-family:Helvetica,Arial,Verdana,san-serif"><span style="line-height:18px"><br>
</span></span></div><div style="color:rgb(51,51,51);font-family:Arial,Tahoma,Helvetica,FreeSans,sans-serif;font-size:15px;line-height:19px;background-color:rgb(255,255,255)"><div><div><span style="color:rgb(34,34,34);font-family:Helvetica,Arial,Verdana,san-serif"><span style="line-height:18px"><b>Egocentrism Bugs</b></span></span></div>
<div><span style="color:rgb(34,34,34);font-family:Helvetica,Arial,Verdana,san-serif"><span style="line-height:18px">The </span></span><span style="color:rgb(34,34,34);font-family:Helvetica,Arial,Verdana,san-serif;line-height:18px">Egocentrism</span><span style="color:rgb(34,34,34);font-family:Helvetica,Arial,Verdana,san-serif"><span style="line-height:18px"> Bugs, stem from the belief that there &quot;is more of their meaning for what they want to accomplish in the program than is actually present in the code.&quot;  Funny, I see these kinds of bugs all the time in my code and those of other experience programmers :)</span></span> </div>
</div></div><div style="color:rgb(51,51,51);font-family:Arial,Tahoma,Helvetica,FreeSans,sans-serif;font-size:15px;line-height:19px;background-color:rgb(255,255,255)"><br></div><div style="color:rgb(51,51,51);font-family:Arial,Tahoma,Helvetica,FreeSans,sans-serif;font-size:15px;line-height:19px;background-color:rgb(255,255,255)">
<b>The Super Bug</b></div><div style="color:rgb(51,51,51);font-family:Arial,Tahoma,Helvetica,FreeSans,sans-serif;font-size:15px;line-height:19px;background-color:rgb(255,255,255)"><div style="background-image:initial;border-bottom-width:0px;border-color:initial;border-left-width:0px;border-right-width:0px;border-style:initial;border-top-width:0px;margin-bottom:10px;margin-top:10px;outline-color:initial;outline-style:initial;outline-width:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px;vertical-align:baseline">
<span style="color:rgb(34,34,34);font-family:Helvetica,Arial,Verdana,san-serif"><span style="line-height:18px">He concludes that all these derive from the Super Bug:</span></span></div></div><br style="color:rgb(51,51,51);font-family:Arial,Tahoma,Helvetica,FreeSans,sans-serif;font-size:15px;line-height:19px;background-color:rgb(255,255,255)">
<div class="separator" style="color:rgb(51,51,51);font-family:Arial,Tahoma,Helvetica,FreeSans,sans-serif;font-size:15px;line-height:19px;background-color:rgb(255,255,255);clear:both;text-align:center"><a href="http://4.bp.blogspot.com/-sQRGOhtVBbM/T03XIvqxgvI/AAAAAAAABBg/itlJA6dtKhU/s1600/SuperBug%0D.png" style="text-decoration:none;color:rgb(102,153,204);margin-left:1em;margin-right:1em"><img border="0" height="200" src="http://4.bp.blogspot.com/-sQRGOhtVBbM/T03XIvqxgvI/AAAAAAAABBg/itlJA6dtKhU/s200/SuperBug%0D.png" width="126" style="border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; position: relative; "></a></div>
<div style="color:rgb(51,51,51);font-family:Arial,Tahoma,Helvetica,FreeSans,sans-serif;font-size:15px;line-height:19px;background-color:white;background-image:initial;border-bottom-width:0px;border-color:initial;border-left-width:0px;border-right-width:0px;border-style:initial;border-top-width:0px;margin-bottom:10px;margin-top:10px;outline-color:initial;outline-style:initial;outline-width:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px;vertical-align:baseline">
<span style="color:rgb(34,34,34);font-family:Helvetica,Arial,Verdana,san-serif"><span style="line-height:18px">The idea that there is a &quot;hidden mind somewhere inside the programming language that has intelligent and interpretive powers.&quot;  Not surprising since most of kids experiences are with semi-intelligent beings (aka Parents)</span></span></div>
<div style="color:rgb(51,51,51);font-family:Arial,Tahoma,Helvetica,FreeSans,sans-serif;font-size:15px;line-height:19px;background-color:white;background-image:initial;border-bottom-width:0px;border-color:initial;border-left-width:0px;border-right-width:0px;border-style:initial;border-top-width:0px;margin-bottom:10px;margin-top:10px;outline-color:initial;outline-style:initial;outline-width:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px;vertical-align:baseline">
<span style="color:rgb(34,34,34);font-family:Helvetica,Arial,Verdana,san-serif"><span style="line-height:18px"><br></span></span></div><div style="color:rgb(51,51,51);font-family:Arial,Tahoma,Helvetica,FreeSans,sans-serif;font-size:15px;line-height:19px;background-color:white;background-image:initial;border-bottom-width:0px;border-color:initial;border-left-width:0px;border-right-width:0px;border-style:initial;border-top-width:0px;margin-bottom:10px;margin-top:10px;outline-color:initial;outline-style:initial;outline-width:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px;vertical-align:baseline">
<a href="http://llk.media.mit.edu/papers/MultiLogo.html" style="text-decoration:none;color:rgb(32,132,202);background-color:transparent;background-image:initial;font-family:Helvetica,Arial,Verdana,san-serif;line-height:18px;margin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px;text-shadow:none;vertical-align:baseline">MultiLogo: A Study of Children and Concurrent Programming - Mitchel Resnick</a></div>
<div style="color:rgb(51,51,51);font-family:Arial,Tahoma,Helvetica,FreeSans,sans-serif;font-size:15px;line-height:19px;background-color:white;background-image:initial;border-bottom-width:0px;border-color:initial;border-left-width:0px;border-right-width:0px;border-style:initial;border-top-width:0px;margin-bottom:10px;margin-top:10px;outline-color:initial;outline-style:initial;outline-width:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px;vertical-align:baseline">
Resnick, noted that: </div><blockquote class="tr_bq" style="color:rgb(51,51,51);font-family:Arial,Tahoma,Helvetica,FreeSans,sans-serif;font-size:15px;line-height:19px;background-color:rgb(255,255,255)">&quot;This sequential paradigm does not match the way the real world works: people and animals act in parallel, objects interact in parallel. As a result, many real-world activities can not be modelled in a natural way with sequential programming.&quot;</blockquote>
<div style="color:rgb(51,51,51);font-family:Arial,Tahoma,Helvetica,FreeSans,sans-serif;font-size:15px;line-height:19px;background-color:white;background-image:initial;border-bottom-width:0px;border-color:initial;border-left-width:0px;border-right-width:0px;border-style:initial;border-top-width:0px;margin-bottom:10px;margin-top:10px;outline-color:initial;outline-style:initial;outline-width:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px;vertical-align:baseline">
<span style="color:rgb(34,34,34);font-family:Helvetica,Arial,Verdana,san-serif"><span style="line-height:18px">Thus developed a concurrent or parrallel version of Logo (Multi-Logo), so they kids had a language/environment that more closely matched their view of the world.  Although he did not go &quot;parrallel&quot; enough, and in his lessons learned asked &quot;</span></span></div>
<blockquote class="tr_bq" style="color:rgb(51,51,51);font-family:Arial,Tahoma,Helvetica,FreeSans,sans-serif;font-size:15px;line-height:19px;background-color:rgb(255,255,255)"><span style="color:rgb(34,34,34);font-family:Helvetica,Arial,Verdana,san-serif"><span style="line-height:18px"><u>SideNote</u></span>: I used to think and say that Concurrent Programming was really really hard.  I had plenty of evidence to back this up and had heard and read much smarter people than me saying the same thing.  Then I encountered Etoys (and later Scratch) and started teaching these to kids.  And realized that Concurrent Programming is actually easier (although you do have the added complexity of syntonization issues) .  The problem was not the topic/idea, it was the language we use to think about it.</span></blockquote>
<div style="color:rgb(51,51,51);font-family:Arial,Tahoma,Helvetica,FreeSans,sans-serif;font-size:15px;line-height:19px;background-color:white;background-image:initial;border-bottom-width:0px;border-color:initial;border-left-width:0px;border-right-width:0px;border-style:initial;border-top-width:0px;margin-bottom:10px;margin-top:10px;outline-color:initial;outline-style:initial;outline-width:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px;vertical-align:baseline">
<span style="color:rgb(34,34,34);font-family:Helvetica,Arial,Verdana,san-serif"><span style="line-height:18px">Resnick noted that &quot;</span></span><span style="background-color:transparent;line-height:18px"><span style="color:rgb(34,34,34);font-family:Helvetica,Arial,Verdana,san-serif">In general, students appropriated the idea of agents sending messages to one another quite easily.&quot;  Too bad we don&#39;t teach more Smalltalk.</span></span></div>
<div style="color:rgb(51,51,51);font-family:Arial,Tahoma,Helvetica,FreeSans,sans-serif;font-size:15px;line-height:19px;background-color:white;background-image:initial;border-bottom-width:0px;border-color:initial;border-left-width:0px;border-right-width:0px;border-style:initial;border-top-width:0px;margin-bottom:10px;margin-top:10px;outline-color:initial;outline-style:initial;outline-width:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px;vertical-align:baseline">
<span style="color:rgb(34,34,34);font-family:Helvetica,Arial,Verdana,san-serif"><span style="line-height:18px">He identified three types of bugs specific to concurrent programming:</span></span></div><div style="color:rgb(51,51,51);font-family:Arial,Tahoma,Helvetica,FreeSans,sans-serif;font-size:15px;line-height:19px;background-color:white;background-image:initial;border-bottom-width:0px;border-color:initial;border-left-width:0px;border-right-width:0px;border-style:initial;border-top-width:0px;margin-bottom:10px;margin-top:10px;outline-color:initial;outline-style:initial;outline-width:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px;vertical-align:baseline">
</div><ol style="color:rgb(51,51,51);font-family:Arial,Tahoma,Helvetica,FreeSans,sans-serif;font-size:15px;line-height:19px;background-color:rgb(255,255,255)"><li style="padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;margin-top:0px;margin-right:0px;margin-bottom:0.25em;margin-left:0px">
<span style="color:rgb(34,34,34);font-family:Helvetica,Arial,Verdana,san-serif"><span style="line-height:18px">Problem Decomposition Bugs</span></span></li><li style="padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;margin-top:0px;margin-right:0px;margin-bottom:0.25em;margin-left:0px">
<span style="color:rgb(34,34,34);font-family:Helvetica,Arial,Verdana,san-serif"><span style="line-height:18px">Synchronization Bugs</span></span></li><li style="padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;margin-top:0px;margin-right:0px;margin-bottom:0.25em;margin-left:0px">
<span style="color:rgb(34,34,34);font-family:Helvetica,Arial,Verdana,san-serif"><span style="line-height:18px">Object Oriented Bugs</span></span></li></ol><div style="color:rgb(51,51,51);font-family:Arial,Tahoma,Helvetica,FreeSans,sans-serif;font-size:15px;line-height:19px;background-color:rgb(255,255,255)">
<span style="color:rgb(34,34,34);font-family:Helvetica,Arial,Verdana,san-serif;line-height:18px"><b>Problem Decomposition Bugs</b></span></div><div style="color:rgb(51,51,51);font-family:Arial,Tahoma,Helvetica,FreeSans,sans-serif;font-size:15px;line-height:19px;background-color:rgb(255,255,255)">
<span style="color:rgb(34,34,34);font-family:Helvetica,Arial,Verdana,san-serif"><span style="line-height:18px">&quot;These bugs arise out of students&#39; difficulties decomposing problems into actions to be performed concurrently by multiple agents.&quot;  Here there are two types of decomposition:</span></span></div>
<div style="color:rgb(51,51,51);font-family:Arial,Tahoma,Helvetica,FreeSans,sans-serif;font-size:15px;line-height:19px;background-color:rgb(255,255,255)"><ol><li style="padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;margin-top:0px;margin-right:0px;margin-bottom:0.25em;margin-left:0px">
<span style="color:rgb(34,34,34);font-family:Helvetica,Arial,Verdana,san-serif;line-height:18px">functional</span><span style="color:rgb(34,34,34);font-family:Helvetica,Arial,Verdana,san-serif;line-height:18px"> decomposition - dividing a problem in to simpler sub-problems (what needs to be done)</span></li>
<li style="padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;margin-top:0px;margin-right:0px;margin-bottom:0.25em;margin-left:0px"><span style="color:rgb(34,34,34);font-family:Helvetica,Arial,Verdana,san-serif"><span style="line-height:18px">agency decomposition - dividing the functional pieces among different agents (who does it) </span></span></li>
</ol></div><br style="color:rgb(51,51,51);font-family:Arial,Tahoma,Helvetica,FreeSans,sans-serif;font-size:15px;line-height:19px;background-color:rgb(255,255,255)"><div style="color:rgb(51,51,51);font-family:Arial,Tahoma,Helvetica,FreeSans,sans-serif;font-size:15px;line-height:19px;background-color:white;background-image:initial;border-bottom-width:0px;border-color:initial;border-left-width:0px;border-right-width:0px;border-style:initial;border-top-width:0px;margin-bottom:10px;margin-top:10px;outline-color:initial;outline-style:initial;outline-width:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px;vertical-align:baseline">
<span style="color:rgb(34,34,34);font-family:Helvetica,Arial,Verdana,san-serif;line-height:18px"><b>Synchronization Bugs</b></span></div><span style="font-size:15px;background-color:rgb(255,255,255);color:rgb(34,34,34);font-family:Helvetica,Arial,Verdana,san-serif;line-height:18px"></span><br style="color:rgb(51,51,51);font-family:Arial,Tahoma,Helvetica,FreeSans,sans-serif;font-size:15px;line-height:19px;background-color:rgb(255,255,255)">
<div style="color:rgb(51,51,51);font-family:Arial,Tahoma,Helvetica,FreeSans,sans-serif;font-size:15px;line-height:19px;background-color:rgb(255,255,255)"><span style="color:rgb(34,34,34);font-family:Helvetica,Arial,Verdana,san-serif;line-height:18px">&quot;These bugs arise out of students&#39; difficulties coordinating and orchestrating the activities of multiple agents.&quot;</span></div>
<span style="font-size:15px;background-color:rgb(255,255,255);color:rgb(34,34,34);font-family:Helvetica,Arial,Verdana,san-serif;line-height:18px">These bugs he divides into two type: Unintended Sequentiality and Unintended Concurrency. In these cases the student expected Sequetiality and got Concurrence (or vice versa).</span><br style="color:rgb(51,51,51);font-family:Arial,Tahoma,Helvetica,FreeSans,sans-serif;font-size:15px;line-height:19px;background-color:rgb(255,255,255)">
<div style="color:rgb(51,51,51);font-family:Arial,Tahoma,Helvetica,FreeSans,sans-serif;font-size:15px;line-height:19px;background-color:rgb(255,255,255)"><span style="color:rgb(34,34,34);font-family:Helvetica,Arial,Verdana,san-serif;line-height:18px"><br>
</span></div><div style="color:rgb(51,51,51);font-family:Arial,Tahoma,Helvetica,FreeSans,sans-serif;font-size:15px;line-height:19px;background-color:rgb(255,255,255)"><span style="color:rgb(34,34,34);font-family:Helvetica,Arial,Verdana,san-serif;line-height:18px">It seems that in designing Multi-Logo to deal with synchronization he provided two mechanisms: ask and demand.  Where when you &quot;ask&quot; an agent something (ex: flash light -  for 20 seconds) the request is queued up to be executed in the order received. When you &quot;demand&quot; the agent interrupts what is going on to perform the request (or it might simply put it at the head of the queue, I am not sure).  It is interesting, at least to me, that Scratch, developed later by Resnick and his team,  got rid of the ask and demand and went with a &quot;broadcast&quot; &quot;wait&quot; and &quot;do for X seconds&quot; to allow for synchronization.  I believe this simplifies and avoids a number of problems for novice programmers.</span></div>
<div style="color:rgb(51,51,51);font-family:Arial,Tahoma,Helvetica,FreeSans,sans-serif;font-size:15px;line-height:19px;background-color:rgb(255,255,255)"><span style="color:rgb(34,34,34);font-family:Helvetica,Arial,Verdana,san-serif"><span style="line-height:18px"><br>
</span></span></div><div style="color:rgb(51,51,51);font-family:Arial,Tahoma,Helvetica,FreeSans,sans-serif;font-size:15px;line-height:19px;background-color:rgb(255,255,255)"><span style="color:rgb(34,34,34);font-family:Helvetica,Arial,Verdana,san-serif"><span style="line-height:18px"><b>Object Oriented Bugs</b></span></span></div>
<div style="color:rgb(51,51,51);font-family:Arial,Tahoma,Helvetica,FreeSans,sans-serif;font-size:15px;line-height:19px;background-color:rgb(255,255,255)"><span style="color:rgb(34,34,34);font-family:Helvetica,Arial,Verdana,san-serif"><span style="line-height:18px">&quot;</span></span>These bugs arise out of students&#39; confusion among different types of &quot;objects&quot;  Multi-Logo has multiple types of objects: agents, turtle, and on the Lego Interface box (think early NXT) ports and sensors.  Part of this confusion may have been the overloading of &quot;halt&quot; which for an agent, </div>
<div style="color:rgb(51,51,51);font-family:Arial,Tahoma,Helvetica,FreeSans,sans-serif;font-size:15px;line-height:19px;background-color:rgb(255,255,255)"><div style="background-color:white;background-image:initial;border-bottom-width:0px;border-color:initial;border-left-width:0px;border-right-width:0px;border-style:initial;border-top-width:0px;margin-bottom:10px;margin-top:10px;outline-color:initial;outline-style:initial;outline-width:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px;vertical-align:baseline">
<span style="color:rgb(34,34,34);font-family:Helvetica,Arial,Verdana,san-serif"><span style="line-height:18px">Another quote for Guzial: </span></span></div><div style="background-color:white;background-image:initial;border-bottom-width:0px;border-color:initial;border-left-width:0px;border-right-width:0px;border-style:initial;border-top-width:0px;margin-bottom:10px;margin-top:10px;outline-color:initial;outline-style:initial;outline-width:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px;vertical-align:baseline">
</div><ul style="padding-top:0px;padding-right:2.5em;padding-bottom:0px;padding-left:2.5em;margin-top:0.5em;margin-right:0px;margin-bottom:0.5em;margin-left:0px;line-height:1.4;list-style-position:initial"><li style="padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;margin-top:0px;margin-right:0px;margin-bottom:0.25em;margin-left:0px;border-top-style:none;border-right-style:none;border-bottom-style:none;border-left-style:none;border-width:initial;border-color:initial">
<span style="color:rgb(34,34,34);font-family:Helvetica,Arial,Verdana,san-serif"><span style="line-height:18px">&quot; our current programming languages do not allow people to </span></span><span style="color:rgb(34,34,34);font-family:Helvetica,Arial,Verdana,san-serif;line-height:18px">program the way that they think about the tasks&quot;</span></li>
<li style="padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;margin-top:0px;margin-right:0px;margin-bottom:0.25em;margin-left:0px;border-top-style:none;border-right-style:none;border-bottom-style:none;border-left-style:none;border-width:initial;border-color:initial">
<span style="color:rgb(34,34,34);font-family:Helvetica,Arial,Verdana,san-serif;line-height:18px">Section: &quot;Making tools better by shifting to Visual Programming&quot;</span></li><li style="padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;margin-top:0px;margin-right:0px;margin-bottom:0.25em;margin-left:0px;border-top-style:none;border-right-style:none;border-bottom-style:none;border-left-style:none;border-width:initial;border-color:initial">
<span style="color:rgb(34,34,34);font-family:Helvetica,Arial,Verdana,san-serif;line-height:18px">&quot;</span><span style="color:rgb(34,34,34);font-family:Helvetica,Arial,Verdana,san-serif;line-height:18px">having students build their own </span><span style="color:rgb(34,34,34);font-family:Helvetica,Arial,Verdana,san-serif;line-height:18px">visualizations had significant impact on those students’ learning.&quot;</span></li>
</ul><br><div style="background-color:white;background-image:initial;border-bottom-width:0px;border-color:initial;border-left-width:0px;border-right-width:0px;border-style:initial;border-top-width:0px;margin-bottom:10px;margin-top:10px;outline-color:initial;outline-style:initial;outline-width:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px;vertical-align:baseline">
<span style="color:rgb(34,34,34);font-family:Helvetica,Arial,Verdana,san-serif"><span style="line-height:18px"><b>Resnick&#39;s Lessons Learned</b></span></span></div><div style="background-color:white;background-image:initial;border-bottom-width:0px;border-color:initial;border-left-width:0px;border-right-width:0px;border-style:initial;border-top-width:0px;margin-bottom:10px;margin-top:10px;outline-color:initial;outline-style:initial;outline-width:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px;vertical-align:baseline">
<span style="color:rgb(34,34,34);font-family:Helvetica,Arial,Verdana,san-serif"><span style="line-height:18px">&quot;It is a good idea for students to &quot;play agent&quot;--that is, act out what each agent is supposed to do. This activity requires a group of students, each playing the role of a different agent.&quot;  I really like this approach with novices and often warn students &quot;Step away from the computer and no one will get hurt&quot;.  Having them act out the program and program each other is a good way to do this. </span></span></div>
<div style="background-color:white;background-image:initial;border-bottom-width:0px;border-color:initial;border-left-width:0px;border-right-width:0px;border-style:initial;border-top-width:0px;margin-bottom:10px;margin-top:10px;outline-color:initial;outline-style:initial;outline-width:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px;vertical-align:baseline">
<span style="color:rgb(34,34,34);font-family:Helvetica,Arial,Verdana,san-serif"><span style="line-height:18px">In designing Multi-Logo he realized he did not go far enough in parallelism: &quot;</span></span><span style="background-color:transparent;line-height:18px"><span style="color:rgb(34,34,34);font-family:Helvetica,Arial,Verdana,san-serif">An alternate approach, of course, is to change the design of MultiLogo to match students&#39; preconceptions. For example, I could redesign MultiLogo agents so that each agent could do several things at the same time, in line with students&#39; expectations of &quot;excessive parallelism.&quot;  He later did have agents that can do several things at the same time.  </span></span></div>
<div style="background-color:white;background-image:initial;border-bottom-width:0px;border-color:initial;border-left-width:0px;border-right-width:0px;border-style:initial;border-top-width:0px;margin-bottom:10px;margin-top:10px;outline-color:initial;outline-style:initial;outline-width:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px;vertical-align:baseline">
<span style="color:rgb(34,34,34);font-family:Helvetica,Arial,Verdana,san-serif"><span style="line-height:18px">He also discussed the idea of design the environment match the students pre-conceptions. Would be interesting to find out what problems it solves (and those it doesn&#39;t) and what new problems it creates.</span></span></div>
<div style="background-color:white;background-image:initial;border-bottom-width:0px;border-color:initial;border-left-width:0px;border-right-width:0px;border-style:initial;border-top-width:0px;margin-bottom:10px;margin-top:10px;outline-color:initial;outline-style:initial;outline-width:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px;vertical-align:baseline">
<span style="color:rgb(34,34,34);font-family:Helvetica,Arial,Verdana,san-serif"><span style="line-height:18px"><br></span></span><br><span style="color:rgb(34,34,34);font-family:Helvetica,Arial,Verdana,san-serif"><span style="line-height:18px">FInally, for a real treat<u> </u>at some possibilities for a new programming environment see this:</span></span><br>
<span style="color:rgb(34,34,34);font-family:Helvetica,Arial,Verdana,san-serif"><span style="line-height:18px"><br></span></span></div><div style="text-align:center"></div><div style="text-align:center"><a href="http://vimeo.com/36579366" style="text-decoration:none;color:rgb(102,153,204)">Bret Victor - Inventing on Principle</a> from <a href="http://vimeo.com/cusec" style="text-decoration:none;color:rgb(102,153,204)">CUSEC</a> on <a href="http://vimeo.com/" style="text-decoration:none;color:rgb(102,153,204)">Vimeo</a>.</div>
<div style="background-color:white;background-image:initial;border-bottom-width:0px;border-color:initial;border-left-width:0px;border-right-width:0px;border-style:initial;border-top-width:0px;margin-bottom:10px;margin-top:10px;outline-color:initial;outline-style:initial;outline-width:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px;vertical-align:baseline">
<span style="color:rgb(34,34,34);font-family:Helvetica,Arial,Verdana,san-serif"><span style="line-height:18px"><br></span></span></div><div style="background-color:white;background-image:initial;border-bottom-width:0px;border-color:initial;border-left-width:0px;border-right-width:0px;border-style:initial;border-top-width:0px;margin-bottom:10px;margin-top:10px;outline-color:initial;outline-style:initial;outline-width:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px;vertical-align:baseline">
<span style="color:rgb(34,34,34);font-family:Helvetica,Arial,Verdana,san-serif;line-height:1.4">References:</span></div><div style="background-color:white;background-image:initial;border-bottom-width:0px;border-color:initial;border-left-width:0px;border-right-width:0px;border-style:initial;border-top-width:0px;margin-bottom:10px;margin-top:10px;outline-color:initial;outline-style:initial;outline-width:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px;vertical-align:baseline">
<span style="color:rgb(34,34,34);font-family:Helvetica,Arial,Verdana,san-serif;line-height:1.4">NOTE: </span><span style="color:rgb(34,34,34);font-family:Helvetica,Arial,Verdana,san-serif;line-height:18px">If you have limited time, I would recommend reading (2) then (5), then for a real treat watch the Brett Victor talk (7)</span></div>
<div style="background-color:white;background-image:initial;border-bottom-width:0px;border-color:initial;border-left-width:0px;border-right-width:0px;border-style:initial;border-top-width:0px;margin-bottom:10px;margin-top:10px;outline-color:initial;outline-style:initial;outline-width:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px;vertical-align:baseline">
<span style="color:rgb(34,34,34);font-family:Helvetica,Arial,Verdana,san-serif;line-height:1.4">(1) </span><span style="color:rgb(34,34,34);font-family:Helvetica,Arial,Verdana,san-serif;line-height:1.4">Why Is It So Hard to Learn to Program - Mark Guzdial</span><span style="color:rgb(34,34,34);font-family:Helvetica,Arial,Verdana,san-serif;line-height:1.4"> </span></div>
<div style="background-color:white;background-image:initial;border-bottom-width:0px;border-color:initial;border-left-width:0px;border-right-width:0px;border-style:initial;border-top-width:0px;margin-bottom:10px;margin-top:10px;outline-color:initial;outline-style:initial;outline-width:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px;vertical-align:baseline">
<span style="color:rgb(34,34,34);font-family:Helvetica,Arial,Verdana,san-serif;line-height:1.4">(2) </span><a href="http://www.stanford.edu/~roypea/RoyPDF%20folder/A27_Kurland_Pea_85.pdf" style="text-decoration:none;color:rgb(32,132,202);background-color:transparent;background-image:initial;font-family:Helvetica,Arial,Verdana,san-serif;line-height:1.4;margin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px;text-shadow:none;vertical-align:baseline">Children&#39;s Mental Models of Recursive LOGO Programs - D. Midian Kurland and Roy D. Pea (1985)</a></div>
<div style="background-color:white;background-image:initial;border-bottom-width:0px;border-color:initial;border-left-width:0px;border-right-width:0px;border-style:initial;border-top-width:0px;margin-bottom:10px;margin-top:10px;outline-color:initial;outline-style:initial;outline-width:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px;vertical-align:baseline">
</div><div style="background-image:initial;border-bottom-width:0px;border-color:initial;border-left-width:0px;border-right-width:0px;border-style:initial;border-top-width:0px;color:rgb(34,34,34);font-family:Helvetica,Arial,Verdana,san-serif;line-height:1.4;margin-bottom:10px;margin-top:10px;outline-color:initial;outline-style:initial;outline-width:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px;vertical-align:baseline">
<span style="background-color:transparent;background-image:initial;border-bottom-width:0px;border-color:initial;border-left-width:0px;border-right-width:0px;border-style:initial;border-top-width:0px;color:rgb(0,0,238);margin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;outline-color:initial;outline-style:initial;outline-width:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px;vertical-align:baseline">(3) <a href="http://www.stanford.edu/~roypea/RoyPDF%20folder/A28_Pea_86.pdf" target="_blank" style="text-decoration:none;color:rgb(102,153,204)">Language Independent Conceptual &quot;Bugs&quot; in Novice Programming - Roy D. Pea (1986)</a></span></div>
<div style="background-image:initial;border-bottom-width:0px;border-color:initial;border-left-width:0px;border-right-width:0px;border-style:initial;border-top-width:0px;color:rgb(90,101,121);font-family:Helvetica,Arial,Verdana,san-serif;margin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;outline-color:initial;outline-style:initial;outline-width:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px;vertical-align:baseline">
(4) <a href="http://www.stanford.edu/~roypea/RoyPDF%20folder/A32_Pea_etal_87.pdf" style="text-decoration:none;color:rgb(32,132,202);background-color:transparent;background-image:initial;margin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px;text-shadow:none;vertical-align:baseline">The Buggy Path to the Development of Programming Expertise - Roy D. Pea and Elliot Soloway (1987)</a></div>
<div style="background-image:initial;border-bottom-width:0px;border-color:initial;border-left-width:0px;border-right-width:0px;border-style:initial;border-top-width:0px;color:rgb(34,34,34);font-family:Helvetica,Arial,Verdana,san-serif;line-height:1.4;margin-bottom:10px;margin-top:10px;outline-color:initial;outline-style:initial;outline-width:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px;vertical-align:baseline">
(5) <a href="http://llk.media.mit.edu/papers/MultiLogo.html" style="text-decoration:none;color:rgb(32,132,202);background-color:transparent;background-image:initial;margin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px;text-shadow:none;vertical-align:baseline">MultiLogo: A Study of Children and Concurrent Programming - Mitchel Resnick</a> (1990)</div>
<div style="background-image:initial;border-bottom-width:0px;border-color:initial;border-left-width:0px;border-right-width:0px;border-style:initial;border-top-width:0px;color:rgb(34,34,34);font-family:Helvetica,Arial,Verdana,san-serif;line-height:1.4;margin-bottom:10px;margin-top:10px;outline-color:initial;outline-style:initial;outline-width:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px;vertical-align:baseline">
(6) <a href="http://coweb.cc.gatech.edu/guzdial/uploads/18/novice-envs.pdf" style="text-decoration:none;color:rgb(32,132,202);background-color:transparent;background-image:initial;margin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px;text-shadow:none;vertical-align:baseline">Programming Environments for Novices - Mark Guzdial (2002)</a></div>
<div style="background-image:initial;border-bottom-width:0px;border-color:initial;border-left-width:0px;border-right-width:0px;border-style:initial;border-top-width:0px;color:rgb(34,34,34);font-family:Helvetica,Arial,Verdana,san-serif;line-height:1.4;margin-bottom:10px;margin-top:10px;outline-color:initial;outline-style:initial;outline-width:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px;vertical-align:baseline">
(7) <a href="http://www.google.com/url?sa=t&amp;rct=j&amp;q=&amp;esrc=s&amp;source=web&amp;cd=1&amp;ved=0CCkQtwIwAA&amp;url=http%3A%2F%2Fvimeo.com%2F36579366&amp;ei=KsZNT67SJ4GCgwf1-Lm_Ag&amp;usg=AFQjCNGHACfYpq0IFm1Krb2xBGWAF-_JLw&amp;sig2=eGsjoGhKYkMHkr4HmZLCyw" style="text-decoration:none;color:rgb(32,132,202);background-color:transparent;background-image:initial;margin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px;text-shadow:none;vertical-align:baseline">Brett Victor - Inventing on Principle (2012)</a></div>
</div>