How Graduate Computing Students Search When Using an Unfamiliar Programming Language

How Graduate Computing Students Search When Using an Unfamiliar Programming Language
复制标题

DOI:
10.1145/3387904.3389274
复制
发表时间:
2020-07
期刊:
2020 IEEE/ACM 28th International Conference on Program Comprehension (ICPC)
影响因子:
--
通讯作者:
Gina R. Bai;Joshua Kayani;Kathryn T. Stolee
Gina R. Bai;Joshua Kayani;Kathryn T. Stolee
中科院分区:
其他
文献类型:
--
作者:
Gina R. Bai;Joshua Kayani;Kathryn T. Stolee

文献摘要

被引文献

相似文献

开发人员和计算机专业的学生通常需要掌握多种编程语言。为了学习一门新的语言,开发人员经常转向在线搜索来查找信息和代码示例。然而,缺乏关于学习者在使用不熟悉的语言时如何执行代码搜索的见解。了解学习者如何搜索以及他们在使用不熟悉的语言时遇到的挑战,可以激励未来的工具和技术,以更好地支持后续的语言学习者。对代码搜索行为的研究通常涉及通过日志或现场调查在搜索活动期间监视开发人员。我们进行了一项关于计算机专业的学生如何在一种不熟悉的编程语言中搜索代码的研究,18名研究生在实验室环境中完成了一项任务。我们的调查明确询问了搜索成功和查询重构,以收集有关这些指标的可靠数据。通过分析搜索日志和调查响应的组合,我们发现学生通常搜索以探索API或查找示例代码。在点击文档或教程之前,大约有50%的查询成功解决了这个问题。学生经常借用的术语,他们熟悉的语言时,搜索的例子在一个不熟悉的语言,但术语借用并不妨碍搜索成功。重构查询和非重构查询之间的编辑距离几乎相同。这些结果对代码搜索研究,特别是重新表述,以及支持程序员学习新语言的研究都有影响。
Developers and computing students are usually expected to master multiple programming languages. To learn a new language, developers often turn to online search to find information and code examples. However, insights on how learners perform code search when working with an unfamiliar language are lacking. Under-standing how learners search and the challenges they encounter when using an unfamiliar language can motivate future tools and techniques to better support subsequent language learners. Research on code search behavior typically involves monitoring developers during search activities through logs or in situ surveys. We conducted a study on how computing students search for code in an unfamiliar programming language with 18 graduate students working on VBA tasks in a lab environment. Our surveys explicitly asked about search success and query reformulation to gather reliable data on those metrics. By analyzing the combination of search logs and survey responses, we found that students typically search to explore APIs or find example code. Approximately 50% of queries that precede clicks on documentation or tutorials successfully solved the problem. Students frequently borrowed terms from languages with which they are familiar when searching for examples in an unfamiliar language, but term borrowing did not impede search success. Edit distances between reformulated queries and non-reformulated queries were nearly the same. These results have implications for code search research, especially on reformulation, and for research on supporting programmers when learning a new language.