<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v1.0 20120330//EN" "JATS-journalpublishing1.dtd">
<article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" article-type="article">
  <front>
    <journal-meta>
      <journal-id journal-id-type="publisher-id">INFEDU</journal-id>
      <journal-title-group>
        <journal-title>Informatics in Education</journal-title>
      </journal-title-group>
      <issn pub-type="epub">2335-8971</issn>
      <issn pub-type="ppub">1648-5831</issn>
      <publisher>
        <publisher-name>VU</publisher-name>
      </publisher>
    </journal-meta>
    <article-meta>
      <article-id pub-id-type="publisher-id">INFEDU.24.29</article-id>
      <article-id pub-id-type="doi">10.15388/infedu.2024.29</article-id>
      <article-categories>
        <subj-group subj-group-type="heading">
          <subject>Article</subject>
        </subj-group>
      </article-categories>
      <title-group>
        <article-title>Principles of Educational Programming Language Design</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <name>
            <surname>Kölling</surname>
            <given-names>Michael</given-names>
          </name>
          <email xlink:href="mailto:michael.kolling@kcl.ac.uk">michael.kolling@kcl.ac.uk</email>
          <xref ref-type="aff" rid="j_INFEDU_aff_000"/>
        </contrib>
        <aff id="j_INFEDU_aff_000">Informatics Department, King’s College London, UK</aff>
      </contrib-group>
      <volume>23</volume>
      <issue>4</issue>
      <fpage>823</fpage>
      <lpage>836</lpage>
      <pub-date pub-type="epub">
        <day>10</day>
        <month>12</month>
        <year>2024</year>
      </pub-date>
      <permissions>
        <copyright-year>2024</copyright-year>
        <copyright-holder>Vilnius University</copyright-holder>
        <license license-type="open-access">
          <license-p>Open access article under the CC BY license.</license-p>
        </license>
      </permissions>
      <abstract>
        <p>The principles of programming language design for learning and teaching have been described and discussed for several decades. Most influential was the work of NiklausWirth, describing principles such as simplicity, modularity, orthogonality, and readability. So why is this still an area of fundamental disagreement among educators? Why can teachers still not agree on suitable languages for novice programming? Why do we not have a programming language that is designed for education and in widespread use across the world? This paper enumerates and describes educational language design principles in the context of current systems and technologies and discusses why interpretation of these principles shifts as our discipline progresses. We evaluate what these principles mean in our current world, and why a common agreement has not developed. We discuss the relative benefits of pedagogical languages vs. industry languages and articulate why every generation of learners needs their own language.</p>
      </abstract>
      <kwd-group>
        <label>Keywords</label>
        <kwd>programming education</kwd>
        <kwd>language design</kwd>
        <kwd>programming pedagogy</kwd>
      </kwd-group>
    </article-meta>
  </front>
</article>
