Analysis of ways to improve the efficiency in the study of cs1 and cs2 courses in universities of the world and Ukraine
Abstract
The article is devoted to finding ways to improve the efficiency in the study of basic disciplines of programming in the 1st and 2nd year of bachelor's degree in the training of IT professionals. The curricula for the training of students in the field of 12 (Information Technologies) in Ukrainian universities have been studied. The content of Algorithmization and programming, Algorithms and data structures, Object-oriented programming disciplines and similar CS1 and CS2 courses in Western universities are considered. These courses have been found to be fundamental in training quality IT professionals. A study of current problems of teaching CS1 and CS2 courses in universities of other countries has revealed that these courses, as well as their counterparts in Ukrainian universities, are difficult for students, with a high level of exam failure and dropout during sessions. Therefore, the search for ways to improve the efficiency of these courses is very important. The analysis of different approaches to teaching CS1 and CS2 in the universities of the world and Ukraine has allowed us to find out the list of the main topics of their content. The study of statistics on the use of programming languages in these disciplines has shown that universities mainly use Java, Python, C/C++ languages, and there is a pronounced regional specificity. Based on the rating of programming languages in demand in Ukraine, the need to establish a relationship between courses and their specifics, the following scheme of using programming languages is preferred: C/C++ – in Algorithmization and programming course, C/C++ – in Algorithms and data structures course, Java or C# – in Object-oriented programming course. Emphasis is placed on the importance of drawing on world best practices and best approaches in teaching for flexible adjustment of curricula of disciplines taking into account modern requirements for specialists in the IT labor market. The results of the study will allow a more balanced and thorough approach to the meaningful formation of these programming courses, the choice of approaches to motivate higher education students to study
Keywords
programming language; IT education; algorithmization and programming; algorithms and data structures; object-oriented programming
References
[1] D. B. Silva, R. L. Aguiar, D. S. Dvconlo, and C. N. Silla, "Recent studies about teaching algorithms (CS1) and data structures (CS2) for computer science students", in 2019 IEEE Frontiers in Education Conf. (FIE), Covington, KY, USA, 2019, pp. 1-8. doi: 10.1109/FIE43999.2019.9028702.
[2] D. Krpan, M. Rosić, and S. Mladenovic, "Teaching basic programming skills to undergraduate students", in Proc. CIET’14, 2014, pp. 147-158.
[3] D. Krpan, S. Mladenović, and M. Rosić, "Undergraduate programming courses, students’ perception and success", Procedia – Social and Behavioral Sciences, vol. 174, pp. 3868-3872, 2015. doi: 10.1016/j.sbspro.2015.01.1126.
[4] S. Sobral, "30 years of CS1: Programming languages evolution", in Proc. ICERI’19, 2019, pp. 9197-9205. doi: 10.21125/iceri.2019.2214.
[5] M. Andrzejewska, "Przyczyny niepowodzeń edukacyjnych studentów informatyki na wstępnych kursach programowania", Edukacja, Technika, Informatyka, vol. 4, pp. 211-217, 2018. doi: 10.15584/eti.2018.4.29.
[6] M. Almeida, L. Alves, M. Pereira, and G. Barbosa, "EasyCoding – methodology to support programming learning", in First Int. Computer Programming Education Conf. ICPEC-2020, 2020, pp. 1-8. doi: 10.4230/OASIcs.ICPEC.2020.1.
[7] C. Watson, and F. Li, "Failure rates in introductory programming revisited", in Proc. 2014 Conf. Innovation & Technology in Computer Science Education (ITiCSE '14), Association for Computing Machinery, New York, NY, USA, 2014, pp. 39-44. doi: 10.1145/2591708.2591749.
[8] J. María, R. Corral, A. Balcells, A. Estévez, G. Moreno, and M. Ramos, "A game-based approach to the teaching of object-oriented programming languages", Computers & Education, vol. 73, pp. 83-92, 2014. doi: 10.1016/j.compedu.2013.12.013.
[9] S. Mladenovic, and D. Krpan, "Using games to help novices embrace programming: From elementary to higher education", International Journal of Engineering Education, vol. 32, no. 1 (B), pp. 521-531, 2016.
[10] D. Krpan, S. Mladenović, and G. Zaharija, "Mediated transfer from visual to high-level programming language", in 40th Int. Convention Information and Communication Technology, Electronics and Microelectronics (MIPRO’2017), Opatija, 2017, pp. 800-805. doi: 10.23919/MIPRO.2017.7973531.
[11] A. Brito, and A. Medeiros, "A motivating approach to introduce object-oriented programming to engineering students", The International Journal of Electrical Engineering & Education, vol. 7, 2019. doi: 10.1177/0020720919856247.
[12] W. Yoke, and M. Yatim, "Computer game as learning and teaching tool for object oriented programming in higher education institution", Procedia – Social and Behavioral Sciences, vol. 123, pp. 215-224, 2014. doi: 10.1016/j.sbspro.2014.01.1417.
[13] M. Madeja, and J. Porubän, "Innovative approaches in C introductory programming courses", in ICTERI PhD Symposium, 2019.
[14] M. Konecki, S. Lovrenčić, and M. Kaniški, "Using real projects as motivators in programming education", in 2016 39th Int. Convention Information and Communication Technology, Electronics and Microelectronics (MIPRO), Opatija, Croatia, 2016, pp. 883-886. doi: 10.1109/MIPRO.2016.7522264.
[15] R. M. Siegfried, K. G. Herbert-Berger, and J. P. Siegfried, "CS2 and the impact of programming language choice", in Proc. 51st ACM Technical Symposium Computer Science Education (SIGCSE '20), Association for Computing Machinery, New York, 2020, p. 1353. doi: 10.1145/3328778.3372644.
[16] R. M. Siegfried, J. P. Siegfried, and G. Alexandro, "A longitudinal analysis of the reid list of first programming languages", Information Systems Education Journal, vol. 14 (6), pp. 47-54, 2016.
[17] V. Aleksić, and M. Ivanović, "Introductory programming subject in european higher education", Informatics in Education, vol. 15, no. 2, pp. 163-182, 2016. doi: 10.15388/infedu.2016.09.
[18] E. Murphy, T. Crick, and J. Davenport, "An analysis of introductory programming courses at UK universities", The Art, Science, and Engineering of Programming, vol. 1 (2), no. 18, 2017. doi: 10.22152/programming-journal.org/ 2017/1/18.
[19] A. Herala, E. Vanhala, and U. Nikula, "Object-oriented programming course revisited", in Proc. 15th Koli Calling Conf. Computing Education Research, Association for Computing Machinery, New York, 2015, pp. 23-32. doi: 10.1145/2828959.2828974.
[20] N. Alzahrani, F. Vahid, A. Edgcomb, K. Nguyen, and R. Lysecky, "Python versus C++: An analysis of student struggle on small coding exercises in introductory programming courses", in Proc. 49th ACM Technical Symposium Computer Science Education (SIGCSE '18), Association for Computing Machinery, New York, NY, USA, 2018, pp. 86-91. doi: 10.1145/3159450.3160586.
[21] L. Layman, Y. Song, and C. Guinn, "Toward predicting success and failure in CS2: A mixed-method analysis", in Proc. 2020 ACM Southeast Conf. (ACM SE '20), Association for Computing Machinery, New York, NY, USA, 2020, pp. 218-225. doi: 10.1145/3374135.3385277.
[22] F. Johnson, S. McQuistin, and J. O'Donnell, "Analysis of student misconceptions using Python as an introductory programming language", in Proc. 4th Conf. Computing Education Practice 2020 (CEP 2020), Association for Computing Machinery, New York, NY, USA, 2020, vol. 4, pp. 1-4. doi: 10.1145/3372356.3372360.
[23] Y. Prokop, E. Trofimenko, N. Loginova, A. Zadereyko, and M. Gerganov, "Multivariate analysis when choosing the first programming language studied in universities", in 2019 IEEE 2nd Ukraine Conf. Electrical and Computer Engineering (UKRCON), 2019, pp. 1224-1228. doi: 10.1109/UKRCON.2019.8879810.
[24] S. Naveed, M. Sarim, and A. Nadeem, "C in CS1: Snags and viable solution", Mehran University Research Journal of Engineering and Technology, vol. 37, no. 1, pp. 1-14, 2018. doi: 10.22581/MUET1982.1801.01.
[25] I. Damyanov, and N. Borisova, "Programming languages in undergraduate courses and in software industry in Bulgaria", International Journal of Pure and Applied Mathematics, vol. 117, no. 2, pp. 271-278, 2017. doi: 10.12732/ijpam.v117i2.3.
[26] S. Davies, J. Polack-Wahl, and K. Anewalt, "A snapshot of current practices in teaching the introductory programming sequence", in Proc. 42nd ACM Technical Symposium Computer science education (SIGCSE '11), Association for Computing Machinery, New York, NY, USA, 2011, pp. 625-630. doi: 10.1145/1953163.1953339.
[27] Y. Prokop, E. Trofimenko, N. Severin, and L. Bukata, "An analysis of criteria for choosing a first programming language in universities", in 15th Int. Conf. ICT in Education, Research, and Industrial Applications (ICTERI’19), 2019, pp. 420-425.
[28] S. Sobral, "CS1: C, Java or Python? Tips for a conscious choice", in Proc. ICERI’19, 2019, pp. 2512-2519. doi: 10.21125/iceri.2019.0666.
[29] E. Mehmood, A. Abid, M. S. Farooq, and N. A. Nawaz, "Curriculum, teaching and learning, and assessments for introductory programming course," in IEEE Access, 2020, vol. 8, pp. 125961-125981. doi: 10.1109/ACCESS.2020.3008321.
[30] Yu. V. Prokop, O. H. Trofymenko, and O. V. Zadereyko, "Analysis of approaches in teaching the introductory programming course in universities", Systemni tekhnolohii, vol. 4 (135), pp. 73-84, 2021. [in Ukrainian]. doi: 10.34185/1562-9945-4-135-2021-08.
[31] R. Shevchenko, "Rating of programming languages 2021: the share of Python is decreasing, and TypeScript has bypassed C++". [Online]. Available: https://dou.ua/lenta/ articles/language-rating-jan-2021/?from=tg. Accessed on: Feb. 14, 2021 [in Ukrainian].
[32] The best paying and most in-demand programming languages in 2020. [Online]. Available: https://www.codeplatoon.org/ best-paying-most-in-demand-programminglanguages-2020. Accessed on: Feb. 14, 2021.