<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <contrib-group>
        <aff id="aff0">
          <label>0</label>
          <institution>V.N. Karazin Kharkiv National University</institution>
          ,
          <addr-line>Kharkiv</addr-line>
          ,
          <country country="UA">Ukraine</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>The paper presents an environment for creating, editing, tracing and running, saving and loading algorithms in a flowchart form. It can be used in any educational process whenever the basics of algorithms are to be learned. The requirements, design of the system and its implementation are presented. Two modules are developed: for a trainer to fill in the system with the problems on creating algorithms and their right solutions in the form of a flowchart, and for a trainee to solve these problems by creating and tracing algorithms and gaining skills in algorithms construction.</p>
      </abstract>
      <kwd-group>
        <kwd />
        <kwd>Software system</kwd>
        <kwd>object-oriented design</kwd>
        <kwd>algorithm</kwd>
        <kwd>flowchart</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1 Introduction</title>
      <p>In IT education wherever it takes place – at the elementary or the secondary school,
university, any other secondary or higher educational institution or even just IT school
– it is of utmost importance to gain fundamental knowledge and skills in basics of
algorithms, which form the base for further education. To make the process of
teaching and learning basics of algorithms more IT-like we developed a software system
which in fact is an IDE (Integrated Development Environment) for working with
algorithms – creating, saving in files, loading from files, editing, tracing and running.
The system has two modules – for trainees and for trainers.</p>
      <p>The trainer module allows user to formulate a problem and add it to an existing
category or to a new one (all the problems are supposed to be divided into categories).
Then a trainee creates a flowchart of an algorithm or a set of flowcharts (if there are
several solutions) being the right solution to this problem by using flowchart blocks
and filling them with commands. There is an option to add some extra blocks with
commands aside from the right flowchart’s blocks for a trainee to widen the variety of
choices. The problem and its flowchart solutions should be saved.</p>
      <p>The trainee module allows user to choose the problem from the list of problems of
the certain category and to create the flowchart of an algorithm using blocks with
commands created by a trainer. He or she can then check the solution, edit it and
check again, run or trace the algorithm under different input data and see control paths
and outputs, save it in any folder for further usage.</p>
      <p>The proposed system was developed by request of the Ukrainian publishing agency
“Ranok” in frame of the international project on joint school education as an
electronic support for several textbooks on informatics for schools published by this agency.
The first version of the system with Ukrainian interface only was disseminated two
years ago via the site of the publishing agency “Ranok” among the Ukrainian schools.
The feedback was analyzed and corrections and improvements implemented. The
paper presents the new version of the system.</p>
      <p>The system goes with the predefined initial set of about 50 problems and their
solutions developed by the authors. All problems are divided into categories (linear
algorithms, forks, iterations, and combined algorithms). New categories and problems can
be easily added using trainer’s module as well as any of the problems of the initial set
can be deleted or edited by a trainer.</p>
      <p>The system can be used for individual training as well as in the class work. In
second case a teacher can assign different problems to different students and check their
solutions saved in agreed network folder later, which considerably decreases teachers’
loads.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Related Work</title>
      <p>
        In the last decade of previous century the theory of R-charts was proposed by Russian
professor I.V. Velbitskiy. He developed a new technology of visual programming by
R-charts which allowed drawing programs instead of writing them. He implemented
the universal graphical environment to create programs in any existing programming
language [
        <xref ref-type="bibr" rid="ref1 ref2 ref3 ref4">1-4</xref>
        ]. His research was continued and enhanced with UML notation [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. The
R-charts were used mostly on industrial level for teaching the software technology in
the process of software systems development. The theory and technology are quite
complicated to be used at the introductory stage of learning algorithms.
      </p>
      <p>
        Some research in the area were conducted in Kherson state university by professors
A. Spivakovskii , M. Lvov and their followers [
        <xref ref-type="bibr" rid="ref6 ref7 ref8 ref9">6-9</xref>
        ]. They created a special
instrumental language that allowed interpreting an algorithm. It was created especially for
teaching students basics of algorithms but it had no graphical tool for constructing
flowcharts.
      </p>
      <p>Nowadays there exist a lot of off-line and on-line flowcharts construction tools but
they are mostly used for modelling business processes, work and data flows,
activities, etc. Usually they have quite complicated interfaces for the beginners, do not
allow user to check or to trace or to run an algorithm, explore different control paths
under different input data, examine output data and make conclusions, which the
process of learning requires. There exist several similar software systems like Algorithm
Flowchart Editor (AFCE) (https://github.com/viktor-zin/afce/tree/gh-pages/download)
or Flowgorithm (http://www.flowgorithm.org/) which can be used in educational
process, but one cannot trace or run an algorithm to explore it and no set of problems
and no interface to create them are proposed.</p>
    </sec>
    <sec id="sec-3">
      <title>Requirements for Algorithms Constructor</title>
      <p>About 200 school teachers participated in the process of requirements elicitation
during the teachers’ conferences, multiple webinars and university post-diploma
education. Surveys, questionnaires, and prototyping were used in the process, which led to
the following set of requirements. The system has two types of users with roles
“trainee” and “trainer”. Their main functions are shown in Fig. 1 and Fig. 2. The
system supports three interface languages – English, Ukrainian and Russian. The
prototype of the user interface design looks like shown in Fig. 3. The system is a desktop
application. The deliverable is an executable file (*.exe). The presentation and
business logic levels are implemented with Python. The data storage (problems,
flowcharts, solutions) is implemented as json-format files.</p>
    </sec>
    <sec id="sec-4">
      <title>Design and Implementation of Algorithms Constructor</title>
      <p>
        We used an object-oriented approach and UML diagrams to represent the static
structure of the system and its behavior. The main goal of the design was to make it
reusable for both trainee and trainer modules and to follow SOLID principles [
        <xref ref-type="bibr" rid="ref10 ref11">10, 11</xref>
        ]. The
whole number of classes is about 100 including GUI structure and data access classes.
Here we present only the general structure of the whole system and its main concepts
which are shown in Fig. 4, Fig. 5 and Fig. 6.
      </p>
      <p>The following two snapshots of the trainee module show the operation of the system.
The first version of the system has been in use in Ukrainian schools for about two
years. About 100 teachers participated in its testing. The feedback was positive but
50% of teachers found the interface too heavy and gloomy for children. So the
interface was changed and the trainee’s module was added. The new version was spread
out via the site of the publishing office “Ranok”. The same 100 teachers gave 100%
positive response. They all confirm that it helps to motivate their students and greatly
lessens the teachers’ load.</p>
    </sec>
    <sec id="sec-5">
      <title>Conclusions</title>
      <p>The paper presents a software system for learning and teaching basics of algorithms
through flowcharts construction. It can be used by trainees to learn how to create
algorithms of different complexity levels using only basic algorithm’s structures, “run”
the constructed algorithms with different input data and explore all control paths. It
also can be used by trainers to fill in the system with problems and their right
solutions in the form of flowcharts. The system was developed exceptionally for
educational purposes. It can be used in any educational institution from elementary school
to university to learn and teach basics of algorithms and to understand basic algorithm
structures.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>McHenry William K. R-Technology</surname>
          </string-name>
          :
          <article-title>A Soviet Visual Programming</article-title>
          .
          <source>In: Journal of Visual Languages and Computing</source>
          ,vol.
          <volume>1</volume>
          ,#2,pp.
          <fpage>199</fpage>
          -
          <lpage>212</lpage>
          (
          <year>1990</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>I.V.</given-names>
            <surname>Velbitskiy</surname>
          </string-name>
          :
          <article-title>Next generation visual programming technology with R-charts</article-title>
          .
          <source>In: Plenary report, MEDIAS-2012</source>
          .
          <article-title>Dedicated to 100anniversary of Alan Turing (IEEE), Cyprus</article-title>
          , pp.
          <fpage>xiv</fpage>
          -
          <lpage>xxxiv</lpage>
          (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>I.V.</given-names>
            <surname>Velbitskiy</surname>
          </string-name>
          .
          <article-title>Next generation visual programming technology</article-title>
          .
          <source>In: 11-th IEEE EASTWEST DESIGN &amp; TEST SYMPOSIUM (IEEE EWDTS)</source>
          , Russia, Rostov on Don,
          <source>Plenary report, Sept.27-30</source>
          , pp.
          <fpage>404</fpage>
          -
          <lpage>410</lpage>
          (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>I.V.</given-names>
            <surname>Velbitskiy</surname>
          </string-name>
          .
          <article-title>Graphical programming and programs verification</article-title>
          .
          <source>In: 9-th IEEE COMPUTER SCIENCE &amp; INFORMATION TECHNOLOGIES CONFERENCE</source>
          , ARMENIA, YEREVAN (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>L.F.</given-names>
            <surname>Drobushevich</surname>
          </string-name>
          .
          <article-title>Common use of UML and R-chart notations in the training process for software system development methods</article-title>
          .
          <source>In: MEDIAS-2010</source>
          , Cyprus, pp.
          <fpage>73</fpage>
          -
          <lpage>77</lpage>
          (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>M.</given-names>
            <surname>Lvov</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Spivakovskii</surname>
          </string-name>
          .
          <article-title>Video-interpreter of search and sorting algorithms</article-title>
          . In:
          <article-title>Informatizatsiya osvity v Ukrayini: stan, problem, perspectivy</article-title>
          , Kherson, pp.
          <fpage>100</fpage>
          -
          <lpage>102</lpage>
          (
          <year>2003</year>
          )
          <article-title>(in Ukrainian)</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>A.</given-names>
            <surname>Spivakovskii</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Kolesnikova</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Tkachuk</surname>
          </string-name>
          ,
          <string-name>
            <surname>I</surname>
          </string-name>
          , Tkachuk.
          <article-title>Web-environment for learning basics of algorithms and programming</article-title>
          .
          <source>In: Upravlyayushiye sistemy i mashiny</source>
          , Kiev, pp.
          <fpage>70</fpage>
          -
          <lpage>75</lpage>
          (
          <year>2008</year>
          )
          <article-title>(In Russian)</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>A.</given-names>
            <surname>Spivakovskii</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Kolesnikova</surname>
          </string-name>
          .
          <article-title>Video-interpreter of algorithms of integrated environment for learning basics of algorithms and programming</article-title>
          . In: Third International conference “
          <article-title>New information technologies in education for everybody”</article-title>
          , Kiev, pp.
          <fpage>399</fpage>
          -
          <lpage>404</lpage>
          (
          <year>2008</year>
          )
          <article-title>(in Ukraininan)</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Spivakovsky</surname>
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kolesnikova</surname>
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tkachuk</surname>
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tkachuk</surname>
            <given-names>I.</given-names>
          </string-name>
          <article-title>An integrated training environment for the university course “Basics of algoritmization and programming”</article-title>
          . In:
          <article-title>Information Technologies in education for all</article-title>
          , Kiev, pp.
          <fpage>240</fpage>
          -
          <lpage>248</lpage>
          (
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Robert</surname>
            <given-names>C.</given-names>
          </string-name>
          <string-name>
            <surname>Martin</surname>
          </string-name>
          .
          <article-title>Design Principles and Design Patterns</article-title>
          . In: http://www.objectmentor.com
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Robert</surname>
            <given-names>C.</given-names>
          </string-name>
          <string-name>
            <surname>Martin</surname>
          </string-name>
          .
          <article-title>Designing Object Oriented Applications using UML, 2d</article-title>
          . ed. In: Prentice Hall (
          <year>1999</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>