Archive for March, 2010

Recursion by Pirolli (1991)

I heard Greg Wilson’s request for me to talk about the papers I’m reading (especially since I owe him a chapter which is a review of literature), so I thought I’d talk about one that Barb and I have been thinking a lot about lately: Effects of Examples and Their Explanations in a Lesson on Recursion: A Production System Analysis by Peter Pirolli (1991), in Cognition and Instruction, 8(3), 207-259.  In this paper, Pirolli describes two studies where he explores what kind of examples are useful in learning to write recursive functions, and how the characteristics of the example influences what errors students make when they write their own recursive functions.  It’s a dense paper, with some sophisticated quantitative analysis on error rates.

I was interested in this paper as one of the first in computer science to build upon Sweller’s worked examples research.  Pirolli was explicitly trying to understand the role of examples in problem-solving and about usefulness of different kinds of examples.  The first interesting tidbit that I got from this paper is how many examples Pirolli sees as necessary to learn the basics of the language.  He’s teaching students to write recursive functions with a version of Lisp (called “SIMPLE”) with only 7 primitives. Here’s an example SIMPLE program:

During the training phase, when he’s just bringing people up to speed on these primitives, he provides 8 examples for each of the 7 primitives.  56 individual examples (where he shows the primitive applied to a list, the student is asked to guess the result, and if fails, the system provides the result) is a lot of examples just to get students familiar with the language.  When you teach CS1, do you show 8 examples of for loops before students try to use them in an assignment?

The most interesting lesson I learned about recursive examples from this paper comes from the two conditions in his first experiment.  In one condition, the recursion examples that students work through are about how to write a recursive function (e.g., “here’s the base case” and “here’s how it recurses”).  In the other condition, the recursion examples are about the dynamics of how it works (e.g., “first there’s this call, then the same function is called but with this input, then the result is returned…”), like this:

Here’s the bottomline of what he finds: Getting students through the “how to write” examples took on average 57 minutes, while the “how it works” examples took an average of 85 minutes.  There was no statistical difference in performance on a post-test on writing recursive functions, though the “how to write” group had slightly fewer errors.

Even more intriguing is the discussion where Pirolli relates these findings to others in John Anderson’s group at the time which suggest, “that knowledge about how recursive functions are written is different from knowledge about how they work” and “that there is little transfer of how-it-works knowledge to function-writing tasks and, more interestingly, that extensive additional practice with simulating the evaluation of programs yields no significant benefit in debugging tasks when compared with extensive practice just coding programs.”  Writing code and tracing code are completely different tasks.

Barb is helping to teach an AP CS class this semester, and she’s teaching recursion right now.  She’s basing how she teaches recursion on Pirolli’s results.  Her first activities have the students looking at recursive functions and highlighting the base case and the recursive call — just figure out the structure.  Then they write some recursive functions. This is Pirolli’s Experiment #1 process, which takes students less time, giving them an early success with less frustration.  Next, she’ll get into debugging recursive functions, which Pirolli suggests is really a different task entirely.

Pirolli’s paper isn’t the definitive statement on teaching recursion or using worked examples.  If it was, he wouldn’t have gone on to write several more papers, including several with his students at Berkeley on using examples to learn recursion.  It is a nice paper that provides good evidence with some practical implications for how we teach.

March 31, 2010 at 8:47 am 19 comments

Congratulations to Matthias!

Matthias Felleisen, innovative educator and developer known for the TeachScheme approach, has won the 2009 ACM Karlstrom Award.

Matthias Felleisen, recipient of the Karl V. Karlstrom Outstanding Educator Award for his visionary and long-standing contributions to K-12 outreach programs. In 1995, he founded the TeachScheme! project, which has trained over 700 educators; he was also instrumental in setting up the Bootcamp afterschool programs for students in groups that are underrepresented in the computing field.  A Trustee Professor at Northeastern University, Felleisen contributed the innovative idea of a design recipe to the computing curriculum, a set of steps that helps students focus on problem solving and logical thinking instead of computer details. The Karlstrom Award recognizes educators who advanced new teaching methodologies; effected new curriculum development in Computer Science and Engineering; or contributed to ACM’s educational mission.

via ACM Awards Recognize Computer Scientists for Innovations that Have Real World Impact — Association for Computing Machinery.

March 30, 2010 at 3:35 pm 1 comment

Carl Wieman nominated for White House post

Carl Wieman has been nominated by President Obama for the office of Associate Director for Science in the Office of Science and Technology Policy.  Does this mean that he’ll no longer be directing the Carl Wieman Science Education Initiative at UBC?

President Obama Announces More Key Administration Posts, 3/22/10 | The White House.

March 30, 2010 at 9:57 am Leave a comment

Responding to the Respondents: Why So Few? Women in STEM and IT

This new AAUW report has come out at nearly the same time as the new report from Caroline Simard at the Anita Borg Institute on Senior Technical Women.  We’ve heard the general tune in these reports before, but the nuance and orchestration is different.  We’ve heard before that there are biases and cultural barriers that prevent women from succeeding in STEM fields.  What’s different is that these reports are responding to the respondents.  The AAUW report, for example, responds to a neuroscience-aware world that says male and female brains are different (ala Larry Summers), but shows that biology and “innate ability” alone doesn’t account for the rapid shift away from STEM fields by girls.  The ABI folks have told us before that female IT managers lose a lot of time to family responsibilities, but the new report shows that that time doesn’t take away from work time (as has been argued in comments in this blog) — the family time takes away from their social time.  The sum of these reports is saying, “Really — it’s the structure and the culture.  We’ve considered everything else.  The system and the people in it have to change.”

In an era when women are increasingly prominent in medicine, law and business, why are there so few women scientists and engineers? A new research report by AAUW presents compelling evidence that can help to explain this puzzle. Why So Few? Women in Science, Technology, Engineering, and Mathematics presents in-depth yet accessible profiles of eight key research findings that point to environmental and social barriers – including stereotypes, gender bias and the climate of science and engineering departments in colleges and universities – that continue to block women’s participation and progress in science, technology, engineering, and math. The report also includes up to date statistics on girls’ and women’s achievement and participation in these areas and offers new ideas for what each of us can do to more fully open scientific and engineering fields to girls and women.

via Why So Few? Women in Science, Technology, Engineering, and Mathematics | AAUW.

March 30, 2010 at 8:59 am 1 comment

Mellon Foundation Closes Program Funding Sakai: It’s not about PowerPoint

The Andrew W. Mellon Foundation is closing a grant program that financed a series of high-profile university software projects, leaving some worried about a vacuum of support for open-source ventures.

Mellon’s decade-old Research in Information Technology program, or RIT, helped bankroll a catalog of freely available software that includes Sakai, a course-management system used by Stanford University and the University of Michigan; Kuali, a financial-management program recently rolled out at Colorado State University; and Zotero, a program for managing research sources used by millions.

via In Potential Blow to Open-Source Software, Mellon Foundation Closes Grant Program – Wired Campus – The Chronicle of Higher Education.

This news got me thinking about something completely different from Sakai.  I went to one of the early meetings when the Mellon Foundation was forming these coalitions.  There was a lot of excitement about universities working together to create open source software to solve important educational problems.  At the meeting that I attended, a number of wish-lists were generated: What should future educational software include?  Then these lists were sorted into what absolutely, positively had to be there, what would be useful to have, and what was unlikely to happen. What surprised me at the time was how much was on that “absolutely, positively” list.  Some of the items didn’t seem so absolute-positive to me, like image databases (for fields like mechanical engineering) that could search based on similar images (e.g., “Here’s a picture of a gear.  Where do gears of this pitch and size show up in other pictures?”).

One of those items on the absolutely-positively list was called “PedaPoint.”  The idea was to create a kind of PowerPoint that enforced what we know about good Pedagogy (“Pedagogical Powerpoint” => “PedaPoint”).  At the time, I thought that that was an outlandish goal.  Today, in reflecting back on the Mellon Foundation’s ending of this research program, I realize that it was also the wrong goal.

I’ve been reading more of the literature to which Carl Wieman pointed in his SIGCSE talk.  It’s not rocket science, looking at it from the cognitive/learning sciences perspective.  It’s totally obvious considering it from what we know about learning.  And yet, as Carl pointed out, we don’t teach correctly from a scientific perspective.  It’s not what we say, it’s what the students do.  Getting the students to think, getting the students to argue, getting the students to make decisions, and get those decisions corrected if they’re wrong — that’s where the learning comes from.  You can’t make learning work much better from fixing PowerPoint so that a teacher only says the right things.  (Of course, you can make learning work better by changing PowerPoint so that it’s more about what the students do!)

Sakai probably helped student learning more than a PedaPoint might have.  We use Sakai here at Georgia Tech, and there are lots of people worried now that Mellon support has faded.  Still, Sakai is a learning management system, and while that’s the “standard” for online courses, I do hope that we can do better.

March 29, 2010 at 12:49 pm 2 comments

Need help! Get CS in the Common Core!

Cameron Wilson just wrote a blog post about computer science being made part of the draft Common Core Standards.  It’s not yet in the official Common Core Standards.  Cameron explains in his piece why this is important, and what we can do (YES, THERE’S SOMETHING URGENT TO DO HERE!) to make this stick.  It can be as simple as an email or filling out a Web form — please do help!

K-12 computer science education might get a boost from a recently released document called the Common Core State Standards Initiative (CCSSI) . This initiative is historic for the United States. For the first time forty-eight governors have come together to propose a common set of English arts and mathematics standards — which are key drivers of the curriculum students are exposed to — for their states. Until the common core standards initiative, state standards were generally disconnected from each other. The exciting news is that computer science is listed as a potential fourth course in their model pathway

When it comes to computer science education in K-12 we have two major policy issues: 1) most states do not have specific computer science standards, and 2) if computer science courses are in schools, they don’t count toward a student’s core credits. Some states like Texas, Georgia and Virginia have moved to count computer science courses in high school as either a math or science; however, in most states computer science is an elective. This leaves computer science courses starved for attention, resources and student interest.

…Now the community can support this breakthrough by sending letters for support for the inclusion of computer science in the final document. The initiative is taking comments on the draft until April 2. There are two ways to comment. The first is by taking the survey, which as an additional comment area where you can express support for computer science. (Follow this link and click on the “submit feedback” to get to the survey.) The second is by sending letters to

via Computing and the Common Core | blog@CACM | Communications of the ACM.

March 26, 2010 at 1:48 pm Leave a comment

The limits of what people generally know

A thread running through my day yesterday (at the NSF CPATH PI’s meeting) and this morning (via email, some at a more outlandish level) is the limits of what people (in general) know (in general).

  • Starting from the most outlandish, 24% of all Republicans (according to Harris Polls) believe that Barack Obama may be the Anti-Christ. What’s more interesting (less political, more concerning as educators) is the enormous gap between the educated and less-educated — 43% of Americans with no college education believe that Obama is a Muslim, while only 9% of college educated Americans believe that.
  • Moving to the more intellectual and profound, David Brooks has a terrific op-ed piece in this morning’s NYTimes suggesting that economists missed the worldwide meltdown because they relied too much on mathematics, and too little on the morality that early economists relied upon.  Brooks points out: “The moral and social yearnings of fully realized human beings are not reducible to universal laws and cannot be studied like physics,” and that earlier economists understood this:
  • Economics is a “moral science,” Keynes wrote. It deals with “motives, expectations, psychological uncertainties. One has to be constantly on guard against treating the material as constant and homogeneous.”

I am at a meeting of 100 funded investigators in the National Science Foundation (NSF) program in CISE Pathways to Reinvigorate Undergraduate Education (CPATH).  These are mostly Computer Science (some IT, some IS) faculty who are working to improve the state of undergraduate computing education.

Yesterday at lunch, someone asked me about the new AP CS effort in which I’m involved. “When is the new AP CS going to be available?”  “Around 2015, I expect.”  “That’s terrible!  That means that there is no AP CS available until then?!?”  “No, that’s not true.”  “I heard that AP CS was canceled.”  Sigh! “No, only the Level AB exam was canceled.  The Level A exam is still available, with no plans to get rid of it.”  If the belief that “the AP CS is canceled” is still showing up here, among the CS faculty most involved in computing education, what do most CS faculty think?

Yesterday, Cameron Wilson, Director of ACM Public Policy, gave a talk about the effort to make computer science count as a math in the new core curriculum standards.  (By the way, I now have the citation for where the Federal Register said that computer science is part of STEM.)  There was a fascinating pushback from the PI’s.  “But this is replacing one problem with another problem.  We don’t want one computing course.  We want computing taught pervasively throughout the curriculum.”  In talking with people later, I got the sense that the argument was: “We already have computing in the high schools, but it’s only in certain classes.  We want it throughout math and science!”

This one is hard to respond to, because I completely agree with the goal.  The problem is the base assumption. I don’t think most CS faculty realize how little high school CS is really out there, even among CS faculty who are CPATH PI’s.

Pick a random high school in the United States. With enormous probability, it will have zero computer science.  In Georgia, where we have more high schools teaching CS than any state in the Southeast (to the best of our knowledge), the probability is ~70% that a random high school will NOT have computer science.  There are over 20,000 high schools in the United States, and only 2,000 AP CS teachers.  Those high schools that have a CS teacher typically have a math, science, or (especially in Georgia) business teacher who has had workshop training to teach computer science — or not.  There are very few (less than one per state, more like one for every 10 states) classes on how to teach computer science. If you’re not happy with how computer science is now taught in high school, how will you feel about every science teacher (with little or no training) also teaching computer science?

Of course, the correct answer is “Well, get them training!”  Agreed! But that’s where we’re at today.  Think about Jan Cuny’s challenge in project CS10K: let’s have 10,000 teachers in 10,000 high schools ready to teach AP CS in 2015. That’s going from 2,000 in 2010 to 10,000 in 2015 — and even then, we’ll be in less than half of US high schools. I have little idea how we can ramp up 8,000 more teachers in five years, but that’s a small challenge compared with teaching every science teacher in the country how to teach computer science.

All of the examples in this post point out limitations of what people know, but not limitations of what is known.  Most people know that Obama is not Muslim.  Economists used to think beyond mathematics.  The College Board will be glad to tell you that the AP CS Level A exam is not canceled.  And the state of high school computer science is described by CSTA every chance they get.  The problem is the distribution of this knowledge, who has it, and who needs it.  For all the mass media and Internet news sources and social media that we have, there is still a role for education — helping people to learn what they need, whether or not they recognize that need.

March 26, 2010 at 7:45 am 8 comments

Older Posts

Enter your email address to follow this blog and receive notifications of new posts by email.

Join 6,297 other followers


Recent Posts

Blog Stats

  • 1,672,127 hits
March 2010
« Feb   Apr »

CS Teaching Tips