Performance Analysis of Computer Science Students in Programming Learning
Abstract
The difficulties faced by lecturers and students in order to teach and learn programming on computer science courses have been a research topic over the years. The hardship to understand the abstract and logic concepts and consequent demotivation has been resulting in high rates of novices’ failure and class abandonment. This study adopted statistical concepts to analyze students’ final grades in programming subjects and compare their performance. Data were gathered from a computer science course at a Brazilian University. The period analyzed was from 2010 to 2015 including six programming subjects from the first and second academic year. The results pointed a significant number of student failure (43%) and abandonment (25%). It was also discovered that even with different teachers, semesters and programming subjects, the students’ performance mean were nearly equal. The discoveries of this work contributed to point the hardship faced by students and teachers to learn and teach programming.
References
Diez, D. M., Barr, C. D., and Cetinkaya-Rundel, M. (2012). OpenIntro statistics. CreateSpace.
Eltegani, N. and Butgereit, L. (2015). Attributes of students engagement in fundamental programming learning. In Computing, Control, Networking, Electronics and Embedded Systems Engineering (ICCNEEE), 2015 International Conference on, pages 101–106. IEEE.
Gomes, A. and Mendes, A. (2014). A teacher’s view about introductory programming teaching and learning: Difficulties, strategies and motivations. In 2014 IEEE Frontiers in Education Conference (FIE) Proceedings, pages 1–8. IEEE.
Guzdial, M. and Guo, P. (2014). The difficulty of teaching programming languages, and the benefits of hands-on learning. Commun. ACM, 57(7):10–11.
Holland, J., Mitrovic, A., and Martin, B. (2009). J-latte: a constraint-based tutor for java. In 17th International on Conference Computers in Education (ICCE 2009), pages 142–146.
Lahtinen, E., Ala-Mutka, K., and Järvinen, H.-M. (2005). A study of the difficulties of novice programmers. SIGCSE Bull., 37(3):14–18.
Medina, C. F., Pérez, J. R. P., Álvarez Garc’ıa, V. M., and del Puerto Paule Ruiz (2013). Assistance in Computer Programming Learning Using Educational Data Mining and Learning Analytics. In Proceedings of the 18th ACM Conference on Innovation and Technology in Computer Science Education, ITiCSE ’13, pages 237–242, New York, NY, USA. ACM.
Miller, P., Pane, J., Meter, G., and Vorthmann, S. (1994). Evolution of novice programming environments: The structure editors. In of Carnegie Mellon University, pages 140–158.
Piteira, M. and Costa, C. (2013). Learning computer programming: Study of difficulties in learning programming. In Proceedings of the 2013 International Conference on Information Systems and Design of Communication, ISDOC ’13, pages 75–80, New York, NY, USA. ACM.
Robins, A., Rountree, J., and Rountree, N. (2003). Learning and teaching programming: A review and discussion. Computer Science Education, 13(2):137–172.
Shaphiro, S. and Wilk, M. (1965). An analysis of variance test for normality. Biometrika, 52(3):591–611.
Stankov, E., Jovanov, M., Kostadinov, B., and Madevska Bogdanova, A. (2015). A new model for collaborative learning of programming using source code similarity detection. In Global Engineering Education Conference (EDUCON), 2015 IEEE, pages 709–715.
Tucker, S. A. (1993). Evaluation as feedback in instructional technology: The role of feedback in program evaluation. Interactive instruction and feedback, pages 105–132.
Tukey, J. W. (1977). Exploratory data analysis.
Xinogalos, S., Malliarakis, C., Tsompanoudi, D., and Satratzemi, M. (2015). Microworlds, games and collaboration: Three effective approaches to support novices in learning programming. In Proceedings of the 7th Balkan Conference on Informatics Conference, BCI ’15, pages 39:1–39:8, New York, NY, USA. ACM.
