<?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">1648-5831</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">INFEDU2021_4_29</article-id>
      <article-id pub-id-type="doi">10.15388/infedu.2021.29</article-id>
      <article-categories>
        <subj-group subj-group-type="heading">
          <subject>Article</subject>
        </subj-group>
      </article-categories>
      <title-group>
        <article-title>The Non-Deterministic Path to Concurrency – Exploring how Students Understand the Abstractions of Concurrency</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <name>
            <surname>STRÖMBÄCK</surname>
            <given-names>Filip</given-names>
          </name>
          <email xlink:href="mailto:filip.stromback@liu.se">filip.stromback@liu.se</email>
          <xref ref-type="aff" rid="j_INFEDU_aff_000"/>
        </contrib>
        <aff id="j_INFEDU_aff_000">Linköping University, Sweden</aff>
        <contrib contrib-type="author">
          <name>
            <surname>MANNILA</surname>
            <given-names>Linda</given-names>
          </name>
          <email xlink:href="mailto:linda.mannila@liu.se">linda.mannila@liu.se</email>
          <xref ref-type="aff" rid="j_INFEDU_aff_001"/>
        </contrib>
        <aff id="j_INFEDU_aff_001">Linköping University, Sweden</aff>
        <contrib contrib-type="author">
          <name>
            <surname>KAMKAR</surname>
            <given-names>Mariam</given-names>
          </name>
          <email xlink:href="mailto:mariam.kamkar@liu.se">mariam.kamkar@liu.se</email>
          <xref ref-type="aff" rid="j_INFEDU_aff_002"/>
        </contrib>
        <aff id="j_INFEDU_aff_002">Linköping University, Sweden</aff>
      </contrib-group>
      <volume>20</volume>
      <issue>4</issue>
      <fpage>683</fpage>
      <lpage>715</lpage>
      <permissions>
        <copyright-year>2021</copyright-year>
        <copyright-holder>Vilnius University, ETH Zürich</copyright-holder>
        <license license-type="open-access">
          <license-p>Open access article under the CC BY license.</license-p>
        </license>
      </permissions>
      <abstract>
        <p>Concurrency is often perceived as difficult by students. One reason for this may be due to the fact that abstractions used in concurrent programs leave more situations undefined compared to sequential programs (e.g., in what order statements are executed), which makes it harder to create a proper mental model of the execution environment. Students who aim to explore the abstractions through testing are further hindered by the non-determinism of concurrent programs since even incorrect programs may seem to work properly most of the time. In this paper we aim to explore how students’ understanding these abstractions by examining 137 solutions to two concurrency questions given on the final exam in two years of an introductory concurrency course. To highlight problematic areas of these abstractions, we present alternative abstractions under which each incorrect solution would be correct.</p>
      </abstract>
      <kwd-group>
        <label>Keywords</label>
        <kwd>abstraction</kwd>
        <kwd>concurrency</kwd>
        <kwd>memory model</kwd>
        <kwd>synchronization</kwd>
        <kwd>locks</kwd>
      </kwd-group>
    </article-meta>
  </front>
</article>
