TWO-LEVEL STUDY OF OBJECT-ORIENTED PROGRAMMING BY UNIVERSITY STUDENTS
Abstract
The difficulties of learning the paradigm of object-oriented programming by university students are considered. Two approaches to learn object-oriented programming: Object-First (learning this paradigm at the start of programming learning) and Object-Later (prior learning of structured and procedural programming) are described. The expediency to use the second approach consisting of two levels is proved. The requirements to knowledge and skills being necessary for object-oriented programming are formulated. A review of programming languages used in both levels is presented. The conclusions are made; recommendations to study object-oriented programming are given.
References
[2] Dahl O.-J., Dijkstra E.W., Hoare C.A.R. Structured programming. No. 8. London-New York: Academic Press. VIII, 1972. (In Eng.)
[3] Dijkstra E.W. The structure of the “THE”-multiprogramming system. Commun. ACM. 1968; 11(5):341-346. (In Eng.) DOI: 10.1145/363095.363143
[4] Liskov B.H. A Design Methodology for Reliable Software Systems. Proceedings of Fall Joint Computer Conference (AFIPS'72), AFIPS, 1972. p. 191-199. (In Eng.)
[5] Bennedsen J., Caspersen M.E. Teaching Object-Oriented Programming – Towards Teaching a Systematic Programming Process. Proceedings of the 8th Workshop on Pedagogies and Tools for the Teaching and Learning of Object-Oriented Concepts, 18th European Conference on Object-Oriented Programming (ECOOP 2004). Oslo, Norway, 2004. Available at: http://cs.au.dk/~mec/publications/workshop/11--ecoop2004.pdf (accessed 25.01.2019). (In Eng.)
[6] Lister R., Berglund A., Clear T., Bergin J., Garvin-Doxas K., Hanks B., Hitchner L., Luxton-Reilly A., Sanders K., Schulte C., Whalley J.L. Research perspectives on the objects-early debate. Working group reports on ITiCSE on Innovation and technology in computer science education (ITiCSE-WGR '06). ACM, New York, NY, USA, 2006. p. 146-165. DOI: (In Eng.) 10.1145/1189215.1189183
[7] Ehlert A., Schulte C. Empirical comparison of objects-first and objects-later. Proceedings of the fifth international workshop on Computing education research workshop (ICER '09). ACM, New York, NY, USA, 2009. p. 15-26. (In Eng.) DOI: 10.1145/1584322.1584326
[8] Govender I. From Procedural to Object-Oriented Programming (OOP) - Performance in OOP: An empirical study. South African Computer Journal. 2010; (46). (In Eng.) DOI: 10.18489/sacj.v46i0.13
[9] Basic. A Manual for BASIC, the elementary algebraic language designed for use with the Darthmouth Time Sharing System. Dartmouth College, 1964. Available at: http://www.bitsavers.org/pdf/dartmouth/BASIC_Oct64.pdf (accessed 25.01.2019). (In Eng.)
[10] Bogardus Cortez M. History of Basic Computer Programming Languages: C Language, BASIC and Beyond [Electronic recourse]. EdTech Magazine. June 2017. Available at: https://edtechmagazine.com/higher/article/2017/06/history-programming-languages-c-language-basic-and-beyond (accessed 25.01.2019). (In Eng.)
[11] Wirth N. The Programming Language Pascal. Acta Informatica. 1971; 1(1):35-63. (In Eng.) DOI: 10.1007/BF00264291
[12] Chapman M.R. In Search of Stupidity: Over 20 Years of High-Tech Marketing Disasters. 2nd ed. Apress, 2006. Available at: https://www.r-5.org/files/books/ethology/experience/Merrill_R_Chapman-In_Search_of_Stupidity-EN.pdf (accessed 25.01.2019). (In Eng.)
[13] Gibson S. Borland and Microsoft Enter the Object-Oriented Pascal Ring. Infoworld. 1989; 11(9):28. (In Eng.)
[14] Srinath K.R. Python – The Fastest Growing Programming Language. International Research Journal of Engineering and Technology (IRJET). 2017; 4(12):354-357. Available at: https://www.irjet.net/archives/V4/i12/IRJET-V4I1266.pdf (accessed 25.01.2019). (In Eng.)
[15] Cass S. The 2018 Top Programming Languages. Python stays on top, and Assembly enters the Top Ten [Electronic recourse]. IEEE Spectrum. July 2018. Available at: https://spectrum.ieee.org/at-work/innovation/the-2018-top-programming-languages (accessed 25.01.2019). (In Eng.)
[16] Gamma E., Helm R., Johnson R., Vlissides J. Design Patterns Elements of Reusable Object-Oriented Software. Addison-Wesley; 1995. (In Eng.)
[17] Martin R.C. Agile Software Development: Principles, Patterns, and Practices. Prentice Hall; 2003. (In Eng.)
[18] Fowler M., Beck K., Brant J., Opdyke W., Roberts D. Refactoring: Improving the Design of Existing Code. Addison-Wesley, Upper Saddle River, NJ; 1999. (In Eng.)
[19] Ritchie D.M. The development of the C language. The second ACM SIGPLAN conference on History of programming languages(HOPL-II). ACM, New York, NY, USA, 1993. p. 201-208. (In Eng.) DOI: 10.1145/154766.155580
[20] Vujošević-Janičić, M., Tošić, D. The Role of Programming Paradigms in the First Programming Courses. The Teaching of Mathematics. 2008; 11(2):63-83. Available at: http://elib.mi.sanu.ac.rs/files/journals/tm/21/tm1122.pdf (accessed 25.01.2019). (In Eng.)

This work is licensed under a Creative Commons Attribution 4.0 International License.
Publication policy of the journal is based on traditional ethical principles of the Russian scientific periodicals and is built in terms of ethical norms of editors and publishers work stated in Code of Conduct and Best Practice Guidelines for Journal Editors and Code of Conduct for Journal Publishers, developed by the Committee on Publication Ethics (COPE). In the course of publishing editorial board of the journal is led by international rules for copyright protection, statutory regulations of the Russian Federation as well as international standards of publishing.
Authors publishing articles in this journal agree to the following: They retain copyright and grant the journal right of first publication of the work, which is automatically licensed under the Creative Commons Attribution License (CC BY license). Users can use, reuse and build upon the material published in this journal provided that such uses are fully attributed.