Program analysis for Clustering Programmers' Profile
Daniel José Ferreira Novais, Maria João Varanda Pereira, Pedro Rangel Henriques
DOI: http://dx.doi.org/10.15439/2017F147
Citation: Proceedings of the 2017 Federated Conference on Computer Science and Information Systems, M. Ganzha, L. Maciaszek, M. Paprzycki (eds). ACSIS, Vol. 11, pages 701–705 (2017)
Abstract. Each programmer has his own way of programming but some criteria can be applied when analysing code: there are a set of best practices that can be checked, or ''not so common'' instructions that are mainly used by experts that can be found. Considering that all programs that are going to be compared are correct, it's possible to infer the experience level of the programmer or the proficiency level of the solution. The approach presented in this paper has as main goal to compare sets of solutions to the same problem and infer the programmers profile. This can be used to evaluate the programmer skills, the proficiency on a given language or evaluate programming students. A tool to automatically profiling Java programmers called PP (Programmer Profiler) is presented in this paper as a proof of concept.
References
- Thomas Flowers, Curtis Carver, James Jackson, et al. Empowering students and building confidence in novice programmers through gauntlet. In Frontiers in Education, 2004. FIE 2004. 34th Annual, pages T3H–10. IEEE, 2004.
- Maria Hristova, Ananya Misra, Megan Rutter, and Rebecca Mercuri. Identifying and correcting java programming errors for introductory computer science students. ACM SIGCSE Bulletin, 35(1):153–156, 2003.
- Quinn Hanam, Lin Tan, Reid Holmes, and Patrick Lam. Finding patterns in static analysis alerts: improving actionable alert ranking. In Proceedings of the 11th Working Conference on Mining Software Repositories, pages 152–161. ACM, 2014.
- James Jackson, Michael Cobb, and Curtis Carver. Identifying top java errors for novice programmers. In Frontiers in Education, 2005. FIE’05. Proceedings 35th Annual Conference, pages T4C–T4C. IEEE, 2005.
- Huzefa Kagdi, Michael L Collard, and Jonathan I Maletic. A survey and taxonomy of approaches for mining software repositories in the context of software evolution. Journal of Software Maintenance and Evolution: Research and Practice, 19(2):77–131, 2007.
- Emı́lia Pietriková and Sergej Chodarev. Profile-driven source code exploration. Computer Science and Information Systems (FedCSIS), pp. 929-934, IEEE., 2015. Raphael ‘kena’ Poss. How good are you at programming?—a CEFR-like approach to measure programming proficiency. July 2014.
- Nghi Truong, Paul Roe, and Peter Bancroft. Static analysis of students’ java programs. In Proceedings of the Sixth Australasian Conference on Computing Education-Volume 30, pages 317–325. Australian Computer Society, Inc., 2004.