<?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_2024_1_11</article-id>
      <article-id pub-id-type="doi">10.15388/infedu.2024.11</article-id>
      <article-categories>
        <subj-group subj-group-type="heading">
          <subject>Article</subject>
        </subj-group>
      </article-categories>
      <title-group>
        <article-title>Active Learning Methodologies for Teaching Programming in Undergraduate Courses: A Systematic Mapping Study</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <name>
            <surname>Calderon</surname>
            <given-names>Ivanilse</given-names>
          </name>
          <email xlink:href="mailto:ivanilse.calderon@ifro.edu.br">ivanilse.calderon@ifro.edu.br</email>
          <xref ref-type="aff" rid="j_INFEDU_aff_000"/>
        </contrib>
        <aff id="j_INFEDU_aff_000">Federal Institute of Rondônia - IFRO, Brazil
 Federal University of Amazonas - UFAM, Brazil</aff>
        <contrib contrib-type="author">
          <name>
            <surname>Silva</surname>
            <given-names>Williamson</given-names>
          </name>
          <email xlink:href="mailto:williamson.silva@gmail.com">williamson.silva@gmail.com</email>
          <xref ref-type="aff" rid="j_INFEDU_aff_001"/>
        </contrib>
        <aff id="j_INFEDU_aff_001">Federal University of Pampa - UNIPAMPA, Brazil</aff>
        <contrib contrib-type="author">
          <name>
            <surname>Feitosa</surname>
            <given-names>Eduardo</given-names>
          </name>
          <email xlink:href="mailto:efeitosa@icomp.ufam.edu.br">efeitosa@icomp.ufam.edu.br</email>
          <xref ref-type="aff" rid="j_INFEDU_aff_002"/>
        </contrib>
        <aff id="j_INFEDU_aff_002">Federal University of Amazonas - UFAM, Brazil</aff>
      </contrib-group>
      <volume>23</volume>
	  <issue>2</issue>
	  <fpage>279</fpage>
	  <lpage>322</lpage>
      <permissions>
        <copyright-year>2023</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>Teaching programming is a complex process requiring learning to develop different skills. To minimize the challenges faced in the classroom, instructors have been adopting active methodologies in teaching computer programming. This article presents a Systematic Mapping Study (SMS) to identify and categorize the types of methodologies that instructors have adopted for teaching programming. We evaluated 3,850 papers published from 2000 to 2022. The results provide an overview and comprehensive view of active learning methodologies employed in teaching programming, technologies, programming languages, and the metrics used to observe student learning in this context. In the results, we identified thirty-seven different ALMs adopted by instructors. We realized that seventeen publications describe teaching approaches that combine more than one ALM, and the most reported methodologies in the studies are Flipped Classroom and Gamification-Based Learning. In addition, we are proposing an educational and collaborative tool called CollabProg, which summarizes the primary active learning methodologies identified in this SMS. CollabProg will assist instructors in selecting appropriate ALMs that align with their pedagogical requirements and teaching programming context.</p>
      </abstract>
      <kwd-group>
        <label>Keywords</label>
        <kwd>teaching programming</kwd>
        <kwd>active learning methodologies</kwd>
        <kwd>computer programming</kwd>
      </kwd-group>
    </article-meta>
  </front>
</article>
