Analysis of approaches in teaching the introductory programming course in universities

Authors

  • Yuliya Prokop
  • Olena Trofymenko
  • Olexander Zadereyko

DOI:

https://doi.org/10.34185/1562-9945-4-135-2021-08

Keywords:

CS1

Abstract

The importance of the effective study of the initial programming course (CS1), on the one hand, and the need to take into account the requirements for IT professionals today, on the other hand, encourage universities to flexibly change educational components, adjust curricula and disciplines. The relevance of finding approaches that positively affect the effectiveness of learning the basics of programming, due to the complexity of this course for students and the high level of dropout in the first session.
The paper analyzes the approaches of foreign universities in teaching the CS1 course. The tendencies of the Ukrainian IT labour market concerning the need for adjustment of the content of the Algorithmization and programming course (Ukrainian analogue CS1) are investigated.
It is established that there is no universal solution to the problems associated with teaching the initial programming course in the universities. Important factors that positively affect the success of programming training are the motivation of students, a set of didactic processes and methods, as well as good knowledge of the subject by teachers. To increase the effectiveness of training, researchers propose to change the programming language used in the introductory programming course and to introduce new classes of tasks in the curriculum. The effectiveness of the solutions depends on the regional specifics and traditions of IT education.
Considering the ranking of programming languages in demand in Ukraine, the need to establish a relationship between disciplines and specifics of courses, the appropriate scheme of using programming languages are C / C ++ in Algorithmization and programming course (CS1) and then Java / C # in Object-oriented programming course (CS2). Another solution is to collaborate with IT companies and to involve students in writing real programs.

References

Undergraduate Programming Courses, Students’ Perception and Success / Krpan D., Mladenovic S., Rosić M. // Procedia - Social and Behavioral Sciences. – 2018. – Vol. 174. – P. 3868–3872. DOI: 10.1016/j.sbspro.2015.01.1126.

Sobral S. 30 years of CS1: Programming Languages Evolution / S. Sobral // ICERI-2019 Proceedings. – 2019. – P. 9197–9205. DOI: 10.21125/iceri.2019.2214.

Andrzejewska M. Przyczyny niepowodzeń edukacyjnych studentów informatyki na wstępnych kursach programowania / M Andrzejewska. // Edukacja, Technika, In-formatyka. – 2018. – Vol. 4. – P. 211–217. DOI: 10.15584/eti.2018.4.29

EasyCoding - Methodology to Support Programming Learning. / Almeida M., Alves L., Pereira M., Barbosa G. // First International Computer Programming Education Con-ference ICPEC-2020. DOI: 10.4230/OASIcs.ICPEC.2020.1

Watson C. Failure rates in introductory programming revisited. / Watson C., Li F. // ITiCSE '14: Proceedings of the 2014 conference on Innovation & technology in computer science education. – New York, NY, USA, 2014. P. 39–44. DOI: 10.1145/2591708.2591749.

Using Games to Help Novices Embrace Programming: From Elementary to Higher Education / Mladenovic S., Krpan D., Mladenović M. // International Journal of Engineer-ing Education. – 2016. – Vol. 32. – P. 521-531.

CS2 and the Impact of Programming Language Choice / Siegfried R., Herbert-Berger K., Siegfried J. // 51st ACM Technical Symposium on Computer Science Education (SIGCSE '20). – New York, NY, USA, 2020. – P. 1353. DOI: 10.1145/3328778.3372644.

A Longitudinal Analysis of the Reid List of First Programming Languages / Siegfried R., Siegfried J., Alexandro G. // Information Systems Education Journal. – 2016. – Vol. 14(6). – P. 47–54.

Recent Studies About Teaching Algorithms (CS1) and Data Structures (CS2) for Computer Science Students / Silva D., Aguiar R., Dvconlo D., Silla C. // IEEE Frontiers in Education Conference (FIE). – Covington, KY, USA, 2019. – P. 1–8. DOI: 10.1109/FIE43999.2019.9028702.

Aleksić V. Introductory Programming Subject in European Higher Education / V. Aleksić, M. Ivanović // Informatics in Education. – 2016. – Vol. 15, No. 2. – P. 163–182. DOI: 10.15388/infedu.2016.09.

Using real projects as motivators in programming education / Konecki M., Lovrenčić S., Kaniški M. // 39th International Convention on Information and Communication Technology, Electronics and Microelectronics (MIPRO). – Opatija, Croatia, 2016. – P. 883–886. DOI: 10.1109/MIPRO.2016.7522264.

Mediated transfer from visual to high-level programming language / Krpan D., Mladenović S., Zaharija G. // 40th International Convention on Information and Com-munication Technology, Electronics and Microelectronics (MIPRO). – Opatija, 2017. – P. 800–805. DOI: 10.23919/MIPRO.2017.7973531.

Seng W. Y. Computer Game as Learning and Teaching Tool for Object Oriented Pro-gramming in Higher Education Institution / Wong Yoke Seng, Maizatul Hayati Mohamad Yatim // Procedia - Social and Behavioral Sciences. – 2014. – Vol. 123. – P. 215–224. DOI: 10.1016/j.sbspro.2014.01.1417.

Madeja M. Innovative Approaches in C Introductory Programming Courses / M. Madeja, J. Porubän // ICT in Education, Research, and Industrial Applications, 2019.

Python Versus C++: An Analysis of Student Struggle on Small Coding Exercises in Introductory Programming Courses / Alzahrani N., Vahid F., Edgcomb A., Nguyen K., Lysecky R. // 49th ACM Technical Symposium on Computer Science Education (SIGCSE '18). – USA, 2018. – P. 86–91. DOI: 10.1145/3159450.3160586.

Prokop Y.V. A study of software development tools that are required in the job mar-ket in Ukraine and the world. / Prokop Y.V., Trofymenko O.G., Kapustin M.М. // Proceed-ings of the O.S. Popov ОNAT. – 2018. – Vol. 2. – P. 101-108. DOI: 10.33243/2518-7139-2018-1-2-101-108.

Rating of programming languages 2021. URL:

https://dou.ua/lenta/articles/language-rating-jan-2021/

An Analysis of Introductory Programming Courses at UK Universities / Murphy E., Crick T., Davenport J. // The Art, Science, and Engineering of Programming. – 2017. – Vol. 1(2). – DOI: 10.22152/programming-journal.org/2017/1/18.

Toward Predicting Success and Failure in CS2: A Mixed-Method Analysis / Layman L., Song Y., Guinn C. // ACM Southeast Conference (ACM SE '20). – New York, NY, USA, 2020. – P. 218–225. DOI: 10.1145/3374135.3385277.

Analysis of Student Misconceptions using Python as an Introductory Programming Language / Johnson F., McQuistin S., O'Donnell J. // 4th Conference on Computing Edu-cation Practice (CEP 2020). – New York, NY, USA, 2020. – Article 4. – P. 1–4. DOI: 10.1145/3372356.3372360.

Multivariate analysis when choosing the first programming language studied in uni-versities / Prokop Yu., Trofimenko E., Zadereyko O., Loginova N., Gerganov M. // Ad-vancing Society Through Applied Physics, Electrical and Computer Engineering. 2nd Ukraine Conference on Electrical and Computer Engineering (IEEE UKRCON-2019). – P. 1224-1228.

Damyanov I. Programming languages in undergraduate courses and in software in-dustry in Bulgaria / Damyanov I., Borisova N. // International Journal of Pure and Ap-plied Mathematics. – 2017. – Vol. 117. – P. 271–278. DOI: 10.12732/ijpam.v117i2.3.

A snapshot of current practices in teaching the introductory programming se-quence / Davies S., Polack-Wahl J., Anewalt K. // 42nd ACM technical symposium on Computer science education (SIGCSE '11). – New York, NY, USA, 2011. – P. 625–630. DOI: 10.1145/1953163.1953339.

Downloads

Published

2021-04-05