Explicit programming strategies

被引:0
|
作者
Thomas D. LaToza
Maryam Arab
Dastyni Loksa
Amy J. Ko
机构
[1] George Mason University,
[2] University of Washington,undefined
来源
Empirical Software Engineering | 2020年 / 25卷
关键词
Developers; Productivity; Strategies; Test-driven development; Debugging;
D O I
暂无
中图分类号
学科分类号
摘要
Software developers solve a diverse and wide range of problems. While software engineering research often focuses on tools to support this problem solving, the strategies that developers use to solve problems are at least as important. In this paper, we offer a novel approach for enabling developers to follow explicit programming strategies that describe how an expert tackles a common programming problem. We define explicit programming strategies, grounding our definition in prior work both within software engineering and in other professions which have adopted more explicit procedures for problem solving. We then present a novel notation called Roboto and a novel strategy tracker tool that explicitly represent programming strategies and frame executing strategies as a collaborative effort between human abilities to make decisions and computer abilities to structure process and persist information. In a formative evaluation, 28 software developers of varying expertise completed a design task and a debugging task. We found that, compared to developers who are free to choose their own strategies, developers given explicit strategies experienced their work as more organized, systematic, and predictable, but also more constrained. Developers using explicit strategies were objectively more successful at the design and debugging tasks. We discuss the implications of Roboto and these findings, envisioning a thriving ecosystem of explicit strategies that accelerate and improve developers’ programming problem solving.
引用
收藏
页码:2416 / 2449
页数:33
相关论文
共 50 条
  • [1] Explicit programming strategies
    LaToza, Thomas D.
    Arab, Maryam
    Loksa, Dastyni
    Ko, Amy J.
    EMPIRICAL SOFTWARE ENGINEERING, 2020, 25 (04) : 2416 - 2449
  • [2] Teaching Explicit Programming Strategies to Adolescents
    Ko, Andrew J.
    LaToza, Thomas D.
    Hull, Stephen
    Ko, Ellen A.
    Kwok, William
    Quichocho, Jane
    Akkaraju, Harshitha
    Pandit, Rishin
    SIGCSE '19: PROCEEDINGS OF THE 50TH ACM TECHNICAL SYMPOSIUM ON COMPUTER SCIENCE EDUCATION, 2019, : 469 - 475
  • [3] PROGRAMMING WITH EXPLICIT JUMPS - AN OVERVIEW
    GAUTHIER, M
    TSI-TECHNIQUE ET SCIENCE INFORMATIQUES, 1986, 5 (05): : 411 - 422
  • [4] Programming with explicit security policies
    Myers, AC
    PROGRAMMING LANGUAGES AND SYSTEMS, PROCEEDINGS, 2005, 3444 : 1 - 4
  • [5] Functional programming and explicit substitutions
    Lescanne, P
    CARI'96 - PROCEEDINGS OF THE 3RD AFRICAN CONFERENCE ON RESEARCH IN COMPUTER SCIENCE, 1996, : 830 - 841
  • [6] MAKING PROGRAMMING KNOWLEDGE EXPLICIT
    NAVRAT, P
    ROZINAJOVA, V
    COMPUTERS & EDUCATION, 1993, 21 (04) : 281 - 299
  • [7] Promoting Learning Transfer in Computer Science Education by Training Teachers to use Explicit Programming Strategies
    Goletti, Olivier
    ICER 2021: PROCEEDINGS OF THE 17TH ACM CONFERENCE ON INTERNATIONAL COMPUTING EDUCATION RESEARCH, 2021, : 411 - 412
  • [8] Programming a Fast Explicit Conflict Checker
    Malik, Robi
    2016 13TH INTERNATIONAL WORKSHOP ON DISCRETE EVENT SYSTEMS (WODES), 2016, : 438 - 443
  • [9] An analysis of explicit loops in genetic programming
    Li, X
    Ciesielski, V
    2005 IEEE CONGRESS ON EVOLUTIONARY COMPUTATION, VOLS 1-3, PROCEEDINGS, 2005, : 2522 - 2529
  • [10] AN EXPLICIT SOLUTION TO THE MULTILEVEL PROGRAMMING PROBLEM
    BARD, JF
    FALK, JE
    COMPUTERS & OPERATIONS RESEARCH, 1982, 9 (01) : 77 - 100