<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 "Novice" 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't provide enough details or specifics on "Why it is so hard to learn to Program?"  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 "assumption of different lines in a program can be active or known by the computer at the same time or in parallel".  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 "Hello"
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 "Hello" would print after "10".</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's mind that "the program has goals and knows or sees what will happen elsewhere in itself."</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 "is more of their meaning for what they want to accomplish in the program than is actually present in the code."  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 "hidden mind somewhere inside the programming language that has intelligent and interpretive powers."  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)">"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."</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 "parrallel" enough, and in his lessons learned asked "</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 "</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."  Too bad we don'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">"These bugs arise out of students' difficulties decomposing problems into actions to be performed concurrently by multiple agents."  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">"These bugs arise out of students' difficulties coordinating and orchestrating the activities of multiple agents."</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 "ask" an agent something (ex: flash light -  for 20 seconds) the request is queued up to be executed in the order received. When you "demand" 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 "broadcast" "wait" and "do for X seconds" 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">"</span></span>These bugs arise out of students' confusion among different types of "objects"  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 "halt" 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">" 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"</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: "Making tools better by shifting to Visual Programming"</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">"</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."</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'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">"It is a good idea for students to "play agent"--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."  I really like this approach with novices and often warn students "Step away from the computer and no one will get hurt".  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: "</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' preconceptions. For example, I could redesign MultiLogo agents so that each agent could do several things at the same time, in line with students' expectations of "excessive parallelism."  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'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'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 "Bugs" 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&rct=j&q=&esrc=s&source=web&cd=1&ved=0CCkQtwIwAA&url=http%3A%2F%2Fvimeo.com%2F36579366&ei=KsZNT67SJ4GCgwf1-Lm_Ag&usg=AFQjCNGHACfYpq0IFm1Krb2xBGWAF-_JLw&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>