Title: It's Like Python But: Towards Supporting Transfer of Programming Language Knowledge,
Abstract: Expertise in programming traditionally assumes a binary novice-expert divide.
Learning resources typically target programmers who are learning programming
for the first time, or expert programmers for that language. An
underrepresented, yet important group of programmers are those that are
experienced in one programming language, but desire to author code in a
different language. For this scenario, we postulate that an effective form of
feedback is presented as a transfer from concepts in the first language to the
second. Current programming environments do not support this form of feedback.
In this study, we apply the theory of learning transfer to teach a language
that programmers are less familiar with--such as R--in terms of a programming
language they already know--such as Python. We investigate learning transfer
using a new tool called Transfer Tutor that presents explanations for R code in
terms of the equivalent Python code. Our study found that participants
leveraged learning transfer as a cognitive strategy, even when unprompted.
Participants found Transfer Tutor to be useful across a number of affordances
like stepping through and highlighting facts that may have been missed or
misunderstood. However, participants were reluctant to accept facts without
code execution or sometimes had difficulty reading explanations that are
verbose or complex. These results provide guidance for future designs and
research directions that can support learning transfer when learning new
programming languages.