There is transfer between programming and other subjects: Skills overlap, but it may not be causal

July 5, 2021 at 7:00 am 2 comments

A 2018 paper by Ronny Scherer et al. “The cognitive benefits of learning computer programming: A meta-analysis of transfer effects” was making the rounds on Twitter. They looked at 105 studies and found that there was a measurable amount of transfer between programming and situations requiring mathematical skills and spatial reasoning. But here’s the critical bit — it may not be casual. We cannot predict that students learning programming will automatically get higher mathematics grades, for example. They make a distinction between near transfer (doing things that are very close to programming, like mathematics) and far transfer, which might include creative thinking or metacognition (e.g., planning):

Despite the increasing attention computer programming has received recently (Grover & Pea, 2013), programming skills do not transfer equally to different skills—a finding that Sala and Gobet (2017a) supported in other domains. The findings of our meta-analysis may support a similar reasoning: the more distinct the situations students are invited to transfer their skills to are from computer programming the more challenging the far transfer is. However, we notice that this evidence cannot be interpreted causally—alternative explanations for the existence of far transfer exist.

Here’s how I interpret their findings. Learning program involves learning a whole set of skills, some of which overlap with skills in other disciplines. Like, being able to evaluate an expression with variables, once you know the numeric value for those variables — you have to do that in programming and in mathematics. Those things transfer. Farther transfer depends on how much overlap there is. Certainly, you have to plan in programming, but not all of the sub-skills for the kinds of planning used in programming appear in every problem where you have to plan. The closer the problem is to programming, the more that there’s an overlap, and the more we see transfer.

This finding is like a recent paper out of Harvard (see link here) that shows that AP Calculus and AP CS both predict success in undergraduate computer science classes. Surprisingly, regular (not AP) calculus is also predictive of undergraduate CS success, but not regular CS. There are sub-skills in common between mathematics and programming, but the directionality is complicated.

We have known for a long time that we can teach programming in order to get a learning effect in other disciplines. That’s the heart of what Bootstrap does. Sharon Carver showed that many years ago. But that’s different than saying “Let’s teach programming, and see if there’s any effect in other classes.”

So yes, there is transfer between programming and other disciplines — not that it buys you much, and the effect is small. But we can no longer say that there is no transfer.

Entry filed under: Uncategorized. Tags: , .

Rules work as a way of communicating computation at a mechanistic level without teaching programming Considering the Danish Informatics Curriculum: Comparing National Computer Science Curricula

2 Comments Add your own

  • 1. Mark Miller  |  July 5, 2021 at 3:24 pm

    Mark,

    Thanks for this wonderful blog. What many of these studies do not address is the extent to which the human teacher actually includes “transfer” in their conversations with students.

    Back in the day, when I was a grad student at MIT, I was curious about whether there was transfer between learning to program in Logo and success in solving “match puzzle” problems. (Others have published about similar studies.) I did a pilot study at a local school in the Boston area, with the following anecdotal findings. Directions to one teacher were to teach Logo in what we might now consider the “typical way of teaching programming languages to 5th graders” — syntax, sequence, conditionals, loops/recursion. The pedagogical style was largely didactic, direct instruction. Another teacher was encouraged to Logo in the context of “powerful ideas” with regular reference to how the ideas applied, not only to programming, but to solving problems in many other areas of potential interest to the students. The style was more project-oriented.

    While there was little evidence of “transfer” to the match puzzles, with the first teacher, there was encouraging support for transfer to the puzzle problems with the second teacher. Since my N was too small to prove p < .05, and since this type of research wasn’t mainstream for grad students in the Logo Group or AI lab in those days, I did not go on to test with larger N. Having said this, all my intuitions suggested that people do not generalize from anything they are taught, unless the instructor explicitly encourages such generalization. We should not expect transfer to just magically happen on its own — helping children think about thinking and learn about learning (about something) is where we should expect to see it.

    That there is evidence of transfer between learning programming and other topics — even if only correlational at this point — is nice to hear, since some early publications (e.g., Pea et. al.) had shown no effect. As the field continues to mature, I hope we can tease out the factors that foster transfer of ideas and skills learned in CS, to benefit other disciplines, and conversely. Surely the role of the teacher in helping children experience powerful ideas ought to be high on the list of things to investigate.

    — Mark

    Reply
    • 2. Mark Guzdial  |  July 5, 2021 at 3:37 pm

      Hi Mark,

      Thanks for your comments. Certainly, the teacher plays a huge role, as does the curriculum. Please note that the paper I’m describing in this post is a meta-analysis. It’s looking at other studies. Differences in how the students are taught get swamped when looking at 105 different studies. I agree that those are important variables to consider.

      Reply

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Trackback this post  |  Subscribe to the comments via RSS Feed


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

Join 11.4K other subscribers

Feeds

Recent Posts

Blog Stats

  • 2,095,130 hits
July 2021
M T W T F S S
 1234
567891011
12131415161718
19202122232425
262728293031  

CS Teaching Tips