Towards Supporting Knowledge Transfer of Programming Languages

Nischal Shrestha · 2018

Today, there are hundreds of programming languages that are widely used. Programmers at all levels are expected to become proficient in multiple languages. Experienced programmers who have knowledge of at least one language are able to learn a second language much quicker than novices. However, the transfer process can still be difficult when there exists numerous differences from their previous language. Documentation, online courses and tutorials tend to present information geared towards novices. This type of presentation might suffice for beginners, but it doesn't support learning for experienced programmers [1] who would benefit from leveraging their knowledge of previous programming languages. In my work, I explore teaching programming languages through the lens of learning transfer, which occurs when learning in one context either enhances (positive transfer) or undermines (negative transfer) a related performance in another context. To investigate this approach, I created and evaluated a research tool called Transfer Tutor that teaches programmers R in terms of Python and Pandas, a data analysis library. The following design choices were made to explore learning transfer, applied to the topic of data frame manipulation: 1) highlighting similarities between syntax elements to support learning transfer 2) explicit tutoring on potential misconceptions 3) stepping through and highlighting elements of the snippets incrementally.

Read the paper · More papers on PaperTik