The article is devoted to the use of methodologies and tools used in software engineering for organizing the processes of education and training of students in IT specialties. It is proposed to use the process maturity model (CMM) for education, version control systems, error tracking systems, formal ontologies, design methodology and collective forms for studying disciplines.

Introduction
The IT industry is one of the fastest growing. Not only software and hardware, but also technologies and methodologies in solving industrial problems of software engineering are being updated at a high rate. Accordingly, the approaches to training for the industry should change. IT specialist education programs should take into account the dynamics of development and be updated in proportion to the renewal of the industry. At the same time, they should be arranged in such a way that a student, having obtained the necessary foundation, could master all the new ātrendsā and techniques of the industry.
')
It is quite obvious that it is necessary to dynamically change the program with the involvement of employers from industry and scientific institutions. Employers provide technology - what is being tested and used at the moment, scientific institutes - perspective - what is needed in the future, on the basis of which it will be possible to create brainware (intellectual product)
[1] . To properly organize the process of continuous change of the educational program, it suffices to draw an analogy with customizable business processes for which there are already many solutions on the market for IT products and services. Unfortunately, our
education in the field of IT does not use the benefits of IT . Shoemaker without shoes!
To build the process of updating the programs, it is necessary to allow companies to conduct direct and feedback with universities. Novosibirsk State University (NSU), as well as in some other universities, has developed a good practice when employees of IT-firms work as teachers. In fact, they most directly affect the learning process, bring the latest news to the courses they read. These are the so-called practicing teachers. And, although students always listen to them with interest, a number of related pedagogical and methodological difficulties are revealed.
First, an IT specialist is not always a good methodologist. He knows his subject area well and can talk about her incendiaryly. Students like this. However, it does not follow from this that students learn the relevant material effectively. Secondly, an IT specialist works in technologies that are applicable at the moment, and he knows their advantages and disadvantages well. However, is it able to abstract and āriseā above current circumstances in order to give students a perspective? Probably not always, because for this you need to be aware of not only proven technologies. It is necessary to keep abreast of scientific ideas and approaches that have not always found their wide application. For example, the concept of semantic programming
[2] , which was actively developed in the 1980s at the Institute of Mathematics of the Siberian Branch of the Academy of Sciences, is only now finding its practical use in the form of Ontobox programming technology
[3] with the query language
Libretto .
Another advantage of the described form of cooperation between the university and IT companies is feedback: companies have the opportunity to determine, at the training stage, which student they will take to themselves in the future.
Taking into account the circumstances noted above, I would like to take the relations of the university and industry to the next level of maturity. The methodology of maturity of development processes (Capability Maturity Model,
[4] ) has long been used in software engineering. It consists of highlighting the maturity levels of software development business processes and describing some key practices that help to move from level to level. The current level of maturity of educational processes is more likely the name ārepeatableā (the second level in CMM terminology). The next level is ādefinedā, when business processes are clearly defined, it is clear where the control action is coming from, where is the expected result, and who is responsible for each subprocess. Now the educational process is divided according to the functional principle: here the student has learned algebra, here - object-oriented programming, and here - computer graphics. Unfortunately, there is no integrating mechanism in this sequence. With a sufficiently good internal organization, the dependencies between disciplines are determined, which can give the student an understanding of the connection between the various courses. However, in the end, it is unclear who is responsible for the formation of such characteristics of a specialist as mathematical culture, the habit of reflection, the ability to work with sources, the ability to make sound engineering decisions.
As such an integrating tool, educational standards of the 3rd generation
[5] suggest that instead of traditional āknowledge, skills and abilitiesā, the concept of ācompetenceā be used and to track the learning of these competencies in a student through a series of courses. Following the methodology of the process approach, it is necessary to take the next step, namely, to introduce persons responsible for the entire business process and for individual subprocesses (for the formation of each competence).
We now turn to the application of the methodology of IT in education. Many tools used in software engineering can also be used in the educational process - this is also a collective process, only slightly different. What is the similarity?
1. Bagtracking lectures
Who else remembers that as a student, he sat on the university bench and copied lectures from a blackboard into a notebook, he knows how unreliable this method of transmitting precise formulations, texts and other formal information is. The lecturer sometimes makes inadvertent mistakes, forgets to write something down, does not have time to dwell on something in some detail.
Here we see the familiar process of ācatching errorsā, but not in the code, although, writing in a notebook with some stretch can be considered a code. At the same time, I would like to note that the process of submitting material with misprints is very pedagogical (not accidental, but with the special skill of a lecturer) - it makes students think: āSomething is wrong here, itās necessary to fix itā. The student finds himself in a natural (for himself)
problem situation , the way out of which is finding the right understanding. The student comes to the necessary concept through mistakes and inner mental work. In fact, this method of āproblem situationsā (about it later) gives good results not only in the process of understanding the lecture material.
Thus, it is proposed to use any system (JIRA, Trac, Bugzilla, Trello) for fixing errors, misprints, misunderstandings (and further on categories of messages, for example, āfunctionality requestā) in lectures. Here, the testers are students, preferably organized in small groups, and the developer (programmer) is the lecturer. The bug tracking system solves an important communication problem. Such a relationship should be between students and lecturer throughout the semester constantly.
Along with solving the current tasks of mastering the material, students master a tool that will be useful to them in their professional activities. Moreover, the ability to use this tool is trained in solving practical problems arising
methodologically correctly. Indeed, the need to use an error tracking system appears naturally as a convenient tool for solving current problems of students. High motivation to learn and use error tracking systems is provided.
2. Collective work in the analysis of lectures
Works on all complex IT projects are organized in teams. Therefore, it is important to give students a practice of working in a team. It is good if work is based on the principles of separation of roles, rotation of performers of roles, mutual (horizontal) responsibility on some courses taught. However, as a rule, our education system educates individualists. The situation may be aggravated by the introduction of individual educational trajectories.
Often, when a new specialist comes to work, there are problems in organizing their work within a team. One of the important factors is the level of understanding of the
division of roles in a team. The second is the
adequacy and correctness of communications to develop a common understanding of the tasks. The third is the skill and discipline of
handling tasks ,
scheduling their execution and
reporting .
As part of the learning process, it is possible to organize work in a team regarding learning objectives and issues arising from this. For example, as noted above, when parsing lectures, when searching for errors in them, the work can be built in a small group. During the analysis of lectures, comparing notes, discussing subtle points (āDo we understand the same way?ā), A common understanding is developed, including through the individual mental work of each. In addition, there are gaps, discrepancies of abstracts - someone writes from the words of the lecturer, and someone - in his own understanding.
When organizing work in small groups, students face difficulties in organizing the work of this small group. Just like the older comrades: (1) it is necessary to agree on the time and place of joint work; (2) prepare for this work; (3) eliminate disturbing factors in the course of work (distractions, interruptions, etc.). Thus, students in a problematic situation will require organizational skills that can be taught only when a person has already encountered similar issues. Such an approach also creates motivation for effective work, in contrast to working alone, which, in the absence of proper self-discipline, gives a very low effect. The student can no longer say to himself: āAh, today I donāt want to disassemble something, Iāll sort it out tomorrow,ā since He agreed with his friends for a certain time that they would work together. Mutual obligations and control āfrom the sideā make the process of a studentās extracurricular work more resilient to the factors of the student environment. At the same time, students undergo the practice of working in a team.
For the practice of assigning tasks and roles, students can be asked to determine who in a small group is responsible for formulating questions to the lecturer on the results of the lectures, who is responsible for receiving answers. In addition, each of the members of a small group is responsible not only to the group itself, but also to all other students.
An important role that all members of a small group should try is the role of the organizer. He needs
to set a time and place for meetings of the group, to
provide work with resources ,
to monitor the fulfillment of
commitments . For future managers, this is a good way to train the necessary qualities: demanding of participants, ability to plan time, tasks, ability to fix the current state of affairs, to make and execute decisions.
3. Unified repository of all student works
In the educational process, it is appropriate to use a single repository of all student work. To oblige students in the first year to place all their work in any version control system (for example, SVN) - it means to put them in a situation where it is simply necessary to understand the work of such systems. Note that this does not require any special mental effort from the student. It is important that the skill of working with this system develops as a result of practical rather than educational activities, since refers to learning indirectly. For example, a student can upload a summary of the History to the system, and, as it is written, add new versions of it.
Another advantage of this approach is that the teacher can always see whether the student has done the work or not. You can track the progress of work, note how many versions of the document, how many edits. In addition, negligent students will not be able to resort to such arguments as: āI forgot the flash drive,ā āI have ate my virus,ā and so on. Thus, protection against viruses, storage of various versions of documents, access of teachers to works is realized.
The organization of collective work with source texts is a separate task. It should be solved in the framework of a course in the form of project work on one task.
4. Problem-task approach
The methodological basis of the problem-task approach was discussed in
[6] . Here we touch on the issues of its application to the educational process.
You can not consider the process of education in itself, as the release of some units of production (specialists). In this process, we always deal with the professional and personal self-determination of students. In this sense, the educational process should not be some kind of self-contained system with its educational tasks, which are not completely understood by students who have not yet tried the very problems of professional activity. In Soviet times, industrial training plants were distributed, solving the problem of vocational orientation of applicants. Note that at present this tradition is gradually being revived. One of the problematic issues in the educational process is that many of the learning tasks for students look completely unnatural and incomprehensible. In this case, students have little understanding of what they will need tomorrow, and what they will not. If at the same time the student still believes the word to the teacher, then the chances that we will educate a specialist with critical thinking are significantly reduced.
The guarantee of the education of personnel who make independent decisions, specialists with critical thinking can be given by the
problem-task approach to training. It consists in placing students in problematic situations in which the need arises for informed choice, search and decision making. This gives high motivation to students to study the subject, puts them in the position of an active student. With this approach, the requirements for teachers are increasing: students are really interested in having access to them and explaining the material āin the caseā, not moving far away into lengthy arguments, for example, about the general benefits of mathematics in IT.
At present, students, as a rule, consider the educational process as a certain problem in themselves: one has to pass such and such tasks, tests, exams. For this reason, they are poorly motivated; learning becomes just a series of examinations and tests. In our opinion, the
educational problem should be subordinated to a certain motivating statement of the problem from the professional field .
The source of the correct wording of professional tasks can be science and engineering. How to set such tasks is a separate issue, rather complicated and beyond the scope of this article. As options, it can be proposed to work on the educational problem as a professional, in the form of project activities (more on this later). In addition, it is necessary to take into account that communication is an important component of the life of students, therefore, working in a team on some task has its own internal self-reproducible motives.
The model of problem situations is built on the research interest of students and develops it. When a student is faced with such a situation - he puts the question: āWhat can I personally do to solve this problem, what do I need, what knowledge, skills and abilitiesā? Only with such an approach can we say that a person has learned, literally ātaught himself.ā This approach will require research abilities of students. Facing a problem situation, the student perceives it as his personal problem. Showing research abilities, he is forced to learn how to formulate a problem from a problem.
Task setting is a pivotal point in the organization of students' independent work, which is given so much space by the educational standards of the new generation.
Along with independent work, students should have the opportunity to ask urgent questions and get answers to them. In the case of a good organization of methodological complexes using, for example, Semantic Web technologies, a student could formulate questions in the
OWL / DL language that allows machine processing.
5. Ontological engineering - integrating students' knowledge into a single system
To stimulate the processes of integrating the knowledge of the studied disciplines into a single system, students can be offered to construct a diagram of relations between the concepts studied. The diagram may reflect the relation of the order of presentation, the relation of definability of concepts one through the other. Building such generalizing diagrams is very useful for students in compiling a general understanding of the discipline, determining its place among other subjects. It forces you to put in order your ideas about the subject and correct them in time, providing the results of the constructions to the teacher.
Such diagrams can be compiled directly in the
OWL format, which gives not only the skill of writing ontologies, but also the opportunity for the teacher to use the students' works to form the formal ontology of his discipline. The latter will allow in the future to coordinate programs of related disciplines (based on the concepts used in them).
It should be noted that, as a rule, the ontology of the studied discipline lends itself very well to formalization. Along with the hierarchy of concepts, the teacher is recommended to use top-level ontologies, such as āknowledgeā, āacademic disciplineā, and āresearchā. This approach was proposed by the author in a sectional report at the
Maltsev Readings-2010 conference, and outlined in the theses on IT Teaching in Russia 2010
[7] .
6. Respect means demanding
Another important point in applying the approach of problem situations is the need to provide a high degree of trust to students. Students should be able to solve professional problems seriously. In this case, you need to seriously ask them for a solution. The basis of respect, as you know, is compliance. Students deserve respect for themselves by solving problems in the course of the educational process by the same methods and means as their older colleagues in the professional sphere: using various tools of teamwork, technology, etc.
Based on the principle of similarity of methods, you can notice a feature of the delivery of IT-projects. Probably the reason for the large number of dragged out, not handed over projects is in the habit of taking the exam at the end of the semester. This feature of traditional education significantly slows down the development of the IT industry.
Now, it is logical to proceed to the discussion of another tool of professional activity in relation to the problem-task approach.
7. Use of project methodology in solving problems / tasks
As part of the training activities, students are invited to draw out every significant learning problem in the form of a project. The key characteristics of the project are the budget, terms and volume (quality) of work. The budget for students is their study time. With this approach, students will have a real need for knowledge from the field of project management.
As real projects can be: the study of a particular discipline; the assignment for the course; study of a separate module. There is a need to assess the time to study the subject; determine the requirements of the customer (teacher); agree on the deadlines for the project; plan work on the project. This is an extremely useful practice, because the essence of the project approach is worked out on a perfectly understandable task for students.
For senior students, you can give the basics of risk management. However, this can be done only when they are already acquainted with the real issues of design in practice.
Each new knowledge must be conditioned by a certain internal demand and readiness for the student. All the above ideas and approaches are based on the following principle:
new knowledge should answer the questions asked . Meanwhile, the traditional education system answers unasked questions, which not only demotivates students, but also generates a lot of useless isolated information in the student's head.
8. The system of feedback, control and management of the educational process
To implement the approaches described above, the Novosibirsk State University launched an initiative project to create a
"System of feedback, control and management of the educational process .
" The system consists of organizational forms, methodologies and approaches, where the corresponding information system is used as an infrastructure.
The following functionality is put into the system.
- Task management: the ability to set yourself tasks and track their implementation; reporting forms (for reports, first of all, in front of you), a reminder system.
- Communications: a system for tracking errors in lectures; forum.
- The means of collective work of students (version control system, hypertext knowledge base, updated by students and moderated by teachers, semi-formalized using OWL).
- Analytics: collection of statistical data on the implementation of tasks; projects; forecasting problem situations.
- Social network: the game form of a rating of students; rating of teachers (in the number and quality of answers to students' questions).
- Access to training programs for students and employers.
- Tools for curriculum planning over time (Gantt charts).
It is planned to organize the access of employers to the rating and to the results of the studentās education, which will allow them to select the staff they need, as well as to participate in the formation of individual or collective special education programs (additional courses) in a targeted way, where the ātargetingā is performed using the system data. Rating, on the other hand, will spur students to demonstrate the most worthy qualities and bring in the spirit of healthy competition with proper objectification of basic indicators.
Conclusion
The article discusses approaches to the organization of training processes for IT specialists using well-known, proven software engineering technologies. Offered:
- apply error tracking systems for lectures, which contributes to mastering one of the most important tools of a software developer, a deeper understanding of lectures, and implementation of communication between a teacher and a student;
- use version control systems to store all student work while studying, while simultaneously practicing version control skills;
- to organize the study of disciplines in small groups, giving students the practice of working in a team with the separation of roles;
- apply methods of setting problem situations to more effectively involve students in their professional activities and address issues of increasing their motivation to study activities;
- use the project methodology in organizing the study of disciplines, giving students the practice of working in a real project, which has its own budget, terms and volume of work.
We believe that these ideas and approaches will find understanding among both software engineering specialists and teachers, course organizers, department chairs and specialization curators.
The author is grateful to D.E. Palchunov, V.V. Mukhortova, V.A. Vaseninu, O.E. Grachev for useful discussions that contributed to the formulation of the approaches described.
Photo before habrakatom taken
here .
Literature
[1] The
main interface - the rapprochement began (conversation with academician Yu.L.Ershovym) // Science in Siberia. - 2002. - ā42-43 from 01.11.2002. - URL :.
[2] Goncharov S.S., Sviridenko D.I. ā-programming // Logical and mathematical foundations of the problem of the Ministry of Health. - Novosibirsk, 1985. - Issue 107: Computing systems. - p. 3-29.
[3] Malykh A.A., Mantsivoda A.V. Ontobox: ontologies for objects // Izvestiya IGU. - Irkutsk, 2009. - ā2. Pp. 94ā104.
[4] Pauk M., Curtis B., Chrissis MB. Maturity model of software development processes / Trans. by ed. V. Ryabikina. - M .: Interface-Press, 2002. - URL:
ryabikin.narod.ru/sw-cmm/index.htm .
[5] Federal State Educational Standards // Ministry of Education and Science of the Russian Federation. - URL:
mon.gov.ru/pro/fgos .
[6] The Problem-Oriented Approach to Science: The Philosophy of Mathematics as Conceptual Pragmatism / Under. ed. VVTselishcheva, Yu.L.Ershov and others - Novosibirsk: Science, 2001. - 154 p.
[7] Pavlovsky E.N. Ontological engineering in the process of coordinating programs of educational disciplines // Abstracts of the report at the Eighth Open All-Russian Conference under the auspices of the AP KIT "Teaching Information Technologies in the Russian Federation" -2010. - URL:
it-education.ru/2010/persons/conferee.php (appeal date: 24.05.2010).