Automated Program Analysis for Novice Programmers

Tim Blok, Ansgar Fehnker

Research output: Chapter in Book/Report/Conference proceedingConference contributionAcademicpeer-review

32 Downloads (Pure)

Abstract

This paper describes how to adapt a static code analyzer to help novice programmers. Current analyzers have been built to give feedback to experienced programmers who build new applications or systems. The type of feedback and the type of analysis of these tools focusses on mistakes that are relevant within that context, and help with debugging the system. When teaching novice programmers this type of advice is often not particularly useful. It would be instead more useful to use these techniques to find problem in the understanding of students of important programming concepts. This paper first explores in what respect static analyzers support the learning and teaching of programming can be implemented based on existing static analysis technology. It presents an extension to static analyzer PMD was made so that feedback messages appear which are easier to understand for novice programmers. To answer the question if these techniques are able to find conceptual mistakes that are characteristic for novice programmers make, we ran it over a number of student projects, and compared these results with publicly available mature software projects.
Original languageEnglish
Title of host publicationHEAd'17
Subtitle of host publicationProceedings of the 3rd International Conference on Higher Education Advances
EditorsJosep Domenech, M. Cinta Vincent-Vela, Elena de la Poza, Desamparados Blazquez
PublisherUniversitat Politecnica de Valencia
Pages1138-1146
ISBN (Print)978-84-9048-590-3
DOIs
Publication statusPublished - 2017
Event3rd International Conference on Higher Education Advances, HEAd 2017 - Universitat Politècnica de València, València, Spain
Duration: 21 Jun 201723 Jun 2017
Conference number: 3
http://www.headconf.org/head17/index.html

Conference

Conference3rd International Conference on Higher Education Advances, HEAd 2017
Abbreviated titleHEAd'17
CountrySpain
CityValència
Period21/06/1723/06/17
Internet address

Fingerprint

Feedback
Teaching
Students
Polarization mode dispersion
Static analysis
Computer programming

Keywords

  • Programing education
  • Tool support
  • Static analysis

Cite this

Blok, T., & Fehnker, A. (2017). Automated Program Analysis for Novice Programmers. In J. Domenech, M. C. Vincent-Vela, E. de la Poza, & D. Blazquez (Eds.), HEAd'17: Proceedings of the 3rd International Conference on Higher Education Advances (pp. 1138-1146). Universitat Politecnica de Valencia. https://doi.org/10.4995/HEAD17.2017.5533
Blok, Tim ; Fehnker, Ansgar . / Automated Program Analysis for Novice Programmers. HEAd'17: Proceedings of the 3rd International Conference on Higher Education Advances. editor / Josep Domenech ; M. Cinta Vincent-Vela ; Elena de la Poza ; Desamparados Blazquez. Universitat Politecnica de Valencia, 2017. pp. 1138-1146
@inproceedings{6bc833ad3bc04ac5a389da5efeef7951,
title = "Automated Program Analysis for Novice Programmers",
abstract = "This paper describes how to adapt a static code analyzer to help novice programmers. Current analyzers have been built to give feedback to experienced programmers who build new applications or systems. The type of feedback and the type of analysis of these tools focusses on mistakes that are relevant within that context, and help with debugging the system. When teaching novice programmers this type of advice is often not particularly useful. It would be instead more useful to use these techniques to find problem in the understanding of students of important programming concepts. This paper first explores in what respect static analyzers support the learning and teaching of programming can be implemented based on existing static analysis technology. It presents an extension to static analyzer PMD was made so that feedback messages appear which are easier to understand for novice programmers. To answer the question if these techniques are able to find conceptual mistakes that are characteristic for novice programmers make, we ran it over a number of student projects, and compared these results with publicly available mature software projects.",
keywords = "Programing education, Tool support, Static analysis",
author = "Tim Blok and Ansgar Fehnker",
year = "2017",
doi = "10.4995/HEAD17.2017.5533",
language = "English",
isbn = "978-84-9048-590-3",
pages = "1138--1146",
editor = "Josep Domenech and Vincent-Vela, {M. Cinta} and {de la Poza}, Elena and Desamparados Blazquez",
booktitle = "HEAd'17",
publisher = "Universitat Politecnica de Valencia",
address = "Spain",

}

Blok, T & Fehnker, A 2017, Automated Program Analysis for Novice Programmers. in J Domenech, MC Vincent-Vela, E de la Poza & D Blazquez (eds), HEAd'17: Proceedings of the 3rd International Conference on Higher Education Advances. Universitat Politecnica de Valencia, pp. 1138-1146, 3rd International Conference on Higher Education Advances, HEAd 2017, València, Spain, 21/06/17. https://doi.org/10.4995/HEAD17.2017.5533

Automated Program Analysis for Novice Programmers. / Blok, Tim; Fehnker, Ansgar .

HEAd'17: Proceedings of the 3rd International Conference on Higher Education Advances. ed. / Josep Domenech; M. Cinta Vincent-Vela; Elena de la Poza; Desamparados Blazquez. Universitat Politecnica de Valencia, 2017. p. 1138-1146.

Research output: Chapter in Book/Report/Conference proceedingConference contributionAcademicpeer-review

TY - GEN

T1 - Automated Program Analysis for Novice Programmers

AU - Blok, Tim

AU - Fehnker, Ansgar

PY - 2017

Y1 - 2017

N2 - This paper describes how to adapt a static code analyzer to help novice programmers. Current analyzers have been built to give feedback to experienced programmers who build new applications or systems. The type of feedback and the type of analysis of these tools focusses on mistakes that are relevant within that context, and help with debugging the system. When teaching novice programmers this type of advice is often not particularly useful. It would be instead more useful to use these techniques to find problem in the understanding of students of important programming concepts. This paper first explores in what respect static analyzers support the learning and teaching of programming can be implemented based on existing static analysis technology. It presents an extension to static analyzer PMD was made so that feedback messages appear which are easier to understand for novice programmers. To answer the question if these techniques are able to find conceptual mistakes that are characteristic for novice programmers make, we ran it over a number of student projects, and compared these results with publicly available mature software projects.

AB - This paper describes how to adapt a static code analyzer to help novice programmers. Current analyzers have been built to give feedback to experienced programmers who build new applications or systems. The type of feedback and the type of analysis of these tools focusses on mistakes that are relevant within that context, and help with debugging the system. When teaching novice programmers this type of advice is often not particularly useful. It would be instead more useful to use these techniques to find problem in the understanding of students of important programming concepts. This paper first explores in what respect static analyzers support the learning and teaching of programming can be implemented based on existing static analysis technology. It presents an extension to static analyzer PMD was made so that feedback messages appear which are easier to understand for novice programmers. To answer the question if these techniques are able to find conceptual mistakes that are characteristic for novice programmers make, we ran it over a number of student projects, and compared these results with publicly available mature software projects.

KW - Programing education

KW - Tool support

KW - Static analysis

U2 - 10.4995/HEAD17.2017.5533

DO - 10.4995/HEAD17.2017.5533

M3 - Conference contribution

SN - 978-84-9048-590-3

SP - 1138

EP - 1146

BT - HEAd'17

A2 - Domenech, Josep

A2 - Vincent-Vela, M. Cinta

A2 - de la Poza, Elena

A2 - Blazquez, Desamparados

PB - Universitat Politecnica de Valencia

ER -

Blok T, Fehnker A. Automated Program Analysis for Novice Programmers. In Domenech J, Vincent-Vela MC, de la Poza E, Blazquez D, editors, HEAd'17: Proceedings of the 3rd International Conference on Higher Education Advances. Universitat Politecnica de Valencia. 2017. p. 1138-1146 https://doi.org/10.4995/HEAD17.2017.5533