=Paper= {{Paper |id=Vol-1991/paper-05 |storemode=property |title=Accordance with Professional Requirements and Didactic Units in the IT Sphere |pdfUrl=https://ceur-ws.org/Vol-1991/paper-05.pdf |volume=Vol-1991 |authors=Vlada Zhernova,Igor Kaftannikov,Maria Lykova }} ==Accordance with Professional Requirements and Didactic Units in the IT Sphere== https://ceur-ws.org/Vol-1991/paper-05.pdf
Accordance with Professional Requirements and
       Didactic Units in the IT Sphere?

              Igor Kaftannikov, Vlada Zhernova, and Maria Lykova

                   South Ural State University, Chelyabinsk, Russia
                              kaftannikovil@susu.ru



        Abstract. Currently, the requirements for professional knowledge and
        programmer skills in the IT sphere are determined by a variety of fac-
        tors. There is a sufficiently significant differentiation of the companies
        requirements of different directions and majors for projects of the same
        subject and level. Consideration of many requirements by educational
        institutions of various types (academic, applied and additional) is al-
        most impossible. There are international and Russian documents that
        define the levelled structuring of requirements heuristically. At the same
        time, the cumulative sets of components of professional knowledge and
        basis of requirements skills are not defined clearly. The above, as well
        as the lack of level structuring of the components, makes it difficult
        to compare the sets of knowledge components, skills requirements and
        the sets of didactic units of knowledge and skills provided in the dis-
        ciplines and courses of educational establishments. The paper discusses
        the grounds and model for accordance between the components of pro-
        fessional requirements with educational didactic units, and also examines
        the possible procedure for implementing such an agreement on the exam-
        ple of the Russian professional standard “Programmer” and European-
        e-Competence-Framework-3.0 CEN CWA 16234-1 2014.

        Keywords: Russian professional standard “Programmer” · European-
        e-Competence-Framework-3.0 · educational standards · competences ·
        education in the IT-field


1     Basis: Sets of Knowledge and Skill Components in
      Russian IT Standard and E-ICT Framework

Consider the competence B.1. Application Development (European e-
Competency Framework (e-CF) version 3.0 [1] and the Russian professional
standard “Programmer” [2] as examples and sources of the requirements under
consideration for knowledge and skills components. The competence B.1.includes
14 knowledge components and 8 skill components (Fig. 1), which are not struc-
tured by levels, although the competence presupposes the presence of 3 levels,
?
    The work was supported by Act 211 Government of the Russian Federation, contract
    02.A03.21.0011.
                                              Accordance in the IT Sphere       51

but, as indicated above, the structuring of the components by levels is not pro-
vided here. “Programmer” is the professional standard of the Russian Federation
and lists 15 labor functions and 67 components of knowledge for them, as well as
52 components of very general skills (programming languages, formalization and
algorithmization of tasks, databases, information security, etc.), as well without
any structuring of the components themselves.




  Fig. 1. Structure and components of competence B.1. Application Development


    It makes sense to consider the cumulative set of requirements for both docu-
ments, with the capacity of 81 knowledge components and 60 skill components
given the trends and requirements of global staff and academic mobility. Also,
there is the change in the power of sets with the addition of requirements for
other documents or their localization. So the procedures for forming groups of
52      Igor Kaftannikov et al.

sets and mapping their requirements to educational programs must be suffi-
ciently universal. Besides as the relations of order are not defined on the sets
under consideration (this does not make sense), the level structuring of compe-
tencies and requirements of the standard should be provided by the level struc-
ture of their components. There is the correspondence in the level structure of
educational programs presented which are in the sequence of didactic units.
    Define the objects under consideration, their grouping, properties and rela-
tions for them to formalize the above procedures. We assume that EAC is the set
of knowledge components from the “European e-Competence Framework (e-CF)
version 3.0”. Set: EAC = {eACij } with AC is an aggregated component, e is
localization prefix (document reference), j is component index in competence or
standard, i is index of competence or standard.
    We assume RAC is set of aggregated components of knowledge from the
Russian standard “Programmer”. Set: RAC = {rACji }.
    Similarly, we assume the set of aggregated skills components EAS and RAS.
Set: EAS = {eASji }, RAS = {rASji }
    We assume IAC is sets of components from all considered documents will
be called integrated. Set: IAC = EAC ∪ RAC = {eACji , rACji } or IAC =
     n
{ACm   } = {eACji } ∪ {rACji }; IAS = EAS ∪ RAS = {ASm       n
                                                               } = {eASji , rASji } =
{eASji } ∪ {rASji }.
                                       n     n
    Individual analysis of each of ACm   , ASm  is not constructive, due to the fact
that the subject areas that are indistinctly defined by the names of components
have many intersections due to their inclusion in the more global subject area
“Application Development, Programmer”. (e.g.: programming languages, lan-
guages, utilities and programming environments, software development method-
ologies, etc.). Therefore, in our opinion, it is preferable to pre-decompose IAC,
IAS into subsets including aggregated components closest to the semantics of
functional purpose (subject domains), allowing to determine common metrics
            n     n
for all ACm   , ASm  , included in them. We assume such sets as grouping: GAC,
GAS. Wherein: GACt ∈ IAC, GASt ∈ IAS.
    For example, GAC1 is a set including AC5 , AC6 :
        AC5      Typical software metrics
        AC6      The main methods for measuring and evaluating the
                 characteristics of software
and defines the subject area “Characteristics and metrics of software”.
   GAC3 includes:
        AC6      Methods and methods of formalizing tasks
        AC7      Methods and techniques for algorithmizing tasks
        AC8      Algorithms for solving typical problems, areas and meth-
                 ods of their application
And defines the subject area “Methods and techniques of algorithmizing and
formalizing tasks”.
   Level structuring of directly grouping components (GAC, GAS) can be per-
formed only through the complex expert formation of the relations of order due
                                              Accordance in the IT Sphere      53

to the fuzzy definition of the domain. At the same time a simpler method of
implementing the level structuring of each group can be the decomposition of
the group as a whole into components (call them CC, CS). Each of such defines
is a much more specific domain. For example, programming languages, software
metrics for which metrics can be formed according to certain procedures, which
can be either formal or pseudo formal, as required.


2   METHODS AND PROCEDURES OF LEVEL
    STRUCTURIZATION

Proposed methods and procedures are considered in the example of the CC “Pro-
gramming Languages”. A component of this type is called composite, firstly, due
to the fact that set of the programming languages numbers several hundred,
(maximum - more than 700). At the same time, several new ones appear each
year. Naturally, there is also a degradation in the use (dying out) of languages
and the current group of leaders, which can be determined using ratings gen-
erated by certain resources that are significant for the IT community and, at
the same time, using these ratings to form the metrics applicable to building
the level structure of components. For the programming languages component,
there are several most significant resources. In this case we used the following
three:

1. GitHub: https://github.com/, ranking by the number of lines of code;
2. TIOBE Programming Community Index: https://tiobe.com, the ranking on
   the popularity of the language, expressed in the number of search queries;
3. The RedMonk Programming Language Rankings: http://redmonk.com, a
   comprehensive rating.

    According to these sources (at the beginning of 2017) the following rating
table was compiled (Table 1) for the 15 most popular programming languages
for each resource:
    In all three ratings, the following fifteen programming languages are present:
C, C++, C#, Java, JavaScript, PHP, Python, Ruby, Go. These languages are
used today in virtually all software technologies and platforms, while program-
ming most components of software systems.
    In our opinion this means that the verification of knowledge of programming
languages can be done on the basis of knowledge of the languages listed above,
since other (close) languages can be quite quickly mastered, with a good knowl-
edge of the above. Naturally, it is possible to specialize in languages as well as
dynamic changes in ratings and entries in the tops of popularity. This means
that the tiered system of knowledge components must also be easily modern-
ized, migratory and expandable. Secondly, the components of knowledge consist
not only of the current set of the most popular languages, but must take into ac-
count their structure, properties, application features, and so on. in our opinion
the second component of knowledge components is quite fully reflected in good
54     Igor Kaftannikov et al.

                       Table 1. Popular program languages

                   Github           TIOBE           Redmonk
                  JavaScript          Java         JavaScript
                     Java               C             Java
                   Python             C++             PHP
                    Ruby               C#            Python
                     PHP            Python             C#
                    C++        Visual Basic .NET      C++
                     CSS           Javascript         Ruby
                      C#              Perl            CSS
                       C              ASM               C
                      Go              PHP          Objective-C
                     Shell    Delphi/Object Pascal    Shell
                  Objective-C        Ruby               R
                    Scala              Go             Perl
                    Swift             Swift           Scala
                  Typescript      Visual Basic         Go




(most popular) textbooks and monographs on languages. Similarly, the selection
of the textbooks themselves is simple enough to provide for popularity, taking
into account the opinion of experts.
    Assuming the use of 5 levels of structuring according to [1], we, used junior
/ middle level textbooks or reference type books. In our opinion these books
usually include knowledge and skills in programming languages corresponding
to the first three levels of structuring, as they are designed to master the basic
capabilities of the language or present a review of it.
    Further, the reconciliation procedure included the selection of books by an-
alyzing the subjective estimates of users obtained using professional resources
and forums (habrahabr, tproger, geektimes, toster, github, stackover-
flow, etc.). In order to simplify the analysis and publication so far we used only
one language (C ++) and four most popular Russian-language and translated
publications:

1. Podbelsky V.V. C ++ language;
2. Straustrup B. The programming language C ++;
3. Prata S. C ++ Programming Language;
4. Eckel B. Philosophy of C ++.

   Obviously, similar procedures can be performed with respect to other pro-
gramming languages. Naturally, the number and list of publications can be
changed. For each book an enlarged table of contents (chapters) was taken for
consideration, which can be defined as the didactic units of the corresponding
work program. The follow table of contents is a kind of information about a
language structured according to the complexity of mastering (“from simple to
complex”).
                                                Accordance in the IT Sphere      55

   Expert structuring on 1-3 levels (and also, in some cases, for 4 levels) is
presented in Figure 2 for each source separately.




                          Fig. 2. Structure of the tutorial



    The structuring of levels 4 and 5 seems more complicated because it involves
expanding the objects of the subject areas of languages, comparing their rela-
tionships and relationships, as well as existing practical experience. The above
books do not include didactic units related to these levels. Therefore, to structure
the knowledge and skills of 4-5 levels, it is necessary to consider the literature
on specialized extensions / libraries / programming languages frameworks, since
56      Igor Kaftannikov et al.

the standard tools of any language are not sufficient for writing projects other
than educational ones.
    It should also be taken into account that the structuring of knowledge of
levels 4 and 5 will be specific for each language separately. If for the first three
levels it is possible, in some approximation, to allocate opportunities and features
inherent in the whole group of languages, and thus abstract from the choice of
language, then for the 4th and 5th level, it is necessary to choose a specific
technology (a set of libraries, a framework) evaluation.
    The choice of technology, in our opinion, should be based on the specifics of
the project or subject area (web, mobile, desktop, etc.). This will allow more
fully assess to the knowledge of a specialist for a specific application task.
    Also one should note one more difference between 4 and 5 level. If level 4
assumes knowledge of both language and applied technology (libraries, frame-
work), then level 5 can be defined as the level of development of the full-stack
project. Full-stack is development from scratch, a fully operational project. That
is, a specialist with level 5, apart from having knowledge of the language and
the chosen technology, is competent and capable of creating a workable project
from scratch using these technologies, and is also competent in managing the
team / developer department to create a project from scratch in this area using
the language and the chosen technology.
    Competence and the “Programmer” standard were taken by us as an exam-
ple of one of the broadest subject areas with a wide range of requirements, both
in terms of knowledge and skills. In this example, we hope to demonstrate the
principle possibility (using the proposed methodology and procedures) to create
a system of structured level components of GAC, GAS consisting of a struc-
tured level system of knowledge and skills of the “lower” level that are part of
CK, CS and are the fundamental basis For a certain formalization (pseudo for-
malization) of the requirements of the subject area of professional qualification
(competence). Also, at the same time, the methodology of professional require-
ments transformation into didactic units of the training, retraining, advanced
training programs and, accordingly, a certain, logically justified harmonization
of professional requirements and educational programs was proposed. It should
also be noted that expert opinions and approvals at all levels are supposed to be
conducted with the involvement of representatives of the business community,
for which the necessary procedures are determined at the computer department
of the SUSU and a corresponding portal is being developed.


References
1. Europeane-CompetenceFramework           (e-CF)           version        3.0;
   http://www.ecompetences.eu/.
2. Professional  Standard    of   the   Russian    Federation     “Programmer”;
   http://www.rosmintrud.ru/docs/mintrud/orders/138/.