<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Tahoma
}
--></style></head>
<body class='hmmessage'><div dir='ltr'>
<p style="font-size: 12px; "><font face="Verdana">Hi Steve, Gerald, and all…</font></p>
<p style="font-size: 12px; min-height: 14px; "><font face="Verdana"><br></font></p>
<p style="font-size: 12px; "><font face="Verdana">I was enrolled in the MOOC Python course that ran simultaneously with the Stanford Venture Lab course Steve and I were both taking. After the first couple of weeks I found that trying to do both at once was too much, so I set aside Python for another time. However, I did do enough of it to realize they had some excellent resources that you might find useful with your students. </font></p>
<p style="font-size: 12px; min-height: 14px; "><font face="Verdana"><br></font></p>
<p style="font-size: 12px; "><font face="Verdana">One of these is Code Academy (<a href="http://www.codecademy.com">http://www.codecademy.com</a>). The lessons there are progressively more challenging and have the learner work on some of the things you have already mentioned. There are occasional bugs in the system, but most of the time it works quite well.</font></p>
<p style="font-size: 12px; min-height: 14px; "><font face="Verdana"><br></font></p>
<p style="font-size: 12px; "><font face="Verdana">The textbook they were using was "How To Think Like A Computer Scientist" and the price is right… it's free (<a href="http://www.openbookproject.net/thinkcs/python/english2e/">http://www.openbookproject.net/thinkcs/python/english2e/</a>)</font></p>
<p style="font-size: 12px; min-height: 14px; "><font face="Verdana"><br></font></p>
<p style="font-size: 12px; "><font face="Verdana">They also used a set of recorded lectures from a class as previously taught at MIT but, for your students, I don't think they would be as useful. Additional homework assignments to go with the lectures (and lecture notes) were also provided/used.</font></p>
<p style="font-size: 12px; min-height: 14px; "><font face="Verdana"><br></font></p>
<p style="font-size: 12px; "><font face="Verdana">The biggest weakness I found </font><span style="font-family: Verdana; ">in the course </span><span style="font-family: Verdana; ">was the lack of human interaction. It was run by a machine and every week you would get a message sent by "The Machine" which told you was to be done in the next week. If you asked a question, there were a few humans tending the class, but it might take several weeks to get any kind of reply. Several of us from support gang, iaep, and olpc-SoCal were interested in being together in a study group, and asked to do that. But, instead, they put people into groups by time zone. By the time they got back to us telling it was ok and how to do it, I had stopped working on the class and I think the others had as well. (Did anyone on this list actually finish the course?)</span></p>
<p style="font-size: 12px; min-height: 14px; "><font face="Verdana"><br></font></p>
<p style="font-size: 12px; "><font face="Verdana">If it were me, and I sort of wish it were, I would use the Code Academy along with selected parts of the text, giving simple assignments on the basics of a concept, then giving them some challenge assignments. This could be a lot of fun!</font></p><p style="font-size: 12px; "><font face="Verdana"><br></font></p><p style="font-size: 12px; "><font face="Verdana">If you are using Sugar, you might also make use of the examples in Pippy to start and challenge them to modify them in clever ways.</font></p>
<p style="font-size: 12px; min-height: 14px; "><font face="Verdana"><br></font></p>
<p style="font-size: 12px; "><font face="Verdana">Caryl (retired… former AP Computer Science teacher (when it was still all in Pascal!))</font></p><br><div><div id="SkyDrivePlaceholder"></div><hr id="stopSpelling">Date: Mon, 14 Jan 2013 20:31:38 -0500<br>From: sthomas1@gosargon.com<br>To: gmanb5@gmail.com<br>CC: iaep@lists.sugarlabs.org<br>Subject: [IAEP] Ideas for Teaching Python<br><br>Gerald,<div><br></div><div>I switched email subjects and figured I would keep this on the IAEP list (as I seem to get bounces from others). As a start, below is from an email I sent to one of the parents:</div><div><br></div>
<blockquote style="border:none;padding:0px"><div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)">My approach in general is to try and catch kids doing something interesting and then name it and bring it to the attention of the whole class.  I look for kids passions and try and find ways to build on that.  I try not to explain everything to them, at the same time I can't expect them to re-create all we have learned throughout history without falling into the same traps and making the same mistakes.  So I also try and give them examples of "good literature" (via code walk throughs and explanations of concepts, trying to relate it to things they know).  Note: I often fail to acheive my goals, but I keep trying. Ideas and suggestions always welcome.</div>
</div><div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)"><br></div></div><div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)">
I also try to give some "step away from the computer and no one gets hurt" lessons. This is similar to the <a href="http://csunplugged.org/" style="color:rgb(17,85,204)" target="_blank">CS Unplugged</a> stuff and "How to Program your parents" like what they do <a href="http://drtechniko.com/2012/04/09/how-to-train-your-robot/" style="color:rgb(17,85,204)" target="_blank">here</a>.</div>
</div><div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)"><br></div></div><div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)">
Two exercises you can do with Jonathan which are from one of the classes he missed.  One involved asking them how to find a name in a phonebook, explaining how long it would take to go one by one through all the names.  Then asking them to rip the phonebook in half and throw away the half that doesn't have the name he is looking for (repeat) until you find the name.</div>
</div><div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)"><br></div></div><div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)">
Next is to play a version of "Guess my Number"  (where you tell them higher, lower or correct when they guess).  Play one game where the number is between 1-100.</div></div><div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)">
<br></div></div><div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)"><div>Then have him make a table like the one below:</div></div></div><div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)">
<div><font face="courier new, monospace">|        Numbers |       # Guesses | </font></div></div></div><div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)"><div>
<font face="courier new, monospace">|            10  |                 |</font></div></div></div><div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)"><span style="font-family:'courier new',monospace">|           100  |                 |</span></div>
</div><div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)"><span style="font-family:'courier new',monospace">|         1,000  |                 |</span></div>
</div><div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)"><span style="font-family:'courier new',monospace">|        10,000  |                 |</span></div>
</div><div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)"><span style="font-family:'courier new',monospace">|       100,000  |                 |</span></div>
</div><div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)"><span style="font-family:'courier new',monospace">|     1,000,000  |                 |</span></div>
</div><div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)"><span style="font-family:'courier new',monospace">| 1,000,000,000  |                 |</span></div>
</div><div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)"><span style="font-family:'courier new',monospace">| 4,000,000,000  |                 |</span></div>
</div><div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)"><br></div></div><div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)">
And ask him to fill in How many guesses it would take to guess the number.  If he follows a pattern, compliment him on looking for and using a pattern (even if it's not the right one)</div></div><div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)">
<br></div></div><div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)"><br></div></div><div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)">
Then have him make a table like the one below:</div></div><div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)"><font face="courier new, monospace">| Numbers | Maximum Guesses | </font></div>
</div><div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)"><font face="courier new, monospace">|      2  |                 |</font></div></div><div><span style="color:rgb(34,34,34);font-size:13px;background-color:rgb(255,255,255);font-family:'courier new',monospace">|      3  |                 |</span></div>
<div><span style="color:rgb(34,34,34);font-size:13px;background-color:rgb(255,255,255);font-family:'courier new',monospace">|      4  |                 |</span></div><div><span style="color:rgb(34,34,34);font-size:13px;background-color:rgb(255,255,255);font-family:'courier new',monospace">|      5  |                 |</span></div>
<div><span style="color:rgb(34,34,34);font-size:13px;background-color:rgb(255,255,255);font-family:'courier new',monospace">|      6  |                 |</span></div><div><span style="color:rgb(34,34,34);font-size:13px;background-color:rgb(255,255,255);font-family:'courier new',monospace">|      7  |                 |</span></div>
<div><span style="color:rgb(34,34,34);font-size:13px;background-color:rgb(255,255,255);font-family:'courier new',monospace">|      8  |                 |</span></div><div><span style="color:rgb(34,34,34);font-size:13px;background-color:rgb(255,255,255);font-family:'courier new',monospace">|      9  |                 |</span></div>
<div><span style="color:rgb(34,34,34);font-size:13px;background-color:rgb(255,255,255);font-family:'courier new',monospace">|      10 |                 |</span></div><div><span style="color:rgb(34,34,34);font-size:13px;background-color:rgb(255,255,255);font-family:'courier new',monospace">|      11 |                 |</span></div>
<div><span style="color:rgb(34,34,34);font-size:13px;background-color:rgb(255,255,255);font-family:'courier new',monospace">|      12 |                 |</span></div><div><span style="color:rgb(34,34,34);font-size:13px;background-color:rgb(255,255,255);font-family:'courier new',monospace">|      13 |                 |</span></div>
<div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)"><br></div></div><div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)">
Tell him you are "evil" and will change your number as often as possible and ask how many guesses it will take to find the answer.</div></div><div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)">
At some point you can write down the list of numbers (pick an odd number, so he can pick the one exactly in the middle) and then ask okay how many left.  The goal is to make the invisible visible and show him how you are getting rid of ~1/2 each time.  Then ask him, how many for 16, 32, 64 (you get the idea).</div>
</div><div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)"><br></div></div><div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)">
Then ask him to look back at the first table once he figures it out how it works and ask again how many guesses.</div></div><div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)">
<br></div></div><div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)">Then ask what is similar between the phone book excercise and the "Guess my Number" excercise.</div>
</div><div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)"><br></div></div><div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)">
The key to focus on and repeat a few times is how you can take a simple set of steps and just keep repeating them to do amazing things.</div></div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)">
<br></div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)">(In response to a question from the parent about this email:)</div><blockquote class="ecxgmail_quote" style="border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div>Homework for this week:</div><div><br></div><div>1) Write your madlibs programs in python 3 and send them to me</div><div>2) Go to <a href="http://www.udacity.com/" target="_blank">www.udacity.com</a> and sign up for CS101</div>
<div>3) Complete Unit 1:1-13 of CS101 and send me a screenshot showing completion</div><div>4) When watching section 11 - Backus Naur Form, think about how it applies to our MadLibs game and also how it relates tot he syntax errors we got when coding (great job Colleen in recognizing and properly naming them).</div>
<div><br></div><div>Some of the Big Ideas we went over in class:</div><div><ul><li>We walked up and down "The Ladder of Abstraction"</li><ul><li>From 0 and 1 ==> 26 letters of the alphabet ==> words ==> sentences ... to trillions of words in published books</li>
</ul><li>Using a few simple "first principle" building blocks we can create amazing things</li><ul><li>When working on a program or any project, think about what are the basic first principle ideas I can use to build powerful ideas</li>
<li></li></ul></ul></div></blockquote><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)"><br></div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)">
 what I meant by trying to teach them about the "Ladder of Abstraction"...</div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)"><br></div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px">
<span style="background-color:rgb(255,255,255)">The main idea is levels of <span class="ecxil">abstraction</span> in programming.  I want them to start thinking about and hopefully seeing how you can walk up and down the <span class="ecxil">ladder</span> and how to find the appropriate first principle building blocks.  <span class="ecxil">Ladder</span> isn't a perfect analogy but I think its a good one to start with.</span></div>
</blockquote><div><br></div><div>Note, I have the advantage of teaching an "after school" course to a small group of homeschoolers (and one "schooler") we meet once a week for about 90 minutes.</div><div>
<br></div><div>The Udacity CS101 has some great material to help me flip the classroom.   I also am looking at using </div><h3 class="ecxr" style="font-weight:normal;padding:0px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:rgb(34,34,34);background-color:rgb(255,255,255)">
<span style="font-family:arial,sans-serif;font-size:medium"><a href="http://interactivepython.org/courselib/static/thinkcspy/index.html" class="ecxl ecxvst" style="color:rgb(102,0,153)" target="_blank"><em style="font-weight:bold;font-style:normal">How to Think Like a Computer Scientist</em> - Runestone Interactive</a>  </span>which I like because of the way</h3>
<div>it helps make the invisible (what's going on inside the computer) visible. Mark Guzdial made a comment on it saying it had a bit too much cognitive overload, but I don't know of any other one as good.  I would also suggest you check Mark's site for his (and his wife's) Python course  <a href="http://coweb.cc.gatech.edu/mediaComp-teach" target="_blank">http://coweb.cc.gatech.edu/mediaComp-teach</a>.  The book is ridiculously expensive (ie: it's a college textbook), but the slides are freely available and very well done.  They can give you some ideas.</div>
<div><br></div><div>One thing (along the lines) of Mark's course would be to have the kids create their own image editor's.  One of my former student's built his own in Python and it is motivating for kids.</div>
<div><br></div><div>My goals are to try and give kids multiple experiences (learn/experience ideas in multiple ways) with certain "big ideas" or concepts. I often fail, but keep trying.</div><div><br></div><div>
Couple of questions about your course:</div><div>1) how often do you meet</div><div>2) how long are the class periods</div><div>3) what kind of programming experience is expected of the students</div><div><br></div><div>Stephen</div>
<div><br><div class="ecxgmail_quote">On Mon, Jan 14, 2013 at 6:31 PM, Gerald Ardito <span dir="ltr"><<a href="mailto:gmanb5@gmail.com">gmanb5@gmail.com</a>></span> wrote:<br><blockquote class="ecxgmail_quote" style="border-left:1px #ccc solid;padding-left:1ex">
<div>I am still trying to wrap my head about the key goals and projects. It would be great to share ideas.</div><div class="ecxyj6qo ecxajU"><div id="ecx:3db" class="ecxajR" tabindex="0"></div></div></blockquote></div><br><br></div>
<br>_______________________________________________
IAEP -- It's An Education Project (not a laptop project!)
IAEP@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/iaep</div>                                      </div></body>
</html>