Currently, information technologies are developing very quickly, this situation is due to the process of globalization and the improvement of information communications.
From this, one of the most important problems arises when trying to train qualified specialists of IT specialties in higher educational institutions: almost every week new technologies are created that are worthy of placement in a previously planned semester-long course. The curriculum in higher education institutions often still adheres to the old format, unacceptable to constant changes due to the specifics of the subject.
Purpose of the study
Thus, it becomes obvious that the rapid development of IT requires the introduction of innovative approaches to the methods of teaching students information disciplines.
How can innovative methods increase the effectiveness of higher education institutions in training exemplary IT specialists?
Materials and research methods
The fundamental method for the ongoing research is a theoretical analysis and synthesis of scientific literature in order to identify the most effective implementation of innovative technologies in the process of teaching students programming.
Progress in the IT sphere directly affects the educational process of any specialty one way or another connected with IT. It becomes obvious that training IT specialists without taking into account modern developments will not satisfy a modern employer. Thus, first of all, the training program should focus on the needs of the market, as well as be adapted to the constant change in content, flexibly adapting to the situation on the labor market. Only when these factors are taken into account when training novice specialists, it is possible to ensure their relevance and competitiveness upon graduation from a higher institution, as well as guarantee their employment [1, 2].
The term programming defines the process and skill of writing programs on computers using a variety of programming languages. In other words, programming is like coding algorithms in a particular programming language. To summarize, programming is the process of writing programs, in other words, developing functioning software [3].
As a rule, first-year students who have just graduated from school or any other secondary specialized institution are almost completely familiar with rare exceptions with complicated models and techniques, which are often used in current programming. Therefore, many readings of theoretical material – lectures – are required. Despite the large amount of material, it still turns out to be insufficient for an in-depth understanding of the topics and successful independent work on home or laboratory tasks [4].
Particularly acute is the problem of insufficient basic training for most students who have just graduated from school. This is manifested in such signs as:
– not honed knowledge of mathematics in the school curriculum;
– poorly developed or not developed at all logical and abstract thinking;
– the inability to distinguish important aspects from the material proposed by the lecturer, to divide into main provisions and consequences;
– often the lack of writing skills, reading lecture materials presented by students is sometimes a difficult task for themselves: they are written in sloppy handwriting, fragmentary and logically unconnected [4].
Why does the problem of insufficient development of logical and abstract thinking skills arise during the period of schooling programming? One of the obvious problems of teaching programming as part of the school curriculum is the lack of a systematic approach. The essence of the problem lies in the fact that the school does not teach you how to solve problems using a certain programming language, but rather they only teach the syntax of this programming language. The task of an informatics teacher in secondary educational institutions is to instill in students the fundamental principles of the language without an applied solution to real problems through programming [5].
To correct the problem described above, during the period of higher education, teachers began to use multimedia when lecturing. Multimedia tools – a community of tools that allow you to use all kinds of forms of information – text, numbers, graphics, sounds, animations and videos [6].
At the moment there is a huge number of various kinds of multimedia manuals in which you can find assignments for students of all courses and levels of knowledge. In such publications, a variety of methodological techniques are used. With their help, you can complete training, monitor the level of knowledge received by students and prepare a list of teaching aids [7]. Using multimedia tools, students should work independently on assignments using the interactive resources of the multimedia complex and choose their sequence of study on their own.
Interactivity is one of the most important properties of multimedia tools because with its help students can sort information by relevance for them, as well as edit the pace of studying the material individually. In other words, students play an active role in the educational process itself. With the capabilities of multimedia tools, the opportunity opens up not only for independent work, but also for group training, forming such an important skill for a programmer as teamwork, which we will discuss in more detail later [8]. For a programmer, the skill of working in a team is critical, since a specialist alone is not able to ensure the creation of high-quality and complex software.
The introduction of multimedia tools into the curriculum makes it possible to greatly facilitate the students ‘perception of the taught material in higher educational institutions for several reasons: firstly, visualization increases students’ interest in the subject being studied, and secondly, visualization makes it possible to assimilate material much more easily, appeal to representations which are comfortable for visual observation and analysis, as well as generally improve the quality of education [9].
Now education in the field of information technology is faced with the problem of constantly changing training methods and requirements for a modern specialist. The development of more and more new software, the invention of new programming languages and the complexity of the old ones exacerbate this problem. Regular software complexity requires changing existing approaches to their development. Software development is subject to many regulations, international standards and corporate practices.
Another problem facing programming teachers is the impossibility of relying on time-tested methods, techniques and tools. As a rule, printed didactic materials on programming and information technology become irrelevant and become outdated in 2-3 years. That is why paper editions are less and less used for training in this area, and most prefer digital sources of information.
Electronic library (EB) is a digital platform that reliably preserves and fruitfully uses large collections of electronic documents (such as text, graphic, sound, etc.) placed in the system, as well as those that can be accessed through telecommunication networks [10].
The obvious advantages of digital libraries (we can cite the electronic library of the Moscow Polytechnic University – elib.mgup.ru as an example of a typical electronic library) are:
– Since almost any literature related to programming languages is edited every 2-3 years, you do not need to spend money on a new paper edition of the book – just delete the old version and download the new one.
– The literature of university electronic libraries is most often free and provided by the state, like all services provided by electronic libraries.
– An e-book, unlike its paper version, cannot be damaged.
– Most books on programming languages are heavy, which means you cannot carry them with you in large numbers. Digital editions can also be stored on removable media weighing several grams.
Therefore, EB at the moment should play an important role in the life of a student studying in IT specialties, by and large, already from the first course of study in a higher educational institution.
The basic concepts that are used in modern programming (popular algorithms, branches, and so on) should not cause difficulties for specialists in this field. During the educational process, it is students who focus on them, since they are used everywhere. When teaching such structures, students develop a special skill – algorithmic thinking. Algorithmic thinking is the ability to think in special patterns, which allows you to solve various problems with the help of compiling algorithms. Thinking of this type is one of the important components of the formation of a full intellectual education of a person [11].
An effective method for the development of algorithmic thinking of students in the study of one of the languages of object-oriented programming is teaching design skills and the practical application of algorithms for solving numerous and diverse classes of problems. It should be noted that with this approach, a number of difficulties also arise due to the huge number of teaching methods. It becomes obvious that the more modern and better pedagogical technologies are used, primarily during the teaching of programming, the stronger is the interest among students in solving the tasks set by the teacher with the help of algorithmic thinking and programming languages.
The main task of teaching any discipline is not so much the memorization of theoretical material, but rather the acquisition of the ability to successfully apply it in practice. This explains the need to focus students on examples of tasks to be solved. Typical tasks given by the teacher as an example will help students see practical benefits in them.
As S.I. Marajabov noted in his work, “the study of object-oriented programming languages requires the development of new methods of teaching and teaching. Therefore, it is necessary to use the latest teaching methods in the classroom (lectures, practical and laboratory work) on programming, to use more convenient, widespread and affordable programming systems” [12].
Algorithmization is an important stage in solving a problem using a computer. Thus, the formation of algorithmic thinking is the main task in the study of programming, since even simple algorithms are difficult for freshmen to understand, and therefore, difficult to learn [13]. In pedagogy, to facilitate the process during training, universally use the previously mentioned multimedia tools, for example, presentations, which provide visualization of the material told by the teacher; auxiliary videos and animations that illustrate the work of the studied algorithms [14, 15].
Recently, more and more attention has been focused on the need to develop self-education skills in the study of programming languages. The resources of electronic libraries, the Internet help in acquiring these skills, and distance learning plays an equally important role in this matter.
Distance learning, or e-learning, allows students to gain knowledge while away from a higher educational institution using the latest information technology and improve their ability to independently learn programming languages [16].
There are many forms of e-learning:
– Portals with video lessons (for example, interneturok.ru, ted.com and so on)
– Portals with lessons consisting of text-based thematic material, supplemented by videos
– Educational forums open for discussions of topics of interest
– Online tests and a variety of test tasks
– Portals of webinars, lecture broadcasts of teachers with interaction with students through a microphone, chat and so on.
– Interactive educational games.
However, it is worth noting that, unlike standard educational practice, when the teacher has the opportunity to change the content of his lectures, depending on the new requirements for a specialist in this field, accepted standards and the invention of new innovative techniques in programming languages, the lectures are recorded in video or audio at a time format change becomes more difficult. To solve this problem, it is necessary to break the audio and video lectures into logically connected fragments, which allow you to easily and simply edit the necessary parts from the many hours of recording, as well as add new fragments as necessary. Thus, this method allows students to provide relevant educational content during distance learning [17].
Nevertheless, it is necessary to take into account the difficulty of achieving intellectual and personal interaction between a teacher and a student or between a student and a fellow student, which can easily happen during classroom instruction. Adaptability, which allows using this software to various groups of students is no less important, that is, the coverage should be greater than that of the standard “single-user” educational application. The software that was developed for one type of student (with a certain body of knowledge) may turn out to be completely irrelevant for other students, which may have lagged behind their peers for any reason [18].
The principle of team work on creating software is based on the organizational principles of projects: the responsibilities of each team member (leader, designer, programmer, and so on), the stages of the project and its life cycle. Each of the roles performed by employees in a team has a basis that should be formed during training at the school and higher educational institutions. Therefore, at present, employers demand from specialists not only impeccable programming skills, but also the ability to take part in the team in the development of complex software systems, respectively, the teaching staff is faced with the task of creating the necessary skills for students in social and professional work together with technical skills sphere [19]. In this regard, it is necessary to add to the curriculum related to programming and information technology in general, subjects that develop students’ team skills, such as: leadership, social and business communication skills and team management.
Several attempts at collective teaching of programming in European universities have already been realized [20]. At the Complutense University of Madrid (Spain), a group of teachers conducts a programming course based on the NUCLEO distance learning system. This system was created with a focus on the socio-pedagogical approach to the formation of communication experience in Problem Based Learning. A feature of the problem teaching methodology is that the students’ activities are organized in such a way that information is absorbed by them by solving various problems in the emerging problem situations. Thus, NUCLEO can simulate active teamwork: interpersonal communication, disagreements and their solutions. The concept of this system is based on the theory of activity, which is practically implemented in a special virtual environment. NUCLEO allows you to control and study the stages of personality formation based on the collected data.
The teacher’s task for the successful operation of such a training system is to model the behavior of the subject in the social environment. Scientists advise using NUCLEO to develop teamwork skills in software development. The interaction itself in the social environment is carried out using two different schemes: competitiveness and cooperation. These two schemes should increase motivation and teach different group dynamics depending on the game context planned by teachers. The NUCLEO system has a system of awards and rewards that are awarded depending on the achievements during the educational process of students [21].
Research results and discussion
We can conclude that one of the most effective innovative methods for improving the educational process of students in the field of IT is to borrow foreign experience in developing students’ teamwork and introduce this experience into a modern educational program to provide the necessary skills for specialists to be in demand in the modern work market.
In lectures, obviously, students will perceive much more information when using visualization to explain the algorithms. Indeed, visualization is no longer an innovation in the educational process, since most teachers and teachers actively use visual multimedia materials in the process of explaining new material.
Visualization of algorithms is used to facilitate the educational process, clearly depicting the operation of the algorithms. Visualization is a universal methodological tool, since it is used both in high school and in higher education institutions in the initial stages of programming.
The electronic library, as it turned out, should play an equally important role in the life of a student of an information specialty from the first year of study at a higher educational institution. Since it makes it easy to update educational publications, it is compact, convenient to use, and in most cases free.
Conclusion
There are still many obstacles to the successful and effective teaching of programming in higher education. In a way, a programming teaching system is similar to what it was fifty years ago. One of the obstacles is the lack of a clearly defined unified approach, which is able to fulfill all the mental, social and business requirements of students, as well as provide high-quality technical training [22].
The solution to this problem may be the introduction of a problem-semiotic technique – a kind of successful synthesis of the above innovations in the article: the union of problem and semiotic approaches, including their positive aspects, but not having their individual flaws.