Can Industrial-Strength Static Analysis Be Used to Help Students Who Are Struggling to Complete Programming Activities?

被引:0
|
作者
Edwards, Stephen H. [1 ]
Hovemeyer, David [2 ]
Spacco, Jaime [3 ]
机构
[1] Virgina Tech, Blacksburg, VA 24061 USA
[2] York Coll Penn, York, PA USA
[3] Knox Coll, Galesburg, IL USA
基金
美国国家科学基金会;
关键词
D O I
暂无
中图分类号
TP301 [理论、方法];
学科分类号
081202 ;
摘要
Static analysis tools evaluate source code to identify potential problems or issues beyond typical compiler errors. Prior work has shown a statistically significant relationship between the correctness of a student's work and statically identifiable flaws or "code smells" that are likely to indicate programming errors. This paper presents a comprehensive study of this relationship in the context of small programming exercises intended for use in student skill building. We use FindBugs, a static analysis tool that identifies program features that are likely to represent actual bugs in professional software. Our goal is to identify the extent to which FindBugs warnings might help novices struggling to solve short programming exercises. In this study, we ran FindBugs against 149,054 answers submitted by 516 students on 57 drill-and-practice coding exercises. We identify the specific FindBugs warnings that are inversely correlated with correctness. We confirm that presence of these warnings is significantly associated with struggling on an exercise, as indicated by taking more time, making more submissions, and receiving lower scores. Finally, every exercise exhibited answers that trigger these warnings, and 92.4% of students would experience these warnings over a full semester. Our results indicate that static analysis with tools designed for use in industry offers an untapped opportunity to provide hints or suggestions to students who are measurably struggling.
引用
收藏
页码:7825 / 7834
页数:10
相关论文
共 3 条
  • [1] Experience Report: OCaml for an Industrial-Strength Static Analysis Framework
    Cuoq, Pascal
    Signoles, Julien
    Baudin, Patrick
    Bonichon, Richard
    Canet, Geraud
    Correnson, Loic
    Monate, Benjamin
    Prevosto, Virgile
    Puccetti, Armand
    [J]. ICFP'09: PROCEEDINGS OF THE 2009 ACM SIGPLAN INTERNATIONAL CONFERENCE ON FUNCTIONAL PROGRAMMING, 2009, : 281 - 286
  • [2] Experience Report: OCaml for an Industrial-Strength Static Analysis Framework
    Cuoq, Pascal
    Signoles, Julien
    Baudin, Patrick
    Bonichon, Richard
    Canet, Geraud
    Correnson, Loic
    Monate, Benjamin
    Prevosto, Virgile
    Puccetti, Armand
    [J]. ACM SIGPLAN NOTICES, 2009, 44 (8-9) : 281 - 286
  • [3] Helping Student Programmers Through Industrial-Strength Static Analysis: A Replication Study
    Senger, Allyson
    Edwards, Stephen H.
    Ellis, Margaret
    [J]. PROCEEDINGS OF THE 53RD ACM TECHNICAL SYMPOSIUM ON COMPUTER SCIENCE EDUCATION (SIGCSE 2022), VOL 1, 2022, : 8 - 14