<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress.com" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>

<channel>
	<title>computing-education &amp;laquo; WordPress.com Tag Feed</title>
	<link>http://en.wordpress.com/tag/computing-education/</link>
	<description>Feed of posts on WordPress.com tagged "computing-education"</description>
	<pubDate>Wed, 02 Dec 2009 01:04:24 +0000</pubDate>

	<generator>http://en.wordpress.com/tags/</generator>
	<language>en</language>

<item>
<title><![CDATA[A new generation of hackers]]></title>
<link>http://computinged.wordpress.com/2009/12/01/a-new-generation-of-hackers/</link>
<pubDate>Tue, 01 Dec 2009 14:31:30 +0000</pubDate>
<dc:creator>Mark Guzdial</dc:creator>
<guid>http://computinged.wordpress.com/2009/12/01/a-new-generation-of-hackers/</guid>
<description><![CDATA[Fostered by Make magazine and Boingboing.net, members of the current generation of hackers are as li]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><blockquote><p>Fostered by Make magazine and Boingboing.net, members of the current generation of hackers are as likely to call themselves &#8220;makers&#8221; and cite a background in woodworking or welding as tantamount to their skills with computers. The common principle of making, rather than buying, things guides this technologically bent, do-it-yourself culture, which has blown up in the form of community spaces across the U.S. and Europe over the past two years&#8230;&#8221;That speaks to what we&#8217;re all about,&#8221; Storey says. &#8220;Making cool stuff out of nothing.&#8221;</p></blockquote>
<p>via <a href="http://atlanta.creativeloafing.com/gyrobase/freeside_atlanta_makes_space_for_local_hackers/Content?oid=1214636">Freeside Atlanta makes space for local hackers.</a></p>
<p>I was intrigued by the community of hackers described in this article who &#8220;hack&#8221; more than computers.  But it&#8217;s the very last line of the article that really caught my eye.</p>
<p>&#8220;Making cool stuff out of nothing.&#8221;  That&#8217;s the essence of what we do in computing.  The <a href="http://www.acm.org/press-room/news-releases/nic-interim-report">ACM-WGBH study of the image of computing </a>highlighted how attractive that aspect of our field is for students.  We need to figure out how to highlight that image in our classes: &#8220;Making, rather than buying&#8221; and &#8220;Making cool stuff out of nothing.&#8221;</p>
<p>&#160;</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[The role of debate in learning]]></title>
<link>http://computinged.wordpress.com/2009/11/24/the-role-of-debate-in-learning/</link>
<pubDate>Tue, 24 Nov 2009 14:07:20 +0000</pubDate>
<dc:creator>Mark Guzdial</dc:creator>
<guid>http://computinged.wordpress.com/2009/11/24/the-role-of-debate-in-learning/</guid>
<description><![CDATA[&#8220;With my undergraduates, the hardest thing to teach them to do is make an argument, support th]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><blockquote><p>&#8220;With my undergraduates, the hardest thing to teach them to do is make an argument, support that argument with evidence and bend and move and evolve,&#8221; said Susan Herbst, a professor of public policy at Georgia Tech. &#8220;Debate is an accelerated way to teach students to do that.&#8221;</p></blockquote>
<p>via <a href="http://www.chicagotribune.com/news/chi-talk-keilman-debatenov24,0,7098787.story">High school debate: We all need a lesson in it &#8212; chicagotribune.com</a>.</p>
<p>I am actually teaching two educational technology classes this semester, one for undergraduates and one for graduates.  They happen to meet in the same room at the same time, which means it&#8217;s basically one, large, large-variance course.  I have undergraduates in Computer Science and Computational Media; and MS students in Computer Science, Digital Media, and HCI; and even some PhD students.  I&#8217;m teaching this class around argumentation. </p>
<ul>
<li>In Phase 1 of the class, I gave them a proposition, had them read papers about that proposition, then they wrote me a paper making an argument. The proposition was: &#8220;Computing creates an opportunity to program, and learning to program creates an opportunity to learn other things better.&#8221;  We read Seymour Papert and Alan Kay, Sharon Carver and Elliot Soloway.</li>
<li>In Phase II, I gave them propositions and papers, and they picked proposition (in teams) then presented it and wrote a paper with the argument.
</li>
<li>In Phase III (right now), they invented the proposition and I helped them with the papers.  They&#8217;re presenting for the rest of the term, then owe me a paper at the end.  One group last Thursday defended &#8220;The choice of computer language used in CS1 courses has no great impact on the ability of computer science majors to perform in follow-on computer science courses&#8221; and another team defended &#8220;Instructional video materials can be used to teach declarative and procedural knowledge about computer science, creating expanded opportunities for learning with limited technological investment.&#8221;</li>
</ul>
<p>My reason for this structure is that I&#8217;m trying to avoid graduate students coming to qualifying exams unable to argue a position. Since we&#8217;re a research institution, all students should learn a critical research skill &#8212; how we make an argument based on research literature.  Even for the undergraduates, it&#8217;s worthwhile for them to learn in terms of argument, evidence, and story.</p>
<p>The presentations have been so-so.  They sometimes work really hard to involve the audience and present interesting material.  However, in so doing, they often miss the argument.  The argument comes through better in the papers.</p>
<p>All the papers have been readable, but few really present an argument.  My undergraduates don&#8217;t write to an audience.  They all spend way too much time setting up their story and making flowery claims about the importance of education and of their proposition &#8212; things that make it easy to hit the 10-12 page expected length but don&#8217;t really speak to me or their classmates as an informed audience.  Surprising to me, only my Masters students from our Digital Media program really know how to make an argument. They are really careful in their analysis, defining their terms, and making their claims. Even PhD students skip basic steps like defining terms.  One recent team completely ignored half their proposition. </p>
<p>I&#8217;m not really surprised.  I spend much of my writing time with my PhD students trying to teach them to write to a <em>story</em> and to defend their argument.  I know that my advisor, Elliot Soloway, spent a <em>lot</em> of effort helping me to tell stories in my papers.  I&#8217;ll bet most advisors do.  So while I might wish for better from our undergraduates, I don&#8217;t expect more than I&#8217;m seeing with regards to writing and argumentation ability. The article referenced above is making a stronger point &#8212; that debate is a critical skill, and we should teach it earlier. I think that Susan Herbst&#8217;s comment above is particularly critical for our graduate students.  They must know how to make an argument, to engage in debate, to tell a story with evidence. </p>
<p>The role that debate (as Susan refers to it &#8212; making an argument, using evidence, telling a story) plays in learning is important in computing education, too, in the sense of the blue-collar vs. white-collar distinction made in the last blog post.  It&#8217;s not clear how much you learn about computer science <em>just</em> by programming.  It&#8217;s clear that you <em>can</em> learn a lot of computer science by programming, if you bring a lot of knowledge to the task in the first place.  If you don&#8217;t know what you&#8217;re doing, if you don&#8217;t understand grammar and the notional machine, you work to correct bugs with random walks of semi-colons.  If you know what you&#8217;re doing, a new bug can become an exploration that leads to new learning.  In my experience, learning from the activity of constructing and designing only really works when there is a base of knowledge to begin with.  It&#8217;s hard to start from programming. </p>
<p>The base of knowledge to learn from construction and design is akin to the elaborated knowledge necessary to engage in a debate.  Then, when you have a bug, it&#8217;s a challenge to your understanding, and you have to &#8220;bend and move and evolve.&#8221;  How do we develop that elaborated knowledge in computer science students?  We lecture at them and have them read a book.  Is that enough?  Does reading a book teach you to have the knowledge of a debater?  What is the analogy of debate for computer science students?  How do we help computer science students develop rich understanding, like that developed through debate?</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Are You a Blue Collar or White Collar Developer? — Datamation.com]]></title>
<link>http://computinged.wordpress.com/2009/11/23/are-you-a-blue-collar-or-white-collar-developer-%e2%80%94-datamation-com/</link>
<pubDate>Mon, 23 Nov 2009 20:31:23 +0000</pubDate>
<dc:creator>Mark Guzdial</dc:creator>
<guid>http://computinged.wordpress.com/2009/11/23/are-you-a-blue-collar-or-white-collar-developer-%e2%80%94-datamation-com/</guid>
<description><![CDATA[Interesting piece (particularly the comment stream) related to a theme in this blog &#8212; that stu]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Interesting piece (particularly the comment stream) related to a theme in this blog &#8212; that students want a job, and how do we teach them about things they ought to know about even if they don&#8217;t recognize that they need it.</p>
<blockquote><p>“You see, I didn’t want to waste my time having to learn about philosophy and political science. I just cared about writing code. Period. All that other stuff would have been worthless… in my humble opinion.”</p></blockquote>
<p>via <a href="http://itmanagement.earthweb.com/features/article.php/3848406/Are-You-a-Blue-Collar-or-White-Collar-Developer.htm">Are You a Blue Collar or White Collar Developer? — Datamation.com</a>.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[What would a CS School of One look like?]]></title>
<link>http://computinged.wordpress.com/2009/11/20/what-would-a-cs-school-of-one-look-like/</link>
<pubDate>Fri, 20 Nov 2009 18:25:05 +0000</pubDate>
<dc:creator>Mark Guzdial</dc:creator>
<guid>http://computinged.wordpress.com/2009/11/20/what-would-a-cs-school-of-one-look-like/</guid>
<description><![CDATA[Each day, students in the School of One are given a unique lesson plan — a &#8220;daily playlist]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><blockquote><p>Each day, students in the School of One are given a unique lesson plan — a &#8220;daily playlist&#8221; — tailored to their learning style and rate of progress that includes a mix of virtual tutoring, in-class instruction and educational video games.</p></blockquote>
<p>via <a href="http://www.time.com/time/specials/packages/article/0,28804,1934027_1934003_1933977,00.html">The School of One &#8211; The 50 Best Inventions of 2009 &#8211; TIME</a>.</p>
<p>If one <em>wanted</em> to do this for an introductory computer science course, what would we do?  What variables do we have available to tailor computing instruction to the individual student?  For example, do we know anything about learning styles for CS?</p>
<p>Here&#8217;s a particular version of that question that says something about the state of computing education: How do you help the student needing remediation?  If you have a student not doing well, what options do you have to help that student learn and catch up?</p>
<p>My sense is: Not many.  Most of our instructional repertoire in introductory computer science consists of material that students read (textbooks, PowerPoint slides), lecture sessions, and having students practice in front of an IDE.  What other options do we have?</p>
<ul>
<li>Tutoring sessions, particularly with <a href="http://portal.acm.org/citation.cfm?id=1629116.1629144">peer-led team learning</a>, could be added to support students who are falling behind.  Essentially, the variable here is &#8220;More teacher time.&#8221;</li>
<li>Changing the pace, though the answer for remediation isn&#8217;t obvious.  Would you give the students more time per programming assignment?  Fewer assignments? Smaller programming assignments?  More but smaller?  Since we know that lower-performing students take more time per assignment, it&#8217;s not clear if it&#8217;s more help to give them more time, or make the assignments smaller (easier?), but maybe more of them to provide more practice.</li>
<li>We could provide students with visualizations, but most of the results I&#8217;ve seen suggest that visualizations help the <em>high-ability students</em> to learn more, but they actually hurt low-ability students.</li>
<li>We have a set of tools that we know are easier to get started with (e.g., Scratch, Alice, Etoys), but they may not be much help once a student has started with a more traditional course and language (Python, Java, C++) and now needs help.  I guess that, if a student was struggling with (say) IF statements in C++, you might use IF statements in Alice to help teach the concept. However, the overhead of learning Alice mid-course might be greater than the benefit, and might really frustrate the student (e.g., &#8220;I&#8217;m trying to understand C++! Why does learning Alice help me with that?!?&#8221;).</li>
<li>There are some tools like <a href="http://home.cc.gatech.edu/dorn/jeroo">JEROO </a>and <a href="http://www.digitaltutor.net/about.php">iList </a>that look like the languages that students are study and have helped students.  We could use more tools like these.</li>
</ul>
<p>In other disciplines, there are remediation options. For disciplines from English to Chemistry, there are Cliff notes, study guides, educational software, and instructional videos.  Some of these exist for CS, but there&#8217;s not much.  For most subjects, you can always fall back on re-learning the prerequisites. For example, if you&#8217;re having trouble with high school mathematics, there are lots of K-8 mathematics materials that one can fall back on.  We don&#8217;t have that bench strength that other disciplines enjoy.  CS instruction in high schools doesn&#8217;t look that different from CS instruction in colleges, in terms of materials and methods used.</p>
<p>I think that this is another example of how our educational practices in CS are aimed at the top half of the students.  The problem is that if you aim for the top half, you lose the bottom half.  However, if we aimed for the bottom half, everyone would learn, even if the top half were not as challenged.  Yes, we&#8217;d prefer to challenge <em>everyone</em>.  But thinking about a CS School of One has me thinking about <em>how</em> we would change how we teach to address the bottom half of students.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Are we a bunch of (particularly) grumpy old men?]]></title>
<link>http://computinged.wordpress.com/2009/11/19/are-we-a-bunch-of-particularly-grumpy-old-men/</link>
<pubDate>Thu, 19 Nov 2009 13:56:01 +0000</pubDate>
<dc:creator>Mark Guzdial</dc:creator>
<guid>http://computinged.wordpress.com/2009/11/19/are-we-a-bunch-of-particularly-grumpy-old-men/</guid>
<description><![CDATA[Yesterday I was in DC for a meeting of NSF Broadening Participation in Computing Alliance investigat]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Yesterday I was in DC for a meeting of NSF <em>Broadening Participation in Computing</em> Alliance investigators.  It was a really useful and challenging meeting, where we had to go around the room and critique each others&#8217; last proposals (!).  The goal was to improve how we&#8217;re thinking about our efforts and how we&#8217;re expressing them.  I&#8217;ll have more to say about the meeting in a moment, but first, I wanted to highlight a meme that was going around the room yesterday.</p>
<p>We computer science faculty have a bad rep!  Over and over yesterday, in one-on-one meetings and in group discussions, the notion that computer science faculty are a <em>particularly grump</em>y and <em>curmudgeonly</em> group kept coming up.  Some examples:</p>
<ul>
<li>&#8220;Our &#60;different kind of computing&#62; faculty are willing to try all kinds of things to attract students and do outreach, but our Computer Science faculty insist that they will <em>only</em> do Scheme!  They&#8217;re just a bunch of curmudgeons!&#8221;</li>
<li>A specialist in working with disabled students said that her colleagues ask her why she decided to work with computing students.  &#8220;Why did I decide to work with the most difficult and grumpy faculty on all of campus?&#8221;</li>
<li>Another PI describing her efforts to inculcate change in her computer science department, &#8220;But we can&#8217;t even get the faculty to learn about new things! They&#8217;re happy with UNIX and want everyone to just do that!&#8221;</li>
</ul>
<p>So my experience is that there is a significant percentage of more senior faculty of <em>all disciplines</em> are fairly set in their ways and are rather &#8220;grumpy&#8221; about change.  Maybe I fall in that category now, so I&#8217;m blinded to the claim I heard yesterday &#8212; that <strong><em>computer science senior faculty are <span style="text-decoration:underline;">particularly</span> resistant to change and grumpy about it.</em></strong></p>
<p>Before Barb Owens or others call me on it &#8212; of <strong><em>course</em></strong>, there are senior CS <em>women</em> faculty, too.  But it is the case that CS faculty of decades past have been male, so the characterization of &#8220;grumpy old men&#8221; is not inaccurate.  And it might be that the male faculty are even grumpier than the female faculty.</p>
<p>I can <em>imagine</em> how the claim that CS faculty are <em>particularly</em> grumpy could be true.  Computer science is a young discipline.  Senior faculty today spent their whole careers defining and defending their turf &#8212; &#8220;This is <em>computer science</em>, and that isn&#8217;t.&#8221;  At the same time, computer science has had dramatic change: From computer time being more expensive than human time, to the reverse; from memory being dear, to memory being plentiful; from sequential processing being the assumption, to today&#8217;s world where parallel processors are all that we can see going forward.  How often does a discipline change so many of its base assumptions in the lifetime of a faculty member?  Change is hard for anyone, and particularly so when you&#8217;ve spent your career making arguments that are weakened or changed by time.</p>
<p>Now, I don&#8217;t <em>know</em> that it&#8217;s true that CS faculty are <em>particularly</em> &#8220;grumpy.&#8221; Maybe it is.  The real point of the BPC discussions was that our resistance to change is counter-productive.  We need students who don&#8217;t look like us.  There are too few students who look and act like us to provide the computing labor and insights that our society needs.  We have to break out of our assumptions and the methods that have served us well up until now.  That&#8217;s hard, but we have to get past the &#8220;grumpiness.&#8221;</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[What makes programmers happy? Students? Standards vs. Flexibility]]></title>
<link>http://computinged.wordpress.com/2009/11/11/what-makes-programmers-happy-students-standards-vs-flexibility/</link>
<pubDate>Wed, 11 Nov 2009 14:12:21 +0000</pubDate>
<dc:creator>Mark Guzdial</dc:creator>
<guid>http://computinged.wordpress.com/2009/11/11/what-makes-programmers-happy-students-standards-vs-flexibility/</guid>
<description><![CDATA[I think the fundamental thing that set Rails apart was a culture of putting the programmer first. Th]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><blockquote><p>I think the fundamental thing that set Rails apart was a culture of putting the programmer first. The idea that Web programming should be fun and that programmers should be enjoying themselves.</p>
<p>The culture bred ideas like Convention over Configuration, where we standardized all the things that programmers do most of the time for most applications anyway.</p></blockquote>
<p>via <a href="http://www.cio.com.au/article/322622/open_source_identity_ruby_rails_creator_david_heinemeier_hansson?pp=2">Open source identity: Ruby on Rails creator David Heinemeier Hansson &#8211; frameworks, open source, open source identity, ruby &#8211; CIO</a>.</p>
<p>What makes programmers happy?  The Ruby on Rails creator says that it is, in part, creating standards (&#8220;Conventions&#8221;) that do things for the students.  Another school of thought is that programmers want flexibility.  These seem to be contrasting perspectives to me.  I suppose that the middle ground is that programmers want things that they don&#8217;t want to do already done for them, and they want flexibility with the things that they want to do.  My bet is that those things (what programmers want to deal with, and what they don&#8217;t want to deal with) vary from domain-to-domain, maybe even programmer-to-programmer.  Hard to design for.</p>
<p>What do we want for students?  Do we want lots of things done for them, or provide them with small pieces (like Lego blocks) that they can put together in a wide variety of different patterns?  Do they want standards or do they want flexibility?  What do we as teachers want for them?  Should we have structures that are in place, so that students can&#8217;t build <em>anything</em> but what they do build is supported (I&#8217;m thinking Alice and Scratch here, as examples)?  Or should we give them maximal flexibility so that they can assemble things and come to understand from the bottom-up (I&#8217;m thinking Pascal and the hardware-first approach of Patt and Patel)?</p>
<p>Bigger question: Should the answers to these things be different?  Is the balance of standards and flexibility that works for programmers what we also want for students?  I&#8217;m not suggesting the exact same tools are right for both novices and for experienced programmers, but I am wondering if the <strong><em>balance</em></strong> between what&#8217;s provided and what&#8217;s flexible might be similar.</p>
<p>Marlene Scardamalia and Carl Bereiter of the University of Toronto&#8217;s Ontario Institute for Studies in Education (OISE) have been arguing for years for &#8220;<a href="http://www.questia.com/googleScholar.qst;jsessionid=K6Fc8vdRrxLgvdHDFVMfw2vx8vHK3DFhf6CpQDyYLGnpYQ0r7N9l!-1625679565!2066618780?docId=95228057">higher levels of agency</a>&#8221; for children.  Think about what you do when you have a question: You go find a source (a website, a book, or an expert) and ask your questions to learn the answer.  Think about what we do with children in most classrooms: You find children who don&#8217;t know the questions or answers, put them in front of teachers who know both the questions and the answers, then the teacher asks the children questions.  Scardamalia and Bereiter want to find ways to put children in the former situation.</p>
<p>What would Scardamalia and Bereiter want to see for computing education?  I suggest that the analogy is that we think about students as <em>wanting</em> to build something, and we&#8217;re about giving them the tools to build that something with as much support and as little irrelevant detail as possible. But how do we get students to learn what&#8217;s useful and important for them, that they might not realize they need or that might not arise when they build yet-another-video-game?  That&#8217;s the real challenge of placing more agency in the hands of the students &#8212; how do you get them to use that agency wisely?</p>
<p>&#160;</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[The need for hybrids: A call for more DBR]]></title>
<link>http://computinged.wordpress.com/2009/11/10/the-need-for-hybrids-a-call-for-more-dbr/</link>
<pubDate>Tue, 10 Nov 2009 14:57:19 +0000</pubDate>
<dc:creator>Mark Guzdial</dc:creator>
<guid>http://computinged.wordpress.com/2009/11/10/the-need-for-hybrids-a-call-for-more-dbr/</guid>
<description><![CDATA[I&#8217;ve been thinking a lot about two of the papers at Informatics Education Europe last week. Fi]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>I&#8217;ve been thinking a lot about two of the papers at <a href="http://conferences.informatik.uni-freiburg.de/IEEIV/home/">Informatics Education Europe</a> last week.</p>
<p>First paper: Faculty at UPC Barcelona decided that students were coming into CS2 with insufficient problem-solving skill.  The decided that part of the problem is that paper-based tests lead to grading based on student <em>intent </em>instead of on the actual code, e.g., we let students get away with more errors.  They decided to move to a pure &#8220;problem-oriented approach&#8221; for their CS1.  Students are given 100 worked example problems, and 200 problems to solve.  Students submit their solutions on-line, and get feedback on how well their programs succeeded against a test suite.  First test is free, all others dock points if unsuccessful.</p>
<p>The project was successful in that students coming into CS2 have much better problem-solving skills.  Unfortunately, only 20-25% of the students make it through.</p>
<p>That result surprised me, given what we know about <a href="http://computinged.wordpress.com/2009/10/02/question-everything-how-we-teach-intro-cs-is-wrong/">worked examples research</a>.  How much do students make use of the worked examples?  Answer: Almost none at all.  Students just try to solve the problems, and don&#8217;t actually try to <em>learn</em> anything.</p>
<p>Second paper: The Open University in The Netherlands actually teaches their CS1 face-to-face, for the most part.  Teacher and students drive to some common location and conduct classes in small groups of about 30. They decided to try an experiment where they ran the classes completely on-line.  One section of 13 was asynchronous &#8212; students posted to a threaded discussion group. Another section of 15 met in a synchronous forum with text chat and a shared whiteboard.  At the end of the 12 week term, the asynchronous class went from 13 down to 1, while the synchronous class went from 15 to 10, which was the drop-out rate that they normally have with face-to-face classes.</p>
<p>While these are both really interesting papers, <strong><em>nobody</em></strong> would ever want to do these classes as described again.  They make for interesting <strong><em>papers</em></strong>, where they only try one pure approach: Just problems, just synchronous, just asynchronous.  A real, successful class would be a <em><strong>hybrid</strong></em> of different approaches.</p>
<ul>
<li>Got an expensive face-to-face class? Add some synchronous on-line activities in lieu of some lectures.</li>
<li>Got an asynchronous class where students are dropping out?  Add some synchronous and even face-to-face sessions to build up motivation.</li>
<li>If students don&#8217;t read the problems, add some assignments where students have to demonstrate that they <em>read</em>, not just <em>coded</em>.  Add some lectures where problems are <em>discussed</em>.</li>
</ul>
<p>Why don&#8217;t we read more papers like that?  Because hybrids don&#8217;t play well with our sense of rigorous experimental research.  We want to know exactly what inputs influenced what outcomes.  We want to know that problems or asynchronous discussions failed or succeeded, period.  Making it <strong><em>work</em></strong> doesn&#8217;t make for a paper that gets accepted in many forums.</p>
<p>The learning sciences community faced this same problem.  You can do a study that answers a question and results in a publication, but doesn&#8217;t really result in successful classroom.  Or you can mix things up so that it really works, but then you can&#8217;t get the results published.  They defined a model of research called <a href="http://projects.coe.uga.edu/dbr/explain01.htm">design-based research</a> (DBR), first proposed by Alan Collins and Ann Brown.  The idea is to build a classroom that <em>works</em>.  Through a process of measuring and iterating, or drawing off particular hypotheses to test in laboratory experiments, you develop evidence for what factors are influencing what outcomes.  DBR recognizes, however, that good solutions tend to have multiple interacting factors.</p>
<p>We need hybrid approaches.  Pure approaches only lead to good papers.  We have too many challenges in computing education to aim for only good papers.  We need great<strong><em> </em></strong>papers that show working educational contexts that other can replicate, where the factors are messy and will take us a while to tease apart and understand completely.  Documenting how we get it right <em><strong>and</strong></em><strong> </strong>finding someplace to publish those papers are the first step. Understanding it factor-by-factor is a later step.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Georgia Board of Regents accepts APCS as "counting"]]></title>
<link>http://computinged.wordpress.com/2009/11/05/georgia-board-of-regents-accepts-apcs-as-counting/</link>
<pubDate>Thu, 05 Nov 2009 10:24:28 +0000</pubDate>
<dc:creator>Mark Guzdial</dc:creator>
<guid>http://computinged.wordpress.com/2009/11/05/georgia-board-of-regents-accepts-apcs-as-counting/</guid>
<description><![CDATA[Just found a great piece of email in my (massive!) unread pile from the Board of Regents of the Univ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Just found a great piece of email in my (massive!) unread pile from the <em>Board of Regents</em> of the University System of Georgia.</p>
<blockquote><p>Here’s the latest on the AP CS. After much thought and discussions on the AP CS course, we have decided to accept the AP CS course as a 4<sup>th</sup> course for admission to the USG institutions. However, the course will be listed in  a separate category.</p>
<p>To follow up…..I do have a question for you. Would it be helpful to the students and our institutions if the AP CS course was to be accepted as a fourth science course only, or as a fourth science OR math course? We would like to do what’s best for the students and our institutions.</p></blockquote>
<p>This could hardly be a better answer for us.  Computing <em><strong>is </strong></em>something different, so it gets a new category.  Of course, yes, we have asked for the &#8220;<strong>science OR math</strong>&#8221; option &#8212; which also matches with the understanding that computing has aspects of both, and helps students with either.</p>
<p>There&#8217;s another step yet.  This is the University saying, &#8220;This will count for University admissions.&#8221;  Next, the Georgia Department of Education has to say, &#8220;And we&#8217;ll count that for high school graduation.&#8221;  Normally, that should be nearly automatic, but creating a whole new category of courses may take some more convincing.  We&#8217;ll keep you informed.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Filling the Doughnut-Hole with Computing Education]]></title>
<link>http://computinged.wordpress.com/2009/11/04/filling-the-doughnut-hole-with-computing-education/</link>
<pubDate>Wed, 04 Nov 2009 18:55:35 +0000</pubDate>
<dc:creator>Mark Guzdial</dc:creator>
<guid>http://computinged.wordpress.com/2009/11/04/filling-the-doughnut-hole-with-computing-education/</guid>
<description><![CDATA[When Barb was a little girl, her grandfather was mayor for 10 years of Ubly, a small town (no traffi]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>When Barb was a little girl, her grandfather was mayor for 10 years of Ubly, a small town (no traffic light, just one blinking light in the center of town) in the &#8220;Thumb&#8221; of Michigan.  The town had a movie theater, a grocery, and a thriving social community.  Today, Ubly is much quieter.  The movie theater and grocery have both gone.  Most of the farmers have gone from Ubly.</p>
<p>Yesterday, Barb and I visited Soppe-le-Haut and Soppe-le-Bas in France, the towns where that grandfather&#8217;s ancestors came from.  Both town are small but thriving, with a few dozen homes each.  Each home has a barn. Most of those barns contain tractors.  Almost all of the homes have chickens, cows, or horses in their yards.</p>

<p>I don&#8217;t really understand the economics of that difference.  Why did American small farms fall to large corporate farms, while Europe retained their small farms?  Why did Barb&#8217;s grandfather&#8217;s town shrink while his ancestors town thrived?</p>
<p>A new book by Patrick J. Carr and Maria J. Kefalas is also concerned about the declining rural America.  Their new book <em>Hollowing Out the Middle</em> and <a href="http://www.newsweek.com/id/220216">the interview with them in this week&#8217;s <em>Newsweek</em></a> describes their suggested solution.  In part, they would like to see rural communities draw back young families, with a strong Internet infrastructure, to support telecommuting.  Information technology is one of their targeted industries.</p>
<p>Why doesn&#8217;t that just happen?  In keeping with a recent theme of this blog, these authors point out that the rural education system is aimed at supporting the &#8220;best and brightest,&#8221; and ignoring the bottom half of the students &#8212; who are most likely to stay.</p>
<blockquote><p>First, by changing their attitudes toward their high-school graduates. Small towns traditionally put all their efforts behind the smart students (whom the authors label &#8220;Achievers&#8221;), pushing them out to four-year universities in cities, where they are much more likely to succeed and, unfortunately for the town, much more likely to stay. Students who are less accomplished or driven are given little support, but they are also the ones who are most likely to remain in their small towns post-graduation. In order to make sure these kids succeed, and thus benefit the community, the authors argue, they need to be better trained in areas such as computer technology, health care, sustainable agriculture, and green energy, areas geared toward the modern global economy.</p></blockquote>
<p>I suggest that we do not currently know how to make these authors&#8217; vision come to fruition.  Our CS1 methods lose the bottom 30-50% of the students.  Those are the students that these authors would like to see become the backbone of the rural economy in the United States, telecommuting to become part of distributed software development teams.  We need to develop teaching methods that lead to success for a greater number of students, to educate the &#8220;rest&#8221; of the students, for visions like this to succeed.</p>
<p>&#160;</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Guitar Hero as a Form of Scaffolding]]></title>
<link>http://computinged.wordpress.com/2009/10/29/guitar-hero-as-a-form-of-scaffolding/</link>
<pubDate>Thu, 29 Oct 2009 13:52:16 +0000</pubDate>
<dc:creator>Mark Guzdial</dc:creator>
<guid>http://computinged.wordpress.com/2009/10/29/guitar-hero-as-a-form-of-scaffolding/</guid>
<description><![CDATA[My daughter turned 12 on Tuesday, and unfortunately, she was ill.  Dad hung out with her, and played]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>My daughter turned 12 on Tuesday, and unfortunately, she was ill.  Dad hung out with her, and played whatever video games she wanted.  One of those she picked was <em>Guitar Hero</em>, so I finally got time to play it repeatedly.  Y&#8217;know &#8212; it was kind of fun!</p>
<p>Back in December, when I first got Guitar Hero, <a href="http://www.amazon.com/gp/blog/post/PLNKT48XX04S05VW">I wrote a blog post</a> where I agreed with Alan that Guitar Hero is not nearly as good as learning a real musical instrument.  At that time, I wrote:</p>
<blockquote><p>Guitar Hero might still be fun.  But it&#8217;s just fun.  I might learn to do well with it.  But it would be learning that I don&#8217;t particularly value, that makes me better.</p></blockquote>
<p>Now I&#8217;m thinking that I might want to eat those words.  I found Guitar Hero <em>hard</em>.  I own a guitar and have taken guitar lessons for two semesters.  (Even putting it in terms of &#8220;semesters&#8221; suggests how long ago it was.)  Some of my challenges in learning to play a guitar included doing two different things with my hands, and switching chords and strumming to keep the rhythm.  I noticed that <em>that&#8217;s</em> exactly what I was having a hard time doing with Guitar Hero.  I also noticed the guitar parts of rock songs &#8212; songs that I had heard a million times before but never had noticed all the guitar parts previously. I noticed because I <em>missed</em> my cues, and so those guitar parts were <em>missing</em>.  While I have known Foghat and Pat Benatar for literally decades, Guitar Hero had me listening in a different way.</p>
<p>It occurred to me that Guitar Hero could be a form of <a href="http://projects.coe.uga.edu/epltt/index.php?title=Scaffolding">scaffolding</a>, a <a href="http://en.wikipedia.org/wiki/Cognitive_load">reduction in cognitive load that allows one to focus</a> on one set of skills before dealing with all the skills at once.  Cognitive scaffolding is much like the physical scaffolding, &#8220;a temporary support system used until the task is complete and the building stands without support.&#8221;  Now, Guitar Hero would only be successful as a form of scaffolding if it actually leads to the full task, that it doesn&#8217;t supplant it.  In education terms, if Guitar Hero could <em>fade</em> and if it doesn&#8217;t lead to negative transfer, e.g., &#8220;I&#8217;m great at Guitar Hero, but a real guitar is <em>completely</em> different.&#8221;</p>
<p>I did some hunting for studies that have explored the use of Guitar Hero to scaffold real music education.  I could not find any educational psychology or music education studies that have explored Guitar Hero as a form of scaffolding or as a tutor to reduce cognitive load.  I did find papers in music technology that hold up Guitar Hero <em>as a model for future educational music technology!</em> My favorite of these is a paper by <a href="http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.89.4435&#38;rep=rep1&#38;type=pdf">Percival, Wang, and Tzanetakis that provides an overview </a>of how multimedia technolgoies are being used to assist in music education.  They point out additional lessons that students are learning with tools like Guitar Hero that I hadn&#8217;t noticed.  For example, the physical effort of playing an instrument is more significant than non-players realize, and Guitar Hero (and similar tools) build up the right muscles in the right ways (or so they theorize &#8212; no direct studies of Guitar Hero are cited).  The paper also argues that getting students to do something <em>daily</em> has a huge impact on music learning and performance, even if it&#8217;s a tutorial activity.</p>
<p>Now here&#8217;s the critical question: Does Guitar Hero <em>lead</em> to real music playing, or is it a stopping point?  Nobody is arguing that playing Guitar Hero is making music, that I can see.  Does it work as scaffolding?</p>
<p>I don&#8217;t know, but I&#8217;m now wondering: Does it matter?  If Guitar Hero <em>stops</em> some people from becoming musicians, then it <em>is</em> a problem.  If some people, who might have pushed themselves to become musicians, decide that Guitar Hero is hard enough, then Guitar Hero is doing a disservice.  But if that&#8217;s not true, and people who <em>never </em>would become musicians, have a better appreciation for the music and a better understanding of the athleticism of musicians because of Guitar Hero, then Guitar Hero is providing a benefit.</p>
<p>These are computing education questions.  You have all heard faculty who insist on using Eclipse in their introductory classes, because that&#8217;s what real software engineers use.  We have recently read in comments on this blog that students should use &#8220;standard tools&#8221; and &#8220;learn science the way scientists understand it.&#8221;  We also know from <a href="http://computinged.wordpress.com/2009/10/02/question-everything-how-we-teach-intro-cs-is-wrong/">educational psychology that engaging introductory students in the same activity as experts only works for the best students</a>.  The bottom half of the students get frustrated and fail.</p>
<p>We need Guitar Hero for computer science.  We need more activities that are <em>not</em> what the experts do, that are fun and get students to practice more often, that are scaffolding, and that reduce cognitive load.  We have some, like <a href="http://scratch.mit.edu">Scratch</a> and <a href="http://www.squeakland.org">eToys</a>.  We need more. Insisting on the experts&#8217; tools for all students leads to the 30-50% failure rates that we&#8217;re seeing today.  We have to be doing more for the <em>rest</em> of the students.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Teach a Kid to Program - Wired How-To Wiki]]></title>
<link>http://computinged.wordpress.com/2009/10/27/teach-a-kid-to-program-wired-how-to-wiki/</link>
<pubDate>Tue, 27 Oct 2009 15:55:09 +0000</pubDate>
<dc:creator>Mark Guzdial</dc:creator>
<guid>http://computinged.wordpress.com/2009/10/27/teach-a-kid-to-program-wired-how-to-wiki/</guid>
<description><![CDATA[You don&#8217;t have to be an engineer to program a computer. In fact, programming is like learning ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><blockquote><p>You don&#8217;t have to be an engineer to program a computer. In fact, programming is like learning another language, which just happens to be easier the younger you are. In many ways, learning a programming language at a young age equips youth with skills that will be very marketable in the future, no matter what profession they decide on later.</p></blockquote>
<p>via <a href="http://howto.wired.com/wiki/Teach_a_Kid_to_Program">Teach a Kid to Program &#8211; Wired How-To Wiki</a>.</p>
<p>There are some interesting suggestions on this page.  I hadn&#8217;t thought about Basic on a TI calculator as a syntax-light intro to computing.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Great Recession caused by sub-standard public education?]]></title>
<link>http://computinged.wordpress.com/2009/10/23/great-recession-caused-by-sub-standard-public-education/</link>
<pubDate>Fri, 23 Oct 2009 16:58:29 +0000</pubDate>
<dc:creator>Mark Guzdial</dc:creator>
<guid>http://computinged.wordpress.com/2009/10/23/great-recession-caused-by-sub-standard-public-education/</guid>
<description><![CDATA[Thomas Friedman has a really interesting NYTimes column about education and the cause of the Great R]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Thomas Friedman has <a href="http://www.nytimes.com/2009/10/21/opinion/21friedman.html?_r=1">a really interesting NYTimes column</a> about education and the cause of the Great Recession this week:</p>
<blockquote><p>Now that we are picking up the pieces, we need to understand that it is not only our financial system that needs a reboot and an upgrade, but also our public school system. Otherwise, the jobless recovery won’t be just a passing phase, but our future.“Our education failure is the largest contributing factor to the decline of the American worker’s global competitiveness, particularly at the middle and bottom ranges,” argued Martin, a former global executive with PepsiCo and Kraft Europe and now an international investor.</p></blockquote>
<p>This theme, that we&#8217;re particularly ignoring the bottom half (2/3&#8217;s?) of our population, occurs again later in the column:</p>
<blockquote><p>&#8220;&#8230;the bottom half of the top, those engineers and programmers working on more routine tasks and not actively engaged in developing new ideas or recombining existing technologies or thinking about what new customers want, have done poorly. They’ve been much more exposed to global competitors that make them easily substitutable.”</p></blockquote>
<p>I have been exploring this theme, that we&#8217;re ignoring all-but-the-best students, in my recent blog posts, about <a href="http://computinged.wordpress.com/2009/10/14/whats-worse-boredom-or-failure/">how we choose exciting the top students instead of educating all</a>, and about <a href="http://computinged.wordpress.com/2009/10/12/who-educates-the-average-students/">how the movement to on-line education tends to wipe out the bottom half of the student body</a>.  The top students don&#8217;t need <a href="http://computinged.wordpress.com/2009/09/22/the-phonics-of-computing-education/">the phonics of computing education</a>, but those lessons that help students move farther and progress faster could do a lot for the bottom half.</p>
<p>Friedman is also saying that <em>what</em> we are teaching has to change, too.  That&#8217;s probably right.  But with 30-50% failure rates in CS1, we are currently not teaching much of anything about computer science to the students in the lower half.  Maybe we should start by helping them succeed in those first classes, so we can get to the entrepeneurship and global thinking that Friedman wants, too.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Hooray for CS Education Week]]></title>
<link>http://computinged.wordpress.com/2009/10/22/hooray-for-cs-education-week/</link>
<pubDate>Thu, 22 Oct 2009 14:29:30 +0000</pubDate>
<dc:creator>Mark Guzdial</dc:creator>
<guid>http://computinged.wordpress.com/2009/10/22/hooray-for-cs-education-week/</guid>
<description><![CDATA[ACM (the Association for Computing Machinery) joins with several partners from the computing communi]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>ACM (the Association for Computing Machinery) joins with several partners from the computing community to commend the U.S. House of Representatives’ passage of a resolution to raise the profile of computer science as a transforming industry that drives technology innovation and bolsters economic productivity.  The resolution, <span class="link-external"><a href="http://thomas.loc.gov/home/gpoxmlc111/hr558_ih.xml" target="_blank">H. RES. 558</a></span>, sponsored by Congressmen Vernon Ehlers (R-MI) and Jared Polis (D-CO), designates the week of December 7 as “National Computer Science Education Week.”</p>
<p>via <a href="http://www.acm.org/press-room/news-releases/cs-education-week/view">Congress Endorses Computer Science Education as Driver of Innovation, Economic Growth — Association for Computing Machinery</a>.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Judy Robertson says to Take Heart]]></title>
<link>http://computinged.wordpress.com/2009/10/21/judy-robertson-says-to-take-heart/</link>
<pubDate>Thu, 22 Oct 2009 00:51:40 +0000</pubDate>
<dc:creator>Mark Guzdial</dc:creator>
<guid>http://computinged.wordpress.com/2009/10/21/judy-robertson-says-to-take-heart/</guid>
<description><![CDATA[In her Blog@CACM posting, Introductory Computer Science Lessons&#8211;Take Heart!, Judy Robertson re]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>In her Blog@CACM posting,<a href="http://cacm.acm.org/blogs/blog-cacm/46781-introductory-computer-science-lessons-take-heart/fulltext"> Introductory Computer Science Lessons&#8211;Take Heart!</a>, Judy Robertson responds to <a href="http://cacm.acm.org/blogs/blog-cacm/45725-how-we-teach-introductory-computer-science-is-wrong/fulltext">my blog about how we don&#8217;t teach CS well according to educational psychology literature</a>.  She argues that <em>Kirchner, Seller, and Clark</em> are not directly speaking to our CS practices and goals (which may be true).  She also suggests that the practices that KSC recommends are those we already practice in CS education, e.g., use of worksheets and multiple worked examples.  That may be true at Judy&#8217;s institution, but is certainly not the case in most US institutions that I visit.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Teaching for Information Rights Defense and Offense]]></title>
<link>http://computinged.wordpress.com/2009/10/12/teaching-for-information-rights-defense-and-offense/</link>
<pubDate>Mon, 12 Oct 2009 19:51:56 +0000</pubDate>
<dc:creator>Mark Guzdial</dc:creator>
<guid>http://computinged.wordpress.com/2009/10/12/teaching-for-information-rights-defense-and-offense/</guid>
<description><![CDATA[Imagine that the United States&#8217; Constitution and Bill of Rights were being re-written today.  ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Imagine that the United States&#8217; Constitution and Bill of Rights were being re-written today.  I&#8217;ll bet that something would be said about personal rights of Information.  I&#8217;m no constitutional law expert, but it looks to my novice eyes as if several rights about information are already there.  We Americans already have a right to own property, and information can represent intellectual property.  We already have a right to privacy, which is used to protect our information from perusal.  We also have a right to bear arms.  While there is some debate as to whether that means individually or in the sense of state militia, I believe that most people believe that they have a right to protect themselves and their property.</p>
<p>Should we teach students how to utilize information technology as an offensive force?  I&#8217;m not suggesting teach them to be rogue hackers or information terrorists.  Some interpret the right to bear arms to mean that people should be invested with the power to overthrow their government, should the people see that as necessary.  Whether you subscribe to that belief or not, it&#8217;s clear that uprisings around the world have been enabled by information technology, from fax machines in China to Twitter and Facebook in Iran.  I watched &#8220;<em>Valkyrie</em>&#8221; this weekend, and visited the Holocaust Museum in DC this last summer, and both experiences impressed and shocked me with how well Nazi Germany used information technology to support and further their agenda.  Information is a property, and information technology is a form of arms.  Students should be aware of how information technology <em>can</em> be used as an offensive force in order to learn how to defend against it.</p>
<p>Most of the new courses being devised to teach &#8220;Computational Thinking&#8221; aim toward defining the big ideas of computation, the powerful &#8220;automation of abstractions&#8221; that enables our society.  I&#8217;ve been thinking lately about what we should be teaching students in terms of being able to protect themselves and how information technology can be used as arms. What should we teach?</p>
<p>Here are a few items on my list:</p>
<ul>
<li>All information that we put in a computer is represented as bits.  A &#8220;bit&#8221; can be represented as a voltage in a wire, or a value in the red channel of a pixel, or as a statistical abnormality in a pattern.  Meaningful data (including code, as for a virus or worm) can be hidden in lots of ways.</li>
<li>Information can be automated.  Programs can generate spam messages that look tailored to the individual and sent to millions.</li>
<li>Information takes time to process.  Thus, too many hits on a server can result in Denial of Service.</li>
<li>Information can be correlated.  All students should see how a database &#8220;join&#8221; works, so that they understand how information about them can be connected to other data elsewhere to develop shockingly complete pictures of themselves (possibly enough to enable identity theft).</li>
<li>All digitized representations are representations, most likely lacking in some detail or some data.  For example, CD&#8217;s can&#8217;t capture all sound (like high-pitched sounds that only a dog can hear), and digital pictures have limits to their resolution and color fidelity.  Similarly, there are holes in any digital information source, which might be exploited.</li>
<li>The Internet is open.  You should presume that all of your sent email, including attachments, is readable by anyone anywhere, as if the reader was sitting at your computer.  To protect the information you send on the network, it should be encrypted, so that a potential reader couldn&#8217;t read it (without the right codes) even if seated at your computer.</li>
<li>Internet protocols are just agreements.  They are not fixed in stone, nor defined by physical or mathematical laws.  They are mostly simple, so it&#8217;s possible to write clients and servers for them.  If necessary, new ones can be recreated.</li>
</ul>
<p>Most of these are probably items on most &#8220;big ideas&#8221; lists. I&#8217;m just suggesting a different perspective to come up with them.  Now, I don&#8217;t believe the Constitution and Bill of Rights are being re-written today. That&#8217;s just a thought experiment.  I <em>do</em> wonder if we should be teaching about information technology (both as property and arms) to support our students in protecting their <em>existing</em> rights.  It&#8217;s a different purpose for &#8220;Computational Thinking&#8221; &#8212; in a defensive and offensive perspective.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[What are the priorities of computer science?]]></title>
<link>http://computinged.wordpress.com/2009/10/08/what-are-the-priorities-of-computer-science/</link>
<pubDate>Thu, 08 Oct 2009 13:48:23 +0000</pubDate>
<dc:creator>Mark Guzdial</dc:creator>
<guid>http://computinged.wordpress.com/2009/10/08/what-are-the-priorities-of-computer-science/</guid>
<description><![CDATA[My colleague, Beki Grinter, just posted an intriguing blog entry titled Reflections on ICT4D which t]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>My colleague, Beki Grinter, just posted an intriguing blog entry titled <a href="http://beki70.wordpress.com/2009/10/07/reflections-on-ict4d/">Reflections on ICT4D</a> which tells us a lot about the priorities in computer science.  &#8220;ICT4D&#8221; is Information and Communications Technologies for (4) the Developing world.  Beki&#8217;s blog talks about the growth of this interdisciplinary field including classes and degree programs (such as the &#8220;Computer4Good&#8221; classes at Georgia Tech that <a href="http://computinged.wordpress.com/2009/06/22/computing-for-evil-isnt-education-a-good/">I&#8217;ve already whined about</a>).</p>
<p>What Beki does in her post is use the emergence of ICT4D to make observations about the assumptions and the priorities of our field.  Some of the ones that particularly struck me:</p>
<ul>
<li>Few people who <em>do</em> computer science living in the conditions of the developing world.  Thus, we can&#8217;t be expected to understand their problems (or rather, some of us <em>may expect</em> that we can, but we honestly can&#8217;t).  Problem exploration and definition is thus an important part of ICT4D, as it is for HCI &#8212; but that may be part of what keeps HCI researchers from being seen as rigorous as others in academia.  Admitting that there are alternative perspectives, views, and experiences of the world, and developing methods for understanding those, should be a <em>contribution</em>, not a <em>detriment.</em></li>
<li>The solutions that we develop in computer science rely on an infrastructure that is invisible to our discipline: a power infrastructure, an educational infrastructure that ensures (for one) that our users can (mostly) read, and a retail infrastructure for distributing our products.  ICT4D is an academic discipline that starts by removing those assumptions.</li>
</ul>
<p>The most interesting insight that I got from Beki&#8217;s article is how we focus on the <em>solutions</em> to the problems in computer science, where ICT4D is about the <em>problems</em>.  As a computing educator, I hear repeatedly from teachers, &#8220;Computer science is problem-solving on computers!&#8221;  Yet, as Beki points out, we organize our discipline and our findings on characteristics of the solution, not the problem.</p>
<ul>
<li>Why are the programming language, HCI, and computing education people in different conferences and journals, if they&#8217;re all about the same <em>problem</em> of human-computer understanding and communication?</li>
<li>The &#8220;biggest question in computer science&#8221; (as Jeanette Wing called it), &#8220;Does P=NP?&#8221; is in some sense a question &#8220;We have these solutions to these problems that are &#8216;NP,&#8217; and we&#8217;re wondering if there is a &#8216;P&#8217; solution to those problems.&#8221;  We haven&#8217;t classified the <em>problem</em>, we&#8217;ve classified the <em>solution</em>, and we&#8217;re wondering if our solutions are in some way general descriptions or characteristics of the problem.</li>
<li>The <a href="http://computinged.wordpress.com/2009/10/06/there-will-always-be-friction/">recent discussion on my last blog post</a> talks about how we in computer science tend to dismiss (as mathematics does, says one commentor) our tools and an understanding of how the tools influence our process.  That&#8217;s <em>how</em> we reach solutions, and we tend not to care about that.  We tend to care about the <em>solutions</em> not the process or tools we used to reach them, and that&#8217;s a shame.  Our solutions have dramatic impacts on society, and it is important to understand how we got there.</li>
</ul>
<p>Beki avoids critiquing computer science (unlike me, I&#8217;m afraid).  Instead, she uses the developing study of ICT4D as a lens or mirror to provide us insights onto what we do, what we assume, and what we prioritize.  I encourage you to take a peek and see what you see in Beki&#8217;s mirror.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[There will always be friction]]></title>
<link>http://computinged.wordpress.com/2009/10/06/there-will-always-be-friction/</link>
<pubDate>Tue, 06 Oct 2009 16:12:23 +0000</pubDate>
<dc:creator>Mark Guzdial</dc:creator>
<guid>http://computinged.wordpress.com/2009/10/06/there-will-always-be-friction/</guid>
<description><![CDATA[I (finally) finished grading midterms and first round of grad student essays from my joint undergrad]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>I (finally) finished grading midterms and first round of grad student essays from my joint undergrad/grad &#8220;Educational Technology&#8221; class last night. The first phase of the class was an exploration of the proposition: &#8220;Computing creates an opportunity to program, and learning to program creates an opportunity to learn other things better.&#8221;</p>
<p>Many of my grad students referenced a wonderful essay by Michael Mateas, analyzing the Alan Perlis 1961 talk where he called for everyone at the university to learn to program:<a href="http://www.etc.cmu.edu/etcpress/node/205"> Procedural Literacy: Educating the New Media Practitioner</a>.  An often quoted section from Michael&#8217;s essay focused on an interaction between Alan Perlis and Peter Elias, where Elias saw programming as a mere technician&#8217;s job:</p>
<blockquote><p>“I have a feeling that if over the next ten years we train a third of our undergraduates at M.I.T. in programming, this will generate enough worthwhile languages for us to be able to stop, and that succeeding undergraduates will face the console with such a natural keyboard and such a natural language that there will be very little left, if anything, to the teaching of programming…&#8221;</p></blockquote>
<p>Michael disagrees with Elias&#8217; view:</p>
<blockquote><p>The problem with this vision is that programming is really about describing processes, describing complex flows of cause and effect, and given that it takes work to describe processes, programming will always involve work, never achieving this frictionless ideal. Any tools that reduce the friction for a certain class of programs, will dramatically increase the friction for other classes of programs.</p></blockquote>
<p>Can the programming language simply &#8220;disappear&#8221; from the task of programming?  I think Elias&#8217; view represents that of most computer scientists, that the language is a mere detail in education or in actual programming. It&#8217;s omething to get rid of or ignore. Or is Michael right, and there will always be some &#8220;friction&#8221; involved?  If there is friction, how do we teach it?  Michael <em>wants</em> us to teach the friction, wants us to teach the &#8220;worldview&#8221; that each language builds upon.  His view is like <a href="http://www.bogost.com/books/platform_studies.shtml">Ian Bogost&#8217;s &#8220;Platform Studies&#8221; </a>which suggests that understanding this &#8220;friction&#8221; is important to understanding how the technology has developed and impacts us.</p>
<p>Michael goes on to describe what a curriculum focused on computer-as-medium might look like:</p>
<blockquote><p>It is important not to view computation for new media students as a dumbed-down version of the traditional computer science courses. Teaching programming for artists and humanists shouldn’t merely be simplified computer science with lots of visually engaging examples, but rather an alternative CS curriculum.</p></blockquote>
<p>I think Michael is right. It&#8217;s probably not surprising that Michael was on the committee that created our <em>Computational Medium</em> degree here at Georgia Tech.  What I worry about in Michael&#8217;s comment is the implication for the <em>Computer Science</em> curriculum program.  What does that say about computer science if our goal is to ignore the &#8220;friction,&#8221; when that &#8220;friction&#8221; is actually important, interesting, and is part of what is <a href="http://computinged.wordpress.com/2009/09/22/the-phonics-of-computing-education/">most challenging for our students to learn</a>?  What does it say about computer science if wanting to teach programming for creative expression demands the creation of another curriculum?</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Learning computing on computer, not in IDE]]></title>
<link>http://computinged.wordpress.com/2009/10/05/learning-computing-on-computer-not-in-ide/</link>
<pubDate>Mon, 05 Oct 2009 14:35:34 +0000</pubDate>
<dc:creator>Mark Guzdial</dc:creator>
<guid>http://computinged.wordpress.com/2009/10/05/learning-computing-on-computer-not-in-ide/</guid>
<description><![CDATA[Ray Lister, who&#8217;s been really good at provoking my thinking lately, made an interesting respon]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Ray Lister, who&#8217;s been really good at provoking my thinking lately, made an interesting response to Ed Gehringer on the SIGCSE members list last night:</p>
<blockquote><p>On Sat, 3 Oct 2009, Ed Gehringer wrote:<br />
&#62; In the last few years, I&#8217;ve been concerned that my tests and exams<br />
&#62; have been given in an environment that is increasingly artificial.<br />
&#62; No one would think of writing code while away from a computer &#8230;</p>
<p>Really?</p>
<p>For today&#8217;s novice, who is learning to program in an era where<br />
sitting in front of the computer means that the next compile-and-run is<br />
only a mouse click away, it is tantalizingly easy but ultimately futile<br />
to pursue a strategy of trying to get the computer to do the thinking<br />
for them.</p>
<p>I think we need to place greater explicit pedagogical emphasis on<br />
performing programming activities *away* from the computer.   I&#8217;m<br />
not advocating zero use of machine-based testing. But I think<br />
testing students on paper is part of a healthy grading mix.</p>
<p>(Apologies in advance if I&#8217;ve just started an email storm.)</p>
<p>Raymond</p>
<p>Dr. Raymond Lister<br />
Science Teaching and Learning Fellow,<br />
University of British Columbia,<br />
Department of Computer Science,<br />
Vancouver, Canada</p></blockquote>
<p>Ray&#8217;s call for paper-based <em>and</em> computer-based assessment is interesting.  My recent reading spree on cognitive load has me thinking about student learning activities that are <em>on</em> the computer, but <em>not in</em> the IDE.  For example, how about tools that let a student enter an equation or a loop in response to a question, and then a parser (or maybe even just a tokenizer for some expressions) gives the student feedback that is tuned to that problem?  Not just &#8220;You&#8217;re missing a right paren&#8221; but &#8220;You&#8217;re missing the term where you divide by the count to get the average&#8221; or even &#8220;Hmm, doing it like that will miss the last item in the list.&#8221;  These could be used for testing, as Ed&#8217;s question originally suggested, but also new kinds of student activities for learning.</p>
<p>Intro to CS courses will be about programming, enforced by student and teacher culture.  However, programming is a pretty blunt instrument for helping students learn &#8212; there are lots of cognitively complex activities there, with little useful feedback.  The educational psychology literature I&#8217;ve been reading has me realizing what few tools we computing educators have right now to facilitate student learning about computing.  What if our students can&#8217;t solve the big programming assignments we assign?  Well, we can give them a smaller <strong><em>programming</em></strong> assignment, or a <em>different language for <strong>programming</strong>. </em><a href="http://minkhollow.ca/beckerblog/?p=256">Katrin Becker came up with a nice list</a> in her blog of educational activities that aren&#8217;t just &#8220;generate program (in whatever language).&#8221;</p>
<p>The non-programming activities on Katrin&#8217;s list, though, are mostly without computational support.  Could we use our own technology to support learning about the technology?  How about tools that help a student in identifying the differences between two programs by highlighting comparable parts? Or can parse a student&#8217;s natural language explanation of a program to provide feedback?  Or ask a student to generate the output of a program, and then use pattern matching to give feedback on that response?  We might use all this cool computing technology we have to provide learning experiences and feedback to students <em>other than</em> just programming error messages from the IDE.  Surely, we can figure out more to do with a computer to help learning than just to build more languages and IDEs.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Question Everything: How We Teach Intro CS is Wrong]]></title>
<link>http://computinged.wordpress.com/2009/10/02/question-everything-how-we-teach-intro-cs-is-wrong/</link>
<pubDate>Fri, 02 Oct 2009 19:55:10 +0000</pubDate>
<dc:creator>Mark Guzdial</dc:creator>
<guid>http://computinged.wordpress.com/2009/10/02/question-everything-how-we-teach-intro-cs-is-wrong/</guid>
<description><![CDATA[I&#8217;ve been interested in John Sweller and Cognitive Load Theory since reading Ray Lister&#8217;]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>I&#8217;ve been interested in John Sweller and <a href="http://en.wikipedia.org/wiki/Cognitive_load"><em>Cognitive Load Theory</em></a> since reading <a href="http://crpit.com/confpapers/CRPITV78Lister.pdf">Ray Lister&#8217;s ACE keynote paper</a> from a couple year&#8217;s back.  I&#8217;ve wanted to learn more, and as all professors will tell you, the best way to learn something (or at least, to find time to learn it) is to teach it. So, I assigned several papers on the topic (first three papers in the References) to my educational technology class.  Those three papers set me on a paper finding-and-reading spree which is having a dramatic effect on how I think about we teach about computing.</p>
<p>Let me start out with a strawman position of how we teach introductory computing.  I know it won&#8217;t be how you and your institution teach computing, but I hope that it&#8217;s got some elements of how most American schools teach CS1:</p>
<blockquote><p>We lecture students on how to use a particular element of computing, say variables, assignments, and function calls.  We walk through 2-3 examples of using those elements, and assign reading from a textbook that might present 1-2 of those examples with maybe a couple others.  We then assign a programming assignment that the students have never seen before whose solution will require use of those programming elements, often with authentic tools or IDEs like those used by experts.</p></blockquote>
<p>The original 1985 Sweller and Cooper paper had five studies with similar set-ups.  There are two groups of students, each of which is shown two worked-out algebra problems.  Our experimental group then gets eight more algebra problems, completely worked out. Our control group <em>solves</em> those eight more problems.  As you might imagine, the control group takes five times as long to complete the eight problems than the experiment group takes to simply read them.  Both groups then get new problems to solve. <em><strong>T</strong><strong>he experimental group solves the problems in half the time and with fewer errors than the control group</strong>. Not</em> problem-solving leads to better problem-solving skills than those doing problem-solving. That&#8217;s when Educational Psychologists began to question &#8220;learning by doing&#8221; and the idea that we should best teach problem-solving by having students solve problems.</p>
<p>The paper by Kirschner, Sweller, and Clark is the most outspoken and most interesting of the papers in this thread of research. Their title states their basic premise: &#8220;Why Minimal Guidance During Instruction Does Not Work: An Analysis of the Failure of Constructivist, Discovery, Problem-Based, Experiential, and Inquiry-Based Teaching.&#8221;  They describe the problem like this:</p>
<blockquote><p>On one side of this argument are those advocating the hypothesis that people learn best in an unguided or<br />
minimally guided environment, generally defined as one in which learners, rather than being presented with essential information, must discover or construct essential information for themselves (e.g., Bruner, 1961; Papert, 1980; Steffe &#38; Gale, 1995). On the other side are those suggesting that novice learners should be provided with direct instructional guidance on the concepts and procedures required by a particular discipline and should not be left to discover those procedures by themselves (e.g., Cronbach &#38; Snow, 1977; Klahr &#38; Nigam, 2004; Mayer, 2004; Shulman &#38; Keisler, 1966; Sweller, 2003).</p></blockquote>
<p>What exactly is minimal instruction?  And are they really describing <em>us?</em> I think this quote describes how we work in computing education (as modeled above) pretty well:</p>
<blockquote><p>There seem to be two main assumptions underlying instructional programs using minimal guidance. First they challenge students to solve “authentic” problems or acquire complex knowledge in information-rich settings based on the assumption that having learners construct their own solutions leads to the most effective learning experience. Second, they appear to assume that knowledge can best be acquired through experience based on the procedures of the discipline (i.e., seeing the pedagogic content of the learning experience as identical to the methods and processes or epistemology of the discipline being studied; Kirschner, 1992).</p></blockquote>
<p>That is, &#8220;people should learn to program by constructing program from the basic information on the language, and they should do it in the same way that experts do it.&#8221;  The paper then goes on to present all the evidence showing that this &#8220;minimally-guided instruction&#8221; does not work.</p>
<blockquote><p>After a half-century of advocacy associated with instruction using minimal guidance, it appears that there is no body of research supporting the technique. In so far as there is any evidence from controlled studies, it almost uniformly supports direct, strong instructional guidance rather than constructivist-based minimal guidance during the instruction of novice to intermediate learners.</p></blockquote>
<p>Now, in the same issue of <em>Educational Psychologist</em> there were rebuttals to KSC, and there have been more written since then, including one by my colleague Cindy Hmelo-Silver.  What&#8217;s striking about these rebuttals is that they basically say, &#8220;But not problem-based and inquiry-based learning! Those are actually guided, scaffolded forms of instruction.&#8221;  What&#8217;s striking is that <em><strong>no one challenges KSC on the basic premise, that putting introductory students in the position of discovering information for themselves is a bad idea</strong>! </em>In general, the Educational Psychology community (from the papers I&#8217;ve read) says that the model I describe above is an ineffective way to teach introductory students.</p>
<p>So what&#8217;s wrong with my strawman?  First, way too few examples.  The original Sweller and Cooper paper used ten examples of just a simple algebraic manipulation.  In the studies where worked examples have been used with computer programming (yes, it has been used with computer programming, and yes, it works there, too) by Pete Pirolli and Mimi Recker, the examples were in the 6-12 range for something like recursion.  2-5 examples are too few.</p>
<p>Second, we should not be asking students to solve something new.  They should practice the <em>same</em> information, demonstrate that they got that.  What KSC shows is that that approach takes too much time and leads to too little learning &#8212; it overloads the cognitive ability of the learner.  Only the very best students can succeed in when simply thrown in front of a speeding interpreter or compiler.  (I think that explains the &#8220;two humps&#8221; pretty darn well &#8212; it&#8217;s not the discipline, but how we teach it that results in the bimodal distribution.)</p>
<p>What should we do instead?  That&#8217;s a big open question.  Lots of options have been explored in this literature, from using tools like intelligent tutors to focusing on program &#8220;completion&#8221; problems (van Merrie¨nboer and Krammer in 1987 got great results using completion rather than program generation). I think that a lot of <a href="http://www.teach-scheme.org">TeachScheme </a>with DrScheme language levels has many of the right characteristics.  <a href="http://www.mediacomputation.org">Media Computation</a> provides the right number of examples with minimal changes during practice, but still deals with the speeding interpreter problem. The bottomline is that asking students to program doesn&#8217;t lead to them learning programming &#8212; as Richard Mayer (famous educational psychologist put it) says <a href="http://en.wikipedia.org/wiki/Constructivism_%28learning_theory%29">it promotes behavioral activity too early in the learning process, when learners should be cognitively active</a>. (How often have you seen students programming without thinking much?)  We need to figure out what&#8217;s the right kind of practice for CS, and how much, and how to motivate students to take seriously examples and practice, as opposed to full programming.</p>
<p>This literature is <em><strong>not </strong></em>saying <strong><em>never</em></strong> program.  Rather, it&#8217;s a bad way to <em><strong>start. </strong></em>Students need the opportunity to gain knowledge first before programming, <a href="http://voices.washingtonpost.com/answer-sheet/daniel-willingham/willingham-reading-is-not-a-sk.html">just as with reading</a>.  Later, there is a <em>expertise reversal effect</em>, where the worked example effect disappears then <strong><em>reverses</em></strong>.  Students do learn better with real programming, real problem-solving.  There is a place for minimally guided student activity, including programming.  It&#8217;s just not at the beginning.</p>
<p>Finally, it turns out that textbooks are not the best medium for teaching programming.  The Atkinson, Derry et al. article does a wonderful job of surveying what we know about teaching with examples.  One of the findings is the <a href="http://en.wikipedia.org/wiki/Modality_effect">Modality Effect</a>.  Using text to explain something that is visual (like a program) leads to more extraneous cognitive processing than using audio for the explanation.  Given that we work with computers capable of multimedia, we should be able to do much better than textbooks.</p>
<p>Overall, I find this literature unintuitive.  It seems obvious to me that the way to learn to program is by programming.  It seems obvious to me that real programming can be motivating.  But KSC respond to this, too.</p>
<blockquote><p>Why do outstanding scientists who demand rigorous proof for scientific assertions in their research continue to use and, indeed defend on the bias of intuition alone, teaching methods that are not the most effective?</p></blockquote>
<p>This literature doesn&#8217;t offer a lot of obvious answers for how to do computing education better.  It does, however, provide strong evidence that what we&#8217;re doing <em>wrong</em>, and offers pointers to how <em>other </em>disciplines have done it <em>better</em>.  It&#8217;s a challenge to us to question our practice. It&#8217;s up to us to use these lessons and models to improve <em>our </em>teaching practice.</p>
<p><strong>References</strong></p>
<ul>
<li>Atkinson, R. K., Derry, S. J., Renkl, A., &#38; Wortham, D. W. (2000). Learning from examples: Instructional principles from the worked examples research. <em>Review of Educational Research, 70</em>, 181–214.</li>
<li><a rel="nofollow" href="http://www.cogtech.usc.edu/publications/kirschner_Sweller_Clark.pdf">Kirschner, P. A., Sweller, J., and Clark, R. E. (2006) Why minimal guidance during instruction does not work: an analysis of the failure of constructivist, discovery, problem-based, experiential, and inquiry-based teaching. Educational Psychologist 41 (2) 75-86</a></li>
<li>Sweller, J., &#38; Cooper, G. A. (1985). &#8220;The use of worked examples as a substitute for problem solving in learning algebra&#8221;. <em>Cognition and Instruction</em> <strong>2</strong> (1): 59–89. <a title="Digital object identifier" href="http://en.wikipedia.org/wiki/Digital_object_identifier">doi</a>:<a rel="nofollow" href="http://dx.doi.org/10.1207%2Fs1532690xci0201_3">10.1207/s1532690xci0201_3</a>.</li>
<li><a rel="nofollow" href="http://www.cogtech.usc.edu/publications/hmelo_ep07.pdf">Scaffolding and Achievement in Problem-Based and Inquiry Learning: A Response to Kirschner, Sweller, and Clark (2006)</a> Hmelo-Silver, Duncan, &#38; Chinn. (2007). <em>Educational Psychologist, 42</em>(2), 99–107</li>
</ul>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[What if computer science was required?]]></title>
<link>http://computinged.wordpress.com/2009/09/26/what-if-computer-science-was-required/</link>
<pubDate>Sat, 26 Sep 2009 13:28:25 +0000</pubDate>
<dc:creator>Mark Guzdial</dc:creator>
<guid>http://computinged.wordpress.com/2009/09/26/what-if-computer-science-was-required/</guid>
<description><![CDATA[I&#8217;m at the ACM Education Council meeting in Vancouver this weekend.  One of the topics of conv]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>I&#8217;m at the ACM Education Council meeting in Vancouver this weekend.  One of the topics of conversation is whether the ACM should push to make computer science a required subject in US high schools.  The argument is that computing education will only be taken seriously (e.g., receive funding, get teacher certifications and standard curricula, get treated well by <em>No Child Left Behind</em>) if it was a required subject, like other sciences and mathematics.</p>
<p>I finally did read <a href="http://www.maa.org/devlin/LockhartsLament.pdf">Lockhart&#8217;s Lament</a> that<a href="http://www.bogost.com/blog/computing_as_a_liberal_art.shtml"> Ian Bogost talked about in his recent blog post</a>.  Lockhart&#8217;s essay starts out with a painter and a musician having horrible nightmare&#8217;s about their subjects becoming &#8220;required&#8221; and how that meant draining all life out of the subject until it was an easily taught and easily measured husk of a subject.  Lockhart&#8217;s point is that this is exactly what has happened with mathematics.  I found his essay interesting, but ultimately, defeatist and even narcissistic. Lockhart complains about how badly his beloved mathematics is treated. Yet he offers no way out, no solutions for balancing the demands of compulsory education at a national scale and the desire to keep the art and soul of mathematics. His despise for teachers and education schools makes it unlikely that his arguments will have any sway with <em>them</em> in making things <em>better</em>.</p>
<p>Still, I think he raises excellent points to consider for computing education.  I work  on the Commission to design the new AP exam in Computer Science, and it&#8217;s hard to define the test scope and range exactly enough to make a standardized test, and yet still encourages students to explore and be creative with computing.  If computer science were made a mandatory subject, it would have to be dissected and classified and standardized even further.  Would a computer science <em>requirement </em>be the death of the &#8220;Beauty, Joy, and Awe&#8221; (in terms of the popular SIGCSE presentations) of computer science?  Is it a necessary process that defining a subject in NCLB terms means reducing it to a husk of its former self?  How can we teach teachers to meet the standards and still ensure that what&#8217;s interesting about computing remains &#8212; even if we can&#8217;t come up with an observable standard that would demonstrate that &#8220;students find computing creative and fun&#8221;?</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[The Phonics of Computing Education]]></title>
<link>http://computinged.wordpress.com/2009/09/22/the-phonics-of-computing-education/</link>
<pubDate>Tue, 22 Sep 2009 23:39:18 +0000</pubDate>
<dc:creator>Mark Guzdial</dc:creator>
<guid>http://computinged.wordpress.com/2009/09/22/the-phonics-of-computing-education/</guid>
<description><![CDATA[In 2005, Merrick Furst (then, our associate dean for undergraduate education) said to me, &#8220;I t]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>In 2005, Merrick Furst (then, our associate dean for undergraduate education) said to me, &#8220;I think of your Media Computation and contextualized computing as a kind of &#8216;<em>whole language</em>&#8216; approach to computing education.  What are the <em>phonics</em>?  What&#8217;s the computer science equivalent of the scales and etudes that musicians practice with to get the basics down?&#8221;  At the time, I replied that getting students to understand <em>why </em>they&#8217;re learning to program, the relevance of what we were teaching them, was the most important factor. I still think that. But I&#8217;ve been pondering the phonics question for the last four years.</p>
<p>I was reminded of that question when listening to <a href="http://www.npr.org/templates/story/story.php?storyId=112312561">the NPR report on the end of PBS&#8217; &#8216;<em>Reading Rainbow</em>.&#8217;</a> The beginning of the report chalked the demise up to a lack of funds, but as it went on, the report really sounded like a change of heart at PBS&#8211;driven by research findings.</p>
<blockquote><p>&#8220;<em>Reading Rainbow</em> taught kids <em>why</em> to read,&#8221; [John] Grant [of WNED Buffalo] says. &#8220;You know, the love of reading — [the show] encouraged kids to pick up a book and to read.&#8221;</p>
<p>Linda Simensky, vice president for children&#8217;s programming at PBS, says that when <em>Reading Rainbow</em> was developed in the early 1980s, it was an era when the question was: &#8220;How do we get kids to read books?&#8221;</p>
<p>Since then, she explains, research has shown that teaching the mechanics of reading should be the network&#8217;s priority.</p></blockquote>
<p>&#8220;Teaching the mechanics&#8221; &#8212; that&#8217;s what the &#8220;phonics&#8221; of computing education is about.  Context tells us <em>why</em>.  The mechanics tell us <em>how</em>.</p>
<p><strong>We do a lousy job of teaching the mechanics of programming in computing classes</strong>. Our traditional tools of teaching programming are lecture and student practice with the interpreter or compiler.</p>
<ul>
<li>Pair-programming is just a twist on the student practice that doesn&#8217;t make the mechanics easier.</li>
<li>Think about the perennial problem in Java of learning where to put the semi-colons.  How do we help with that?  We lecture on where to put semi-colons &#8212; yeah, we know how effective <em>that</em> is.  We show example code &#8212; better than just lecturing, but since our assignments are rarely <em>modification</em> of code, students are mostly dealing with semi-colons on a blank sheet.  Then, we throw students to the Java compiler, whose error messages in response to a missing or misplaced semi-colon <em>are <span style="text-decoration:underline;">awful</span>.</em></li>
<li>Visual languages like Scratch or Alice reduce the mechanics.  For CS students, they just postpone the inevitable. I don&#8217;t know of any evidence that the mechanics are <em>easier</em> in the textual language after facing the visual languages.</li>
</ul>
<p>If the research on reading applies to computer science, then we ought to be doing much more to convey to students the <em>mechanics</em> of programming.  What kinds of mechanics are important to teach?  I&#8217;ve thought of three, and I&#8217;d really appreciate hearing your suggestions on others:</p>
<ul>
<li><strong><em>The syntax of the programming language</em></strong>. I understand (somewhat) while error messages in the full compiler can&#8217;t be made much better.  But surely we can build tools/tutorials/drills/etudes where students could practice the nitty-gritty details of language syntax with better feedback than compiler error messages.  I feel guilty every time my Python students get the indentation wrong in their programs, because the error message is about quotation or indentation errors &#8220;somewhere around line <em>X</em>.&#8221; Surely I could build <em>something</em> to help them learn indentation short of tossing them in front of a speeding interpreter?</li>
<li><strong><em>How to read code</em></strong>.  Everyone who comes to lecture gets to see and hear how the lecturer reads code.  All 30% of them.  There is a skill to knowing what to attend to in a program.  <em>Everyone </em>knows to simply skip &#8220;<em>public static void</em>&#8221; in the <em>main </em>method of a Java class &#8212; everyone <em>except the novice </em>who doesn&#8217;t know which words are important and which can be safely ignored.</li>
<li><strong><em>How to tinker with code</em></strong>.  Given a piece of code that you&#8217;re trying to understand, you know where to put <em>print</em> statements and what constants are worth tweaking to see the impact.  How does a novice know that?  We know that changing &#8220;i&#8221; to &#8220;j&#8221; as the index to the loop isn&#8217;t all that useful. How did we learn that? How do we teach that?</li>
</ul>
<p>These activities are in the class of things that we experts never think about.  They&#8217;re the &#8220;obvious&#8221; things that we simply ignore.  <em>Exactly!</em> That&#8217;s what the &#8220;phonics&#8221;/mechanics are.  How do we teach them?  As experts, we know to simply ignore those matters and do them without thinking.  As novices, they are yet another distraction, and <a href="http://en.wikipedia.org/wiki/Cognitive_load">cognitive load theory</a> suggests that those &#8220;distractions&#8221; add up.  In the end, we only have 7+/-2 chunks &#8212; that&#8217;s a <em>human</em> limit, and all those distractions are chunks that quickly add up to an impediment to getting at the learning we care about.</p>
<p>These &#8220;phonics&#8221;/mechanics are important, not just for the novice, but for the expert who is trying to bring herself up to speed on the latest technology.  The practicing programmer who wants to learn Ruby or Scala doesn&#8217;t need to know <em>why</em> to program in these languages &#8212; she already has that.  She wants to know <em>how</em>.  She wants the <em>mechanics</em> of the language.  Research on how to teach &#8220;phonics&#8221;/mechanics of a new language would go a long way towards bringing her up to speed on the new technology.  (I&#8217;m choosing &#8220;she&#8221; in these examples explicitly because I&#8217;ve been thinking <a href="http://www.amazon.com/gp/blog/post/PLNK924B6I5NNEYG">for a year now about the implications of Caroline Simard&#8217;s report for the Anita Borg Institute</a> on the needs of mid-level technical women in IT.)</p>
<p>Teaching the &#8220;phonics&#8221;/mechanics of computing education is on my mind a lot these days.  I&#8217;m thinking that it may be our most significant point of leverage in improving computing education.  <a href="http://computinged.wordpress.com/2009/08/28/la-plus-ca-change-its-the-goals-not-the-data/">New curricula may not get adopted</a>.  The phonics of computing education crosses all curricula. Getting the phonics right helps both the novice and the practicing programmer learn new skills.  Done right, phonics can be taught self-paced, even via distance learning, to act as a supplement to existing instruction.  I still think that the context is our most <em>important</em> change to improve computing education, but teaching the phonics/mechanics well may be the most <em>universal </em>improvement we can make, the one that can help everyone regardless of curriculum.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Accounting for the Two Humps]]></title>
<link>http://computinged.wordpress.com/2009/09/22/accounting-for-the-two-humps/</link>
<pubDate>Tue, 22 Sep 2009 14:11:06 +0000</pubDate>
<dc:creator>Mark Guzdial</dc:creator>
<guid>http://computinged.wordpress.com/2009/09/22/accounting-for-the-two-humps/</guid>
<description><![CDATA[One of the features of CS1 outcomes that has had teachers perplexed for years is the &#8220;Two Hump]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>One of the features of CS1 outcomes that has had teachers perplexed for years is the &#8220;Two Humps&#8221; phenomenon: Some students really get it, and some don&#8217;t.  Grade curves for CS1&#8217;s typically have two humps, one for each group of students.  What causes that?  The mythical &#8220;<a href="http://www.amazon.com/gp/blog/post/PLNK2IF0DTPLYZ5ZS">Geek Gene</a>&#8221; is one explanation.</p>
<p>Anthony Robins has an<a href="http://www.cs.otago.ac.nz/staffpriv/anthony/publications/pdfs/RobinsLEM.pdf"> alternative explanation</a>.  He thinks that it&#8217;s because everything we do in intro programming builds on the earlier stuff.  If you ever get behind, you&#8217;re toast &#8212; you can&#8217;t do the later homework without getting the earlier homework right.</p>
<p><span class="rwRRO">Michael Kölling has built on Anthony&#8217;s explanation to develop a new way of teaching his CS1, which he calls</span><a href="http://blogs.kent.ac.uk/mik/2009/09/04/quality-oriented-teaching-of-programming/"> Quality-oriented teaching of programming</a>. The idea is to think about succeeding in the class in terms of number of programs completed, rather than achieving a passing grade on all or most homework assignments.</p>
<p>I haven&#8217;t read Anthony&#8217;s paper yet, but am looking forward to it.  I&#8217;ve tended to believe that the two humps are caused by <em>a priori</em> knowledge, but missing out on the early stuff would lead to a similar effect.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Critical thinking? You need knowledge - The Boston Globe]]></title>
<link>http://computinged.wordpress.com/2009/09/21/critical-thinking-you-need-knowledge-the-boston-globe/</link>
<pubDate>Mon, 21 Sep 2009 15:14:43 +0000</pubDate>
<dc:creator>Mark Guzdial</dc:creator>
<guid>http://computinged.wordpress.com/2009/09/21/critical-thinking-you-need-knowledge-the-boston-globe/</guid>
<description><![CDATA[Critical thinking? You need knowledge &#8211; The Boston Globe is a piece by Diane Ravitch, which sp]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><a href="http://www.boston.com/bostonglobe/editorial_opinion/oped/articles/2009/09/15/critical_thinking_you_need_knowledge/">Critical thinking? You need knowledge &#8211; The Boston Globe</a> is a piece by Diane Ravitch, which speaks to some of our recent discussion about the drivers of innovation.  &#8220;The intelligent person, the one who truly is a practitioner of critical thinking, has the capacity to understand the lessons of history, to grasp the inner logic of science and mathematics, and to realize the meaning of philosophical debates by studying them.&#8221;</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Searching for a new driver for CS Education]]></title>
<link>http://computinged.wordpress.com/2009/09/20/searching-for-a-new-driver-for-cs-education/</link>
<pubDate>Sun, 20 Sep 2009 23:35:01 +0000</pubDate>
<dc:creator>Mark Guzdial</dc:creator>
<guid>http://computinged.wordpress.com/2009/09/20/searching-for-a-new-driver-for-cs-education/</guid>
<description><![CDATA[The last couple of posts in this blog have generated some wonderful response posts. Alfred Thompson ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>The last couple of posts in this blog have generated some wonderful response posts.</p>
<ul>
<li>Alfred Thompson wrote <a href="http://blogs.msdn.com/alfredth/archive/2009/09/18/what-does-it-take-to-make-change-in-cs-education.aspx">a post about what leads to change in computing education</a>. He makes some intriguing predictions about the future of computing education at the end of his post. (The tie to databases got me thinking.)  He agrees with me that, historically, the innovations which have taken root have grown from well-known institutions.  What I found most interesting was the back-and-forth Alfred sees (from his current post at Microsoft) between industry and academic influences on the tools of choice.</li>
<li>Leigh Ann Sudol wrote a response to Alfred <a href="http://www.virtualcompsci.net/blog/?p=112">which reflected her frustration with the where the influences are coming from</a>. I strongly agree with her greater goal: &#8220;We need to stop arguing about language, tools, etc. and decide what it means for the AVERAGE American to be literate in computing.&#8221; She concludes with the economic concerns she sees which limit computer science in secondary education.</li>
<li>Ian Bogost&#8217;s <a href="http://www.bogost.com/blog/computing_as_a_liberal_art.shtml">post is in line with Leigh Ann&#8217;s, in that he decries the influences on computing education</a>, but he goes further to see it as indicative of an illness within computer science overall. &#8220;[O]verall, computing simply doesn&#8217;t care about the development of its ideas. It fantasizes itself as a scientific or an engineering discipline, but throws the baby out with the bathwater (even the purest of sciences acknowledges that its ideas arise from the complex flows of history).&#8221;  Ian wants computing educators to engage in learning methods that recognize computing as a liberal art (an argument I agree with, and <a href="http://coweb.cc.gatech.edu/mediaComp-plan/uploads/1/Sewanee-talk2-CSLiberalArt-20Oct2008.pptx">have also made</a>, though not nearly as eloquently).</li>
</ul>
<p>All three of these posts are, in a sense, complaining about what is driving computing education.  I wrote my original post as a reflection on what has driven change in the past &#8212; purely an historical analysis.  The response we&#8217;re reading here is, &#8220;But that&#8217;s <em>not</em> what <strong><em>should</em></strong> drive change in how and what we teach.&#8221; Are these influences unique to computer science?  Leigh Ann and Ian call on Biology and Mathematics, respectively, as offering alternative models.  Computing may be more driven by industry than some other fields, but I suspect that these drivers are broader than just computer science.</p>
<p>How do we change what influences our practice?  I&#8217;m a fan of Larry Cuban&#8217;s work, particularly, &#8220;<a href="http://store.tcpress.com/0807738646.shtml">How Scholars Trumped Teachers</a>.&#8221;  Cuban analyzes the last 100 years of American Universities and concludes that research wins over teaching.  American universities are set-up so that research and all that goes with it (e.g., focus on funding, publication, and creation of intellectual property) will always dominate attention to education.  Change <strong><em>is</em></strong> possible, but we may have to change our underlying assumptions about what the American University is and what it means, and then change the structure to match the new beliefs.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[What changes CS Education?]]></title>
<link>http://computinged.wordpress.com/2009/09/18/what-changes-cs-education/</link>
<pubDate>Fri, 18 Sep 2009 15:58:41 +0000</pubDate>
<dc:creator>Mark Guzdial</dc:creator>
<guid>http://computinged.wordpress.com/2009/09/18/what-changes-cs-education/</guid>
<description><![CDATA[In this blog, we&#8217;ve talked about Lijun Ni&#8217;s research results, that suggest that changes ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>In this blog, we&#8217;ve talked about Lijun Ni&#8217;s research results, that suggest that changes that teachers make in their classroom is most influenced by their personal excitement for the change.  We&#8217;ve also talked about the fact that research results actually influence teachers very little.  What I&#8217;ve been wondering about lately is, &#8220;What influences the teacher excitement?&#8221;  I don&#8217;t have any answers, but I&#8217;ll lay out some ideas and let the commentators help us tease out importance.</p>
<ul>
<li><em>Languages</em>.  Computing teachers get excited (even passionate) about languages.  You can tell the story of computing education&#8217;s development in terms of the languages that predominate, e.g., Pascal, C++, Java.  The most common question raised over a beer at SIGCSE is probably &#8220;What&#8217;s the next big language?&#8221;   <a href="http://www.cs.utexas.edu/users/EWD/transcriptions/EWD08xx/EWD898.html">Dijkstra famously believed that the language in the first choice</a> was critical to avoid &#8220;mutilating&#8221; a student&#8217;s thinking about computing.  Why do we believe that?  Why should the first language matter so much?  Here are two hypotheses: (1) Since computation is not obvious in the world around us, students have no idea what computing is when they walk into their first programming language, so whatever model of computation that&#8217;s embedded in that first language is the first model that students will meet. (2) As educators, we tend to &#8220;teach the language.&#8221; Thus, the features of the language become the curriculum of the first course, for better or worse (I tend to believe the latter).  Not sure why we made programming language designers into our curricular designers, but any tour of a Java CS1 textbook (and it&#8217;s growing heft) suggests that we have.</li>
<li><em>Authority.</em> Pascal came from ETH and Niklaus Wirth. <em>Structure and Interpretation of Computer Programs</em> came from MIT.  Java came from Sun Microsystems. Would Pascal have had as much influence if it had been developed by somebody at a small liberal arts college?  It could have been developed elsewhere &#8212; Pascal is a small language, really.  Would SICP have had as much influence if it had come from somewhere else?  Authority does influence us, much as we like to pretend it doesn&#8217;t.  Could we imagine an open source textbook or language becoming the dominant text or tool in introdocutory computing courses?  I doubt it &#8212; we attend to the inventor and the institution.</li>
<li><em>Textbooks</em>.  When I look over the list of awardees for the <a href="http://www.sigcse.org/awards/recipients">SIGCSE Outstanding Contributions to CS Education</a>, I see lots of mention of textbooks.  But when I think over influences on CS education, I don&#8217;t really see textbooks as a major influence of change. It&#8217;s <em>necessary</em> for change &#8212; Pascal would not have taken off in CS1&#8217;s if &#8220;<em>Oh Pascal!</em>&#8221; wasn&#8217;t out there and available.  But Pascal&#8217;s influence extends beyond that textbook.  I only know a few C++ textbooks, and none dominate my (scarce) knowledge of C++ using schools, but I do know that C++ is really popular.  Probably the most influential CS textbook I know is SICP.  (Surprising that neither Hal Abelson or Gerald Sussman are on the SIGCSE awardees list.)  Is that the influence of the book, or of the curriculum?  Hard to tease those apart.</li>
<li><em>Tools</em>.  While there have been lots of IDE&#8217;s, visualization tools, animation tools, etc., few of them stand out for me as major change agents.  <a href="http://www.alice.org">Alice</a> is one, and <a href="http://www.cs.mtsu.edu/~untch/karel/">Karel the Robot</a> is probably another.  What makes a tool successful at creating change?  Why did Alice succeed?  I suggest that it met a need (a tool for a CS0-like course) when such a need arose, and it was supported by the right authority (Randy Pausch at CMU).  It&#8217;s hard for a tool to change CS1&#8217;s because CS1&#8217;s already exist and those needs are being met (by something).  Alice might not have become as popular 10 years earlier when CS was less likely seen as a topic for non-majors or for pre-undergraduate students.</li>
</ul>
<p>Others? What am I missing?  My first pass analysis suggests that, to make change in CS, invent a language or tool at a well-known institution.  Textbooks or curricula rarely make change, and it&#8217;s really hard to get attention when you&#8217;re not at a &#8220;name&#8221; institution.</p>
</div>]]></content:encoded>
</item>

</channel>
</rss>
