<story><title>Learning Online</title><url>http://christinacacioppo.com/blog/learning-online</url><text></text></story><parent_chain></parent_chain><comment><author>zamfi</author><text>I really enjoyed reading this piece. It echoed many of the thoughts I&amp;#x27;ve had over the past ten years of teaching programming off and on, and many of the frustrations I&amp;#x27;ve had with existing online learn-to-code tools. (I actually wrote one such tool back in 2007, an interactive learn-to-code webapp called the AppJet Learn to Program Guide.)&lt;p&gt;In my experience, puzzling through problems with quick iteration and support from a mentor is the most effective way to learn programming. Especially in the early stages, as Christina identifies, the hardest task is simply articulating an algorithm in English:&lt;p&gt;&amp;gt; For all the hemming about programming languages, the hardest part for these students was solving puzzles in English, not Java. Often, they’d skip to the Java, glossing over their logic. This didn’t work, but “forget Java for a moment; what are you trying to do in English?” and “How would you explain what you’re trying to do to a 5 year-old?” were the two questions most likely to unstick them. Once they explained the logic – “go through all the letters. If you find an A, swap it with the prior letter” – the Java came easily.&lt;p&gt;Nearly all online tools I&amp;#x27;ve tried come up short in this regard, because of the major stumbling block that is building an accurate mental model (an &amp;quot;intuition&amp;quot;) for how computers run your program. None of these tools tell you how to correct your mental model, because none of them really identify your mental model in the first place. For this, a human teacher is very useful!&lt;p&gt;Tools like the one Christina is building -- tools that allow for quick iteration and quick communication between learner and teacher -- are critical in that they let teachers focus on the hard part, on developing that intuition.&lt;p&gt;Christina, I fully support your effort to create tools that help humans teach other humans how to program!</text></comment>
<story><title>Learning Online</title><url>http://christinacacioppo.com/blog/learning-online</url><text></text></story><parent_chain></parent_chain><comment><author>teach</author><text>Hey, Christina.&lt;p&gt;Really thought-provoking article! I&amp;#x27;ve been teaching students to code for seventeen years, and your experience dovetails with mine. (Disclosure: I&amp;#x27;m also the author of &amp;#x27;Learn Java the Hard Way&amp;#x27;.)&lt;p&gt;I must admit that I&amp;#x27;m skeptical that any &amp;quot;regular&amp;quot; student could learn Java well enough to pass the APCS exam in only twenty hours.&lt;p&gt;Can you explain a little better about the population you&amp;#x27;re working with? These are high-aptitude students with prior programming experience, no?</text></comment>