On the use of FCA models in static analysis tools to detect common errors in programming

Paper: D. Cristea, D. Șotropa, A. J. Molnar, S. Motogna, On the use of FCA models in static analysis tools to detect common errors in programming, 26th International Conference on Conceptual Structures, DOI: 10.1007/978-3-030-86982-3_1, Print ISBN: 978-3-030-86981-6, Online ISBN: 978-3-030-86982-3, 2021, pp. 3-18

Abstract: Static code analysis is widely used to detect code quality issues before execution. Thus, it can provide information that is important for improving programming skills. Such tools have been successfully used in teaching programming courses. In this paper we present algorithms for combining Formal Concept Analysis (FCA) with Pylint, a static code analysis tool, in order to detect and assess behavioral patterns in students’ programming styles. We design a generalized framework that can be subsequently used to analyze any category/subset of errors. We apply the approach for detecting common errors related to design by considering two scenarios that tackle object oriented design and increased code complexity. We argue how the results can be used to understand common mistakes and to improve the teaching content and methods.

Keywords: Formal concept analysis
Static code analysis
Computer science education