Журнал: Том 26, № 2, 2021
Сторінки: 18 – 30
DOI: https://doi.org/10.24025/2306-4412.1.2021.229502
1 123 Перегляди

Комплексний аналіз підходів до викладання курсів cs1 і cs2 в університетах світу та України

Юлія Віталіївна Прокоп, Олена Григорівна Трофименко, Анатолій Арнольдович Толокнов, Ярослав Володимирович Дубовой
Отримано 17.02.2021
Доопрацьовано 03.05.2021
Прийнято 22.06.2021

Анотація

Стаття присвячена пошуку способів покращення успішності при вивченні базових дисциплін з програмування на 1-му і 2-му курсах навчання бакалаврату при підготовці ІТ фахівців. Досліджено навчальні плани підготовки здобувачів вищої освіти у галузі 12 Інформаційні технології в українських вишах. Розглянуто змістове наповнення дисциплін «Алгоритмізація та програмування», «Алгоритми та структури даних», «Об’єктно-орієнтоване програмування» та аналогічних курсів CS1 і CS2 у західних вишах. З’ясовано, що ці курси є фундаментальними у підготовці якісних фахівців ІТ галузі, а тому важливо залучати передовий світовий досвід та найкращі підходи у викладанні для гнучкого корегування навчальних програм дисциплін, враховуючи сучасні вимоги до фахівців на ринку ІТ праці. Порівняння підходів до викладання зазначених курсів в українських вишах та за кордоном виявило певні розбіжності підходів до вибору мови програмування, що використовується у цих курсах, а також відмінності змістового наповнення, які не повною мірою пояснюються регіональною специфікою ринку ІТ праці і можуть сигналізувати про необхідність вдосконалення робочих програм. Результати дослідження дадуть змогу більш виважено і ґрунтовно підходити до змістового формування зазначених навчальних дисциплін з програмування, вибору підходів до мотивації здобувачів вищої освіти до навчання

Ключові слова

Використані джерела

[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.

ЦИТУВАТИ

Prokop, Y., Trofymenko, O., Toloknov, A., & Dubovoi, Ya. (2021). Analysis of ways to improve the efficiency in the study of cs1 and cs2 courses in universities of the world and Ukraine . Bulletin of Cherkasy State Technological University, 26(2), 18-30. https://doi.org/10.24025/2306-4412.1.2021.229502