<!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>
      <journal-title-group>
        <journal-title>V.: Teaching algorithmization and programming using python lan-
guage. Journal of Information Technologies in Education (ITE)</journal-title>
      </journal-title-group>
    </journal-meta>
    <article-meta>
      <article-id pub-id-type="doi">10.11120/ital.2004.03020004</article-id>
      <title-group>
        <article-title>An Analysis of Criteria for Choosing a First Programming Language in Universities</article-title>
      </title-group>
      <contrib-group>
        <aff id="aff0">
          <label>0</label>
          <institution>National University "Odessa Academy of Law"</institution>
          ,
          <addr-line>Odessa</addr-line>
          ,
          <country country="UA">Ukraine</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>O.S. Popov Odessa National Academy of Telecommunications</institution>
          ,
          <addr-line>Odessa</addr-line>
          ,
          <country country="UA">Ukraine</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2009</year>
      </pub-date>
      <volume>3</volume>
      <issue>2</issue>
      <fpage>0000</fpage>
      <lpage>0002</lpage>
      <abstract>
        <p>The choice of the optimal programming language for teaching students of IT specialties the basics of programming at the universities has been the subject of heated debate over the past decades. It is important to focus on modern and significant criteria while choosing a programming language for the introductory course. After analyzing the arguments put forward by teachers in favor of the use of a particular language, as well as the criteria for choosing a language proposed by researchers, a list of the nineteen most frequently called criteria was compiled. Some regional differences in the approaches to the choice of programming languages and the significance of the criteria have been identified. Considering the specifics of the IT sector in Ukraine, based on the study of literature and authors' experience in teaching the basics of programming, a rating of the criteria for choosing the first language was formed. The rating makes it possible to select an optimal programming language, based on the significance of various criteria, taking into account the specific conditions of a particular university.</p>
      </abstract>
      <kwd-group>
        <kwd>Introductory Programming</kwd>
        <kwd>First Programming Language</kwd>
        <kwd>Language Selection Criteria</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>The problem of choosing the first programming language for teaching IT students in
universities is very acute nowadays and has caused heated debates over the past
decades. Teachers are constantly forced to find a compromise between the motivation of
students, their desire to acquire knowledge and skills sufficient to begin practical
work as soon as possible, and the need to learn the basic concepts of programming in
the form, most accessible for students. The successfully acquired introductory
programming course forms the foundation for the effective study of subsequent courses
and the mastery of their specialty, similar to the fact that the timeliness of perception
of the material and success in studying other subjects depend on mastering the native
language in the elementary school. Conversely, the excessive complexity of learning
an introductory course can lead to a drop in motivation and low learning outcomes in
general.</p>
    </sec>
    <sec id="sec-2">
      <title>A Variety of Criteria for Choosing a Programming</title>
    </sec>
    <sec id="sec-3">
      <title>Language for an Introductory Course in Universities</title>
      <p>Along with a large number of works in which the authors discuss the advantages and
disadvantages of using specific programming languages in the introductory course,
great attention is paid in publications to the analysis of the criteria for choosing the
first language for instruction.</p>
      <p>
        During this project, we considered the works of authors from different countries,
published over the past 15 years. The analysis of works [
        <xref ref-type="bibr" rid="ref1 ref2 ref3 ref4 ref5 ref6 ref7">1-21</xref>
        ] revealed significant
differences in the choice of criteria of the first studied programming language, and we
associate this choice largely with regional features. Different nations have various
approaches to building IT education. It is possible that these approaches have a
different impact on the choice of the first programming language for introductory courses
in universities, justifying their choice by the importance of specific criteria.
      </p>
      <p>The revealed variety of approaches in the initial teaching of programming with the
use of a particular language necessitated a comprehensive analysis of the criteria,
taking into account their importance in the final choice in a particular university. In
addition, in recent years, we can state a change in emphasis in assessing the
significance of the criteria for choosing the first language. Thus, since the analyzed
researches mainly considered the regional characteristics of various countries and
continents, the criteria proposed in them need to be adapted to the situation in Ukraine, in
particular.</p>
      <p>The purpose of the work is to analyze and rank criteria of the first programming
languages for students of IT specialties that can help to identify the optimal
programming language for teaching in universities of Ukraine.
3</p>
    </sec>
    <sec id="sec-4">
      <title>Formation of the List of Criteria and Their Rating</title>
      <p>
        To accomplish the task, first, we collected and systematized all the criteria identified
in publications [
        <xref ref-type="bibr" rid="ref1 ref2 ref3 ref4 ref5 ref6 ref7">1-21</xref>
        ] and used by teachers when choosing a language for an
introductory programming course. In various papers, the authors formulated and considered a
different number of criteria: from one to tens. We took as a basis the criteria proposed
and described in the article [16] with the addition of criteria and arguments in favor of
the choice of the first educational language encountered in the works of other
researchers. We decided to include in the formed list the criteria mentioned in the
papers of various researchers more than once. As a result, 19 criteria were identified.
      </p>
      <p>Further, we formed a rating of the criteria for choosing the first programming
language depending on the frequency of references in publications. We combined this
rating with the rating which we had compiled based on many years of experience
teaching the basics of programming in Ukrainian universities, taking into account the
traditions of IT education in Ukraine. The most important differences between these
two ratings are, in our opinion, the higher value of the criteria for ease of transition to
other programming languages and the presence of all the basic programming
constructions in the selected language. We adjusted both ratings to a common scale and
the average value for each criterion was determined. The result is presented in the
form of a diagram in Fig. 1.</p>
      <p>Various criteria in the obtained rating have a different degree of objectivity of their
values. For example, one can objectively assess the demand in the labor market by
analyzing the regional labor market. At the same time, the ease of learning basic
concepts depends on the personal perception of teachers, and on the initial preparation of
students, which is very difficult to predict.</p>
    </sec>
    <sec id="sec-5">
      <title>Analysis of the Criteria for Choosing the First</title>
    </sec>
    <sec id="sec-6">
      <title>Programming Language</title>
      <p>Let us consider the criteria for choosing a programming language. The ease of
learning the basic concepts is the key to successful mastery of course material and
therefore is one of the most significant criteria for choosing a language. Most researchers
emphasize the importance of this criterion in their publications.</p>
      <p>The most important difference between our rating and one compiled from the
literature is the higher value of the ease of transition to other programming languages and
the presence of all the basic programming constructions in the language. In our
opinion, the latter is an essential criterion. Traditionally, the introductory course deals
with: input-output; branching; loops; one-dimensional and two-dimensional arrays;
pointers; strings; structures; file streams. Not all nowadays-common programming
languages have basic constructs in their arsenal. For example, C# has no pointers;
Java has no pointers and structures [22].</p>
      <p>The recent proliferation of dual education puts forward its demands. From the very
beginning of their studies, students should learn what they could use in their future
activities. This affects the high importance indicators of the demand in the labor
market and the ease of transition to other programming languages. The latter is also
relevant for the successful mastering of subsequent courses.</p>
      <p>The criterion of the cost of a compiler for a programming language for students is
significant because Ukrainian students usually use free compilers. A variety of
educational materials widely represent all currently popular programming languages on the
Internet, thus the criterion of availability of textbooks is largely fulfilled. One can say
the same about the ease of use of an integrated development environment and good
debugging tools since developers of popular programming languages present many
possibilities for their users.</p>
      <p>Support for object-oriented programming is not the primary criterion for learning
the basics of programming. However, it is of great importance for the further course
"Object-oriented programming", since it allows using the same language in both
courses. Criterion the structure of degree demands the consistency of the use of a
given language in the framework of the specialty curriculum. The material taught in
subsequent courses should be a logical continuation of what people learned at the
beginning.</p>
      <p>Criterion the reasonable financial costs of creating a learning environment means
the costs of retraining lecturers for teaching a new language; expenses for the
development of an educational and methodical complex; availability of technical
capabilities to install and maintain the necessary software.</p>
      <p>A somewhat ambiguous criterion is the existence of online communities in which
novice programmers can ask for assistance. Sometimes, students receive a ready-made
solution and rewrite it, without delving into its essence. In addition, this solution can use
constructions not covered by the task, and they confuse the novice even more.</p>
      <p>Analysis of the criteria identified in the publications showed that the importance of
some of the criteria in them was exaggerated. For example, the presence or absence of
extensions and libraries, as a rule, cannot have a significant impact on the choice of
language. The supporting web development capabilities also have a low level of
significance, since the basics of programming are usually not related to web
development. Due to the availability of online compilers, platform independence cannot be
the determining factor for choosing a language. Our experience shows that visual
programming does not affect the effectiveness of the course, but on the contrary, at
the initial stage, can make it difficult to understand the educational material and even
confuse the novice student.
5</p>
    </sec>
    <sec id="sec-7">
      <title>Conclusions</title>
      <p>The paper analyzes the criteria and arguments used when choosing a programming
language for an introductory programming course at universities for students of IT
specialties. We compiled a rating of the nineteen most popular criteria based on the
works of different researchers and on our experience of teaching the basics of
programming, taking into account Ukrainian IT education specifics.</p>
      <p>The composed rating helps to make a choice of a programming language, based on
the importance of various criteria inherent in one or another programming language
under the prevailing conditions of the course taught. For its practical use, the values
obtained can be taken as coefficients for comparative evaluation of various languages.</p>
      <p>It can be argued that the illustrated approach and the formed rating can be used not
only for the introductory programming course but also for other training courses taking
into account the specifics of each of them when teaching IT students in universities.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Aleksić</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ivanović</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Introductory Programming Subject in European Higher Education</article-title>
          . Informatics in Education, vol.
          <volume>15</volume>
          , No.
          <issue>2</issue>
          , pp.
          <fpage>163</fpage>
          -
          <lpage>82</lpage>
          (
          <year>2016</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Busschots</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          :
          <source>Teaching Programming - Why the Choice of First Language is Irrelevant</source>
          ,
          <year>2008</year>
          , http://www.bartbusschots.ie/blog/?p=634P,
          <source>last accessed</source>
          <year>2019</year>
          /1/31.
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Damyanov</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Borisova</surname>
          </string-name>
          , N.:
          <article-title>Programming languages in undergraduate courses and in software industry in Bulgaria</article-title>
          .
          <source>International Journal of Pure and Applied Mathematics</source>
          , vol.
          <volume>117</volume>
          , No.
          <volume>2</volume>
          ,
          <fpage>271</fpage>
          -
          <lpage>278</lpage>
          (
          <year>2017</year>
          ).
          <source>DOI: 10.12732/ijpam.v117i2.3.</source>
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Decker</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hirshfield</surname>
            ,
            <given-names>S.:</given-names>
          </string-name>
          <article-title>The top 10 reasons why object-oriented programming can't be taught in CS1</article-title>
          .
          <source>In: Proceeding SIGCSE'94 symposium on Computer science education</source>
          , pp.
          <fpage>51</fpage>
          -
          <lpage>55</lpage>
          , Phoenix, Arizona, USA (
          <year>1994</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Duffany</surname>
            ,
            <given-names>J.L.</given-names>
          </string-name>
          :
          <article-title>Choice of Language for an Introduction to Programming Course</article-title>
          . In:
          <article-title>Excellence in Engineering To Enhance a Country's Productivity, Twelfth LACCEI Latin American and Caribbean Conference for Engineering and Technology (LACCEI'</article-title>
          <year>2014</year>
          ), pp.
          <fpage>1</fpage>
          -
          <lpage>9</lpage>
          . Guayaquil,
          <string-name>
            <surname>Ecuador</surname>
          </string-name>
          (
          <year>2014</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Goosen</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          :
          <article-title>Criteria and guidelines for the selection and implementation of a first programming language in high schools</article-title>
          .
          <source>In: Ph.D. thesis</source>
          , North-West University (Potchefstroom. Campus) (
          <year>2004</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Ivanoviü</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Budimac</surname>
            ,
            <given-names>Z.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Radovanoviü</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Saviü</surname>
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Does the choice of the first programming language influence students' grades?</article-title>
          <source>In: International Conference on Computer Systems and Technologies</source>
          ,
          <source>CompSysTech'15</source>
          , pp.
          <fpage>305</fpage>
          -
          <lpage>312</lpage>
          , Dublin, Ireland (
          <year>2015</year>
          ).
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>