Abstract
"Static code analyzer tools can detect several programming mistakes, that would lead to run-time errors. Such tools can also detect violations of the conventions and guidelines of the given programming language. Thus, the feedback provided by these tools can be valuable for both students and instructors in computer science education. In our paper, we evaluated over 5000 student submissions from the last two years written in C++ and C# programming languages at Eotvos Lorand University Faculty of Informatics (Budapest, Hungary), by executing various static code analyzers on them. From the findings of the analyzers, we highlight some of the most typical and serious issues. Based on these results, we argue to include static analysis of programming submissions in automated and assisted semi-automatic evaluating and grading systems at universities, as these could increase the quality of programming assignments and raise the attention of students on various otherwise missed bugs and other programming errors. 2010 Mathematics Subject Classification. 68U99, 68Q55, 97Q70. 1998 CR Categories and Descriptors. F.3.2 [Theory of Computation]: Logics and Meanings of Programs – Semantics of Programming Languages; D.3.4 [Software]: Programming Languages – Processors; K.3.2 [Computing Milieux]: Computers and Education – Computer and Information Science Education. Key words and phrases. static code analysis, C++, C#, student submission, computer science education, programming flaw."
Subject
General Earth and Planetary Sciences,General Environmental Science
Reference24 articles.
1. "1. Babati, B., Horváth, G., Májer, V., and Pataki, N. Static analysis toolset with Clang. In Proceedings of the 10th International Conference on Applied Informatics (2017), pp. 23-29.
2. 2. Bardas, A. G., et al. Static code analysis. Journal of Information Systems & Operations Management 4, 2 (2010), 99-107.
3. 3. Birillo, A., Vlasov, I., Burylov, A., Selishchev, V., Goncharov, A., Tikhomirova, E., Vyahhi, N., and Bryksin, T. Hyperstyle: A tool for assessing the code quality of solutions to programming assignments. In Proceedings of the 53rd ACM Technical Symposium on Computer Science Education V. 1 (New York, NY, USA, 2022), SIGCSE 2022, Association for Computing Machinery, pp. 307-313.
4. 4. Blau, H., and Moss, J. E. B. Frenchpress gives students automated feedback on java program flaws. In Proceedings of the 2015 ACM Conference on Innovation and Technology in Computer Science Education (New York, NY, USA, 2015), ITiCSE '15, Association for Computing Machinery, pp. 15-20.
5. 5. Clang Team. LLVM - Clang-tidy - cppcoreguidelines-slicing. https://releases.llvm.org/13.0.0/tools/clang/tools/extra/docs/clangtidy/checks/cppcoreguidelines-slicing.html, Accessed: 2023-02-25.