DEVELOPING AN OBJECT-ORIENTED PROGRAMMING CURRICULUM IN A FACULTY TEACHING IN FOREIGN LANGUAGES
University Politehnica Bucuresti (ROMANIA)
About this paper:
Conference name: 12th annual International Conference of Education, Research and Innovation
Dates: 11-13 November, 2019
Location: Seville, Spain
Abstract:
This paper describes the experience of designing and implementing an introductory programming curriculum at the Faculty of Engineering in Foreign Languages at University Politehnica Bucuresti, Romania. There are some main points worth noting in this approach: the specifics of the students enrolled at the faculty and the choice of the first programming language to be an object-oriented one, namely Java.
Faculty of Engineering in Foreign Languages (FILS), with programmes taught entirely in foreign languages (English, French, German) has the main objectives to prepare Romanian students to work abroad or in multinational companies and to teach foreign students who want to pursue their engineering studies or Erasmus mobilities in Romania. The faculty offers bachelor programmes in Computer Science and Information Technology, Electronic Engineering, Mechanical Engineering, Chemical Engineering and Industrial Management. The introductory programming courses (Programming Languages - PL, Data Structures and Algorithms - DSA and Object-Oriented Programming - OOP) are common for the Computer Science and Electronic Engineering specialties. These are the premises for starting the programmes with groups of students of mixed background, especially regarding their programming abilities, starting from no experience to four years of practice in STEM high schools, usually in C/C++.
Based on experience, feedback and evaluations as well as analysis of similar programmes it was decided to have the following approach. Instead of starting with a “friendlier” language such as Python or simple such as C/C++, the first course, Programming Languages, that in the first half introduces the main elements of programming (paradigms, syntax, variables, methods, introduction to algorithms) is taught in Java. Having an object-first approach gives the students the ability to start programming and designing in the same time, which allows them to quickly scale up in the following years. Also a static typed language forces students to use appropriate types from the first lessons in variables and functions.
It was considered that even if Java is harder to learn as a first language, the overall effort is smaller than in the case the introductory course was taught in Python and the object oriented course was taught in Java, which would have required a transition period.
The second half of the introductory course introduces object oriented programming, including inheritance, polymorphism and abstract classes allowing the next course in series, OOP to introducing more complex abstractions, concentrate more on design principles, including design patterns, testing as well as more advanced topics of Java – collections, streams and concurrency.
The paper describes in detail the curriculum for the object-oriented track (Programming Languages and Object Oriented Programming) with conclusions from over ten years of teaching the subjects in this approach.Keywords:
Curriculum, programming, object-oriented.