<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD Journal Publishing DTD v2.0 20040830//EN" "http://dtd.nlm.nih.gov/publishing/2.0/journalpublishing.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink" article-type="research-article" dtd-version="2.0">
  <front>
    <journal-meta>
      <journal-id journal-id-type="publisher-id">JME</journal-id>
      <journal-id journal-id-type="nlm-ta">JMIR Med Educ</journal-id>
      <journal-title>JMIR Medical Education</journal-title>
      <issn pub-type="epub">2369-3762</issn>
      <publisher>
        <publisher-name>JMIR Publications</publisher-name>
        <publisher-loc>Toronto, Canada</publisher-loc>
      </publisher>
    </journal-meta>
    <article-meta>
      <article-id pub-id-type="publisher-id">v9i1e47394</article-id>
      <article-id pub-id-type="pmid">37247206</article-id>
      <article-id pub-id-type="doi">10.2196/47394</article-id>
      <article-categories>
        <subj-group subj-group-type="heading">
          <subject>Original Paper</subject>
        </subj-group>
        <subj-group subj-group-type="article-type">
          <subject>Original Paper</subject>
        </subj-group>
      </article-categories>
      <title-group>
        <article-title>Enhancing Learning About Epidemiological Data Analysis Using R for Graduate Students in Medical Fields With Jupyter Notebook: Classroom Action Research</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="editor">
          <name>
            <surname>Leung</surname>
            <given-names>Tiffany</given-names>
          </name>
        </contrib>
        <contrib contrib-type="editor">
          <name>
            <surname>Eysenbach</surname>
            <given-names>Gunther</given-names>
          </name>
        </contrib>
        <contrib contrib-type="editor">
          <name>
            <surname>de Azevedo Cardoso</surname>
            <given-names>Taiane</given-names>
          </name>
        </contrib>
      </contrib-group>
      <contrib-group>
        <contrib contrib-type="reviewer">
          <name>
            <surname>Davies</surname>
            <given-names>Alan</given-names>
          </name>
        </contrib>
        <contrib contrib-type="reviewer">
          <name>
            <surname>Moulton</surname>
            <given-names>Georgina</given-names>
          </name>
        </contrib>
      </contrib-group>
      <contrib-group>
        <contrib id="contrib1" contrib-type="author" corresp="yes">
          <name name-style="western">
            <surname>Kumwichar</surname>
            <given-names>Ponlagrit</given-names>
          </name>
          <degrees>MD, PhD</degrees>
          <xref rid="aff1" ref-type="aff">1</xref>
          <address>
            <institution>Department of Epidemiology</institution>
            <institution>Faculty of Medicine</institution>
            <institution>Prince of Songkla University</institution>
            <addr-line>15 Kanjanavanich Rd</addr-line>
            <addr-line>Hat Yai, 90110</addr-line>
            <country>Thailand</country>
            <phone>66 74451165</phone>
            <email>ponlagrit.k@psu.ac.th</email>
          </address>
          <ext-link ext-link-type="orcid">https://orcid.org/0000-0002-1580-5720</ext-link>
        </contrib>
      </contrib-group>
      <aff id="aff1">
        <label>1</label>
        <institution>Department of Epidemiology</institution>
        <institution>Faculty of Medicine</institution>
        <institution>Prince of Songkla University</institution>
        <addr-line>Hat Yai</addr-line>
        <country>Thailand</country>
      </aff>
      <author-notes>
        <corresp>Corresponding Author: Ponlagrit Kumwichar <email>ponlagrit.k@psu.ac.th</email></corresp>
      </author-notes>
      <pub-date pub-type="collection">
        <year>2023</year>
      </pub-date>
      <pub-date pub-type="epub">
        <day>29</day>
        <month>5</month>
        <year>2023</year>
      </pub-date>
      <volume>9</volume>
      <elocation-id>e47394</elocation-id>
      <history>
        <date date-type="received">
          <day>17</day>
          <month>3</month>
          <year>2023</year>
        </date>
        <date date-type="rev-request">
          <day>17</day>
          <month>4</month>
          <year>2023</year>
        </date>
        <date date-type="rev-recd">
          <day>25</day>
          <month>4</month>
          <year>2023</year>
        </date>
        <date date-type="accepted">
          <day>11</day>
          <month>5</month>
          <year>2023</year>
        </date>
      </history>
      <copyright-statement>©Ponlagrit Kumwichar. Originally published in JMIR Medical Education (https://mededu.jmir.org), 29.05.2023.</copyright-statement>
      <copyright-year>2023</copyright-year>
      <license license-type="open-access" xlink:href="https://creativecommons.org/licenses/by/4.0/">
        <p>This is an open-access article distributed under the terms of the Creative Commons Attribution License (https://creativecommons.org/licenses/by/4.0/), which permits unrestricted use, distribution, and reproduction in any medium, provided the original work, first published in JMIR Medical Education, is properly cited. The complete bibliographic information, a link to the original publication on https://mededu.jmir.org/, as well as this copyright and license information must be included.</p>
      </license>
      <self-uri xlink:href="https://mededu.jmir.org/2023/1/e47394" xlink:type="simple"/>
      <abstract>
        <sec sec-type="background">
          <title>Background</title>
          <p>Graduate students in medical fields must learn about epidemiology and data analysis to conduct their research. R is a software environment used to develop and run packages for statistical analysis; it can be challenging for students to learn because of compatibility with their computers and problems with package installations. Jupyter Notebook was used to run R, which enhanced the graduate students’ ability to learn epidemiological data analysis by providing an interactive and collaborative environment that allows for more efficient and effective learning.</p>
        </sec>
        <sec sec-type="objective">
          <title>Objective</title>
          <p>This study collected class reflections from students and their lecturer in the class “Longitudinal Data Analysis Using R,” identified problems that occurred, and illustrated how Jupyter Notebook can solve those problems.</p>
        </sec>
        <sec sec-type="methods">
          <title>Methods</title>
          <p>The researcher analyzed issues encountered in the previous class and devised solutions using Jupyter Notebook. These solutions were then implemented and applied to a new group of students. Reflections from the students were regularly collected and documented in an electronic form. The comments were then thematically analyzed and compared to those of the prior cohort.</p>
        </sec>
        <sec sec-type="results">
          <title>Results</title>
          <p>Improvements that were identified included the ease of using Jupyter R for data analysis without needing to install packages, increased student questioning due to curiosity, and students having the ability to immediately use all code functions. After using Jupyter Notebook, the lecturer could stimulate interest more effectively and challenge students. Furthermore, they highlighted that students responded to questions. The student feedback shows that learning R with Jupyter Notebook was effective in stimulating their interest. Based on the feedback received, it can be inferred that using Jupyter Notebook to learn R is an effective approach for equipping students with an all-encompassing comprehension of longitudinal data analysis.</p>
        </sec>
        <sec sec-type="conclusions">
          <title>Conclusions</title>
          <p>The use of Jupyter Notebook can improve graduate students’ learning experience for epidemiological data analysis by providing an interactive and collaborative environment that is not affected by compatibility issues with different operating systems and computers.</p>
        </sec>
      </abstract>
      <kwd-group>
        <kwd>learning</kwd>
        <kwd>Jupyter</kwd>
        <kwd>R</kwd>
        <kwd>epidemiology</kwd>
        <kwd>data analysis</kwd>
        <kwd>medical education</kwd>
        <kwd>graduate student</kwd>
        <kwd>longitudinal data analysis</kwd>
        <kwd>graduate education</kwd>
        <kwd>implementation</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec sec-type="introduction">
      <title>Introduction</title>
      <p>All graduate students in medical fields must eventually learn about epidemiology. Graduate students also study essential subjects, such as research methodology and data analysis, to conduct and complete the research projects that are part of their degree requirements [<xref ref-type="bibr" rid="ref1">1</xref>]. Studying R in an epidemiology course can help students develop important skills for data analysis, reproducibility, and collaboration, which are essential for conducting rigorous and impactful research in their field [<xref ref-type="bibr" rid="ref2">2</xref>]. There are collections of functions that use R, known as R packages, which enhance the ability to conduct data analysis in diverse fields, such as medicine [<xref ref-type="bibr" rid="ref3">3</xref>]. However, R packages may not be compatible with all computers or operating systems (OSs); this is often evident in the classroom environment [<xref ref-type="bibr" rid="ref4">4</xref>].</p>
      <p>R is a programming language–based software environment that beginners learn by studying numerous examples of command usage [<xref ref-type="bibr" rid="ref5">5</xref>]. Teaching advanced R analysis within scheduled lecture times is not possible if compatibility issues prevent students from following along with their instructors [<xref ref-type="bibr" rid="ref4">4</xref>]. These compatibility issues may emerge from discrepancies among various versions of R, its packages, and the OS that the student is using. These issues can lead to errors, unpredictable program behavior, or challenges in code maintenance. To minimize compatibility problems during the practicum, it is crucial that the instructor and all students use the same version of R and the packages [<xref ref-type="bibr" rid="ref4">4</xref>]. This process must also be executed differently for Windows and Mac OSs, and there may be a diverse use of OSs among the students, including different versions of the two OSs [<xref ref-type="bibr" rid="ref6">6</xref>]. Students may also have trouble installing packages, which requires time to fix [<xref ref-type="bibr" rid="ref4">4</xref>]. Owing to the aforementioned difficulties, the students may be less enthusiastic about learning R [<xref ref-type="bibr" rid="ref1">1</xref>].</p>
      <p>Jupyter Notebook is an integrated development environment for R and Python that can function either on- or offline and allows for the blending of narrative text, mathematics, and executable code [<xref ref-type="bibr" rid="ref7">7</xref>]. Jupyter Notebook is an open-source platform that provides an excellent learning environment for students and a better graphics interface than the original R platform [<xref ref-type="bibr" rid="ref8">8</xref>]. Jupyter Notebook can improve the ability of graduate students in medical fields to learn epidemiological data analysis by providing an interactive and collaborative environment that allows for more efficient and effective learning [<xref ref-type="bibr" rid="ref9">9</xref>]. By using Jupyter Notebook, students can perform interactive data analysis in R through integrated step-by-step instruction that allows them to learn data analysis easily. It also allows students to document their data analysis steps in a clear and reproducible way [<xref ref-type="bibr" rid="ref10">10</xref>]. This can be especially important for assignments, as it allows others to follow along and understand their analysis process. Using Jupyter Notebook online can also facilitate collaboration between students and their instructors. Instructors can create and share Jupyter Notebook instances with students, and students can share their work with friends for peer review and feedback [<xref ref-type="bibr" rid="ref9">9</xref>]. Hence, instructors can flexibly use an online Jupyter server to create interactive tutorials, assignments, and quizzes.</p>
      <p>In our classroom, teaching R in the original version for longitudinal data analysis has often been delayed due to compatibility problems, leading to learning issues. The students were disappointed in their learning experience as computing errors and crashes during package installation prevented them from following the instructions. In this study, we collected class reflections from the students, then determined possible solutions using Jupyter Notebook. Jupyter Notebook was implemented in our classroom for the next cohort of students. This study also compared the satisfaction of the students in the original R class with the satisfaction of the students who used Jupyter Notebook.</p>
    </sec>
    <sec sec-type="methods">
      <title>Methods</title>
      <sec>
        <title>Study Design</title>
        <p>This study used action research to conduct a thematic summary of issues that were raised by the lecturer and students in the class. Action research is a form of systematic inquiry that involves educators engaging in a cyclical process of problem-solving about their practices. It is often used to improve teaching by identifying and addressing specific issues or challenges within a specific educational setting [<xref ref-type="bibr" rid="ref11">11</xref>]. In this approach, the teacher is both the researcher and the participant, and the ultimate goal is to improve the teacher’s own practice and their students’ learning experiences. The original R version for longitudinal data analysis was used to accomplish this task. Subsequently, a detailed illustration of the solutions to the problems created through teaching the original version of R was presented using Jupyter Notebook. The solutions were implemented with a new cohort of students, and the students’ average satisfaction scores were compared with those of the previous cohort to validate the solutions’ effectiveness. This analysis identified areas for potential improvement, which can be useful in enhancing the sustainability of this approach.</p>
      </sec>
      <sec>
        <title>Setting and Data Source</title>
        <p>This study was based on the longitudinal data analysis class using the tidyverse package [<xref ref-type="bibr" rid="ref12">12</xref>]. All students had background knowledge in using Basic R and the epiDisplay package [<xref ref-type="bibr" rid="ref13">13</xref>]. The class instruction and learning materials were shared through a circulated email system. The Department of Epidemiology, Faculty of Medicine, Prince of Songkla University (PSU) routinely collected satisfaction information from students using a web-based questionnaire (shown in <xref ref-type="supplementary-material" rid="app1">Multimedia Appendix 1</xref>). The questionnaire used a five-point Likert scale and was distributed to students after class. It assessed satisfaction across five dimensions: appropriate duration, media suitability, communication skills, discussion encouragement, and critical thinking promotion. These dimensions evaluate various aspects of course satisfaction: duration pertains to time allocation for topics; media suitability measures the effectiveness of instructional materials; communication skills rate the instructor’s clarity, organization, and engagement; discussion encouragement gauges the fostering of interaction and dialogue; and critical thinking promotion examines the support for in-depth analysis and problem-solving. Higher scores in each dimension signify a more satisfactory learning experience for students.</p>
        <p>The questionnaire was created for internal use in an arbitrary manner due to the limited number of students per annum. Consequently, no reliability study was undertaken. Routine requests were made to the students to complete the questionnaire and include their reflections on a web-based sheet after class. All data reported by the students were anonymously recorded in a secured database. This mitigated the possibility of social desirability.</p>
      </sec>
      <sec>
        <title>Jupyter Server Setup</title>
        <p>In accordance with the JupyterHub guidelines [<xref ref-type="bibr" rid="ref14">14</xref>], we established a self-hosted Jupyter server on a dedicated machine (US $8700) procured from the Division of Digital Innovation and Data Analytics (DIDA), Faculty of Medicine, at PSU. The server is equipped with a 64-core CPU and 256 GB of RAM. For the default configuration, each student was allocated a server with 1 CPU core and 500 MB of RAM. This allocation sufficed for storing their notebook and any requisite data files for the course. However, it should be noted that individual access settings can be adjusted within the server’s capacity constraints.</p>
        <p>To initiate the server, we created a virtual machine on the DIDA server and preinstalled all necessary packages. The cost of operating this instance amounted to approximately US $20 per month, as per the university’s established rates. The management of a JupyterHub server for users necessitated that the authentication be implemented via the PSU passport service, which is provided by the Computer Center of PSU, and that resources be allocated for each user. This ensured that every student had access to essential resources without overwhelming the server’s capacity.</p>
      </sec>
      <sec>
        <title>Participants</title>
        <p>With the participation of students and author PK as the teacher, the classroom action research was a collaborative learning method that changed specific actions. Participants in this study included PK and all graduate students in medical fields who were taking the longitudinal data analysis class run by PK. All students had already passed a basic epidemiology exam, so it could be inferred that they possessed a foundational understanding of epidemiological concepts and were familiar with relevant basic statistical techniques, including the R base and EpiDisplay packages. All students needed to independently analyze epidemiological data to finish their research and complete their PhD or MSc in epidemiology. The first class (class 1) was taught the original R version in October 2020, and the second class (class 2) was conducted using Jupyter Notebook in July 2022. Each class took 6 hours and comprised different students. After class finished, students from both class 1 and 2 were asked to answer the same web-based satisfaction questionnaire given by the educational assisting staff.</p>
        <p>The intended learning outcome of both class 1 and 2 was for students to exhibit competence in using R programming for the analysis of longitudinal data. PK normally observed the action of students during each class. To facilitate individualized learning within the small class setting, students were required to independently interpret results or address parallel questions after completing exercise segments on a section-by-section basis. To further promote understanding, PK presented each student with a spontaneously devised distinct problem (improvised question) that used the same technique. For example:</p>
        <list list-type="bullet">
          <list-item>
            <p>The exercise question (use “airquality” data set):</p>
            <list>
              <list-item>
                <p>Calculate the differences between the square root of the ozone levels on the adjacent days.</p>
              </list-item>
            </list>
          </list-item>
          <list-item>
            <p>The improvised question (use “airquality” data set):</p>
            <list>
              <list-item>
                <p>Calculate the differences between the cube root (change function) of the sulfur dioxide levels (change variable) for 2 consecutive days with a lag of 2 (day lag=2).</p>
              </list-item>
            </list>
          </list-item>
        </list>
        <p>This approach ensures that students do not merely replicate the code provided in instructions but rather gain a comprehensive grasp of the material.</p>
      </sec>
      <sec>
        <title>Problem Identification and Solution</title>
        <p>PK noted the problems that occurred and retrieved the comments reported by the students in class 1 from the database. The notes and comments were thematically analyzed to create the problem list. The problems were reviewed and used to develop the R Jupyter for the instruction of longitudinal data analysis. The R Jupyter content was developed incrementally to solve the problems, and subsequently, a flipped class [<xref ref-type="bibr" rid="ref15">15</xref>] assignment was included as a preclass assignment as group work. The flipped class assignment may introduce bias due to the confusing effects of using Jupyter R Notebooks. However, it is impossible to avoid since it was mandated by the university in 2022. This enabled the students to exchange ideas through the web-based platform and collaboratively prepare for the longitudinal data analysis class.</p>
      </sec>
      <sec>
        <title>Implementation and Evaluation</title>
        <p>PK created a mitigation plan for class 2, which included the development of the Jupyter Notebook (see our GitHub [<xref ref-type="bibr" rid="ref16">16</xref>]) and PDF instruction file (see <xref ref-type="supplementary-material" rid="app2">Multimedia Appendix 2</xref>). These materials were distributed to students 2 weeks prior to the commencement of the class. The students were allowed to use the Jupyter server using their PSU passport account [<xref ref-type="bibr" rid="ref17">17</xref>]. The problems detected during class 2 were noted by PK. The anonymized satisfaction scores and comments from students were sent to PK a week later. Additional details of the average age and sex distribution of the students were attached; however, those were not linked with the scores to protect personal data.</p>
      </sec>
      <sec>
        <title>Analysis</title>
        <p>This study used a thematic analysis to examine the notes and comments made by PK, which were provided by students in class 2, and compare them with thematic issues in class 1. In addition, descriptive statistics were used to compare satisfaction scores between class 1 and class 2 by ignoring parametric assumptions due to the small sample size. Opportunities for improvement were identified based on the observations made in the notes and comments gathered by PK, which were not previously observed in class 1.</p>
      </sec>
      <sec>
        <title>Ethics Approval</title>
        <p>This study was approved by the Human Research Ethics Committee, PSU (REC 66-104-18-1), which authorized a waiver of consent.</p>
      </sec>
    </sec>
    <sec sec-type="results">
      <title>Results</title>
      <sec>
        <title>Differences Between Class 1 and 2</title>
        <p><xref ref-type="table" rid="table1">Table 1</xref> summarizes the characteristics of students in two different classes. Class 1 had 9 students with a mean age of 32.9 years, while class 2 had 8 students with a mean age of 30.9 years. Both classes had a similar number of male and female students. Before starting, class 2 was given a link to access a Jupyter server and a password for internet access, and students were allowed to use any device to connect to the classroom’s wireless internet. All students chose to use their laptop.</p>
        <table-wrap position="float" id="table1">
          <label>Table 1</label>
          <caption>
            <p>Differences between class 1 and 2.</p>
          </caption>
          <table width="1000" cellpadding="5" cellspacing="0" border="1" rules="groups" frame="hsides">
            <col width="30"/>
            <col width="30"/>
            <col width="270"/>
            <col width="0"/>
            <col width="330"/>
            <col width="0"/>
            <col width="340"/>
            <thead>
              <tr valign="top">
                <td colspan="4">Demographics</td>
                <td colspan="2">Class 1</td>
                <td>Class 2</td>
              </tr>
            </thead>
            <tbody>
              <tr valign="top">
                <td colspan="7">
                  <bold>Students’ characteristics</bold>
                </td>
              </tr>
              <tr valign="top">
                <td>
                  <break/>
                </td>
                <td colspan="3">Students, n</td>
                <td colspan="2">9</td>
                <td>8</td>
              </tr>
              <tr valign="top">
                <td>
                  <break/>
                </td>
                <td colspan="3">Age (years), mean (SD)</td>
                <td colspan="2">32.9 (7.2)</td>
                <td>30.9 (6.3)</td>
              </tr>
              <tr valign="top">
                <td>
                  <break/>
                </td>
                <td colspan="6">
                  <bold>Sex, n</bold>
                </td>
              </tr>
              <tr valign="top">
                <td>
                  <break/>
                </td>
                <td>
                  <break/>
                </td>
                <td>Male</td>
                <td colspan="2">5</td>
                <td colspan="2">5</td>
              </tr>
              <tr valign="top">
                <td>
                  <break/>
                </td>
                <td>
                  <break/>
                </td>
                <td>Female</td>
                <td colspan="2">4</td>
                <td colspan="2">3</td>
              </tr>
              <tr valign="top">
                <td colspan="7">
                  <bold>Requirement before starting the class</bold>
                </td>
              </tr>
              <tr valign="top">
                <td>
                  <break/>
                </td>
                <td colspan="3">Basic knowledge</td>
                <td colspan="2">R base and EpiDisplay</td>
                <td>R base and EpiDisplay</td>
              </tr>
              <tr valign="top">
                <td>
                  <break/>
                </td>
                <td colspan="3">Material provided</td>
                <td colspan="2">R script file</td>
                <td>Jupyter Notebook file and PDF file for instructions to access and use the Jupyter server</td>
              </tr>
              <tr valign="top">
                <td>
                  <break/>
                </td>
                <td colspan="3">Internet</td>
                <td colspan="2">Not required</td>
                <td>Required</td>
              </tr>
              <tr valign="top">
                <td>
                  <break/>
                </td>
                <td colspan="3">Computational tool</td>
                <td colspan="2">Laptop computer without internet connection</td>
                <td>Any device that can connect to the wireless internet in the classroom</td>
              </tr>
              <tr valign="top">
                <td>
                  <break/>
                </td>
                <td colspan="3">Preclass assignment</td>
                <td colspan="2">None</td>
                <td>Flipped classroom assignment</td>
              </tr>
              <tr valign="top">
                <td colspan="7">
                  <bold>Intended learning outcome</bold>
                </td>
              </tr>
              <tr valign="top">
                <td>
                  <break/>
                </td>
                <td colspan="3">Outcome</td>
                <td colspan="2">Demonstrating proficiency in applying R programming for longitudinal data</td>
                <td>Demonstrating proficiency in applying R programming for longitudinal data</td>
              </tr>
              <tr valign="top">
                <td>
                  <break/>
                </td>
                <td colspan="3">Evaluation</td>
                <td colspan="2">Active engagement in class discussions and independent problem-solving</td>
                <td>Active engagement in class discussions and independent problem-solving; flipped classroom assignment</td>
              </tr>
            </tbody>
          </table>
        </table-wrap>
      </sec>
      <sec>
        <title>Problem Identification in Class 1 and Mitigation Plan</title>
        <p><xref ref-type="table" rid="table2">Table 2</xref> presents a list of thematic issues that arose during class 1, along with their corresponding mitigation plans. It also outlines particular feedback provided by students in class 1 that had to be addressed before commencing class 2.</p>
        <table-wrap position="float" id="table2">
          <label>Table 2</label>
          <caption>
            <p>Problem identification and solution.</p>
          </caption>
          <table width="1000" cellpadding="5" cellspacing="0" border="1" rules="groups" frame="hsides">
            <col width="30"/>
            <col width="370"/>
            <col width="0"/>
            <col width="600"/>
            <thead>
              <tr valign="top">
                <td colspan="3">Thematic issue from class 1</td>
                <td>Mitigation plan</td>
              </tr>
            </thead>
            <tbody>
              <tr valign="top">
                <td colspan="4">
                  <bold>Author PK’s note</bold>
                </td>
              </tr>
              <tr valign="top">
                <td>
                  <break/>
                </td>
                <td>Experiencing difficulty in installing packages</td>
                <td colspan="2">All packages would be installed in the Jupyter R server before class starts.</td>
              </tr>
              <tr valign="top">
                <td>
                  <break/>
                </td>
                <td>Delays in class due to unexpected errors</td>
                <td colspan="2">All codes for instruction should be tested in the Jupyter R server. All errors should be fixed before sending the material to the students.</td>
              </tr>
              <tr valign="top">
                <td>
                  <break/>
                </td>
                <td>Insufficient student participation</td>
                <td colspan="2">A mini-quiz will be actively assigned to students after each instruction and its example.</td>
              </tr>
              <tr valign="top">
                <td colspan="4">
                  <bold>Reflections from the students</bold>
                </td>
              </tr>
              <tr valign="top">
                <td>
                  <break/>
                </td>
                <td>Being unable to keep up with the pace of instruction due to the fast-paced environment</td>
                <td colspan="2">A Jupyter R file will be provided to the students with step-by-step instructions in a PDF file. Students could try all codes in the instruction by themselves before the class.</td>
              </tr>
              <tr valign="top">
                <td>
                  <break/>
                </td>
                <td>Difficulty in comprehending the analysis</td>
                <td colspan="2">A preclassroom assignment should be assigned to students as group work, so they could help each other to prepare for the class.</td>
              </tr>
              <tr valign="top">
                <td>
                  <break/>
                </td>
                <td>Lack of resources to support advanced materials</td>
                <td colspan="2">The GitHub link [<xref ref-type="bibr" rid="ref18">18</xref>] of PK’s work should be provided to students after finishing class to ensure continuous learning through real-world data.</td>
              </tr>
            </tbody>
          </table>
        </table-wrap>
      </sec>
      <sec>
        <title>Comparison Between Class 1 and 2</title>
        <p><xref ref-type="table" rid="table3">Table 3</xref> presents feedback on the use of Jupyter R for instruction and improvement in class 2 problems, as well as comments from the students regarding their feelings about the changes in the class.</p>
        <p><xref rid="figure1" ref-type="fig">Figure 1</xref> shows the satisfaction ratings of the two classes (class 1 and class 2) across different dimensions of satisfaction related to their learning experience. Overall, the findings suggest that class 2 (using Jupyter R) was more effective when compared to class 1, as clearly shown by the higher mean ratings and lower variability in the ratings for class 2. The explicit suitability of media in class 2 was found to be higher than that in class 1.</p>
        <table-wrap position="float" id="table3">
          <label>Table 3</label>
          <caption>
            <p>Improvement after the use of Jupyter R for instruction.</p>
          </caption>
          <table width="1000" cellpadding="5" cellspacing="0" border="1" rules="groups" frame="hsides">
            <col width="30"/>
            <col width="250"/>
            <col width="720"/>
            <thead>
              <tr valign="top">
                <td colspan="2">Class 1 problems</td>
                <td>Notes/comments supporting improvement in class 2</td>
              </tr>
            </thead>
            <tbody>
              <tr valign="top">
                <td colspan="2">Experiencing difficulty in installing packages</td>
                <td>
                  <list list-type="bullet">
                    <list-item>
                      <p>Without needing to install packages, all students were able to immediately use the Jupyter R server for their data analysis. (author PK’s note)</p>
                    </list-item>
                  </list>
                </td>
              </tr>
              <tr valign="top">
                <td colspan="2">Delays in class due to unexpected errors</td>
                <td>
                  <list list-type="bullet">
                    <list-item>
                      <p>The students were able to run all the example codes provided in the instructions without errors. However, when they attempted to code their own solutions, they encountered errors. (PK’s note)</p>
                    </list-item>
                  </list>
                </td>
              </tr>
              <tr valign="top">
                <td colspan="3">
                  <bold>Infrequent student questioning</bold>
                </td>
              </tr>
              <tr valign="top">
                <td>
                  <break/>
                </td>
                <td>PK’s note</td>
                <td>
                  <list list-type="bullet">
                    <list-item>
                      <p>All students asked questions frequently because they were curious about the solution for the preclass assignment and mini-quizzes.</p>
                    </list-item>
                  </list>
                </td>
              </tr>
              <tr valign="top">
                <td>
                  <break/>
                </td>
                <td>Comments from students</td>
                <td>
                  <list list-type="bullet">
                    <list-item>
                      <p>“My interest in the course was stimulated by the lecturer.”</p>
                    </list-item>
                    <list-item>
                      <p>“The lecturer challenged students to do their best work and answer questions in class.”</p>
                    </list-item>
                    <list-item>
                      <p>“The lecturer stimulated discussions and responded to questions.”</p>
                    </list-item>
                  </list>
                </td>
              </tr>
              <tr valign="top">
                <td colspan="2">Being unable to follow due to the fast-paced environment</td>
                <td>
                  <list list-type="bullet">
                    <list-item>
                      <p>All students could try all functions of the codes through the instruction material on their own without any delay from computer-compatibility errors. (PK’s note)</p>
                    </list-item>
                  </list>
                </td>
              </tr>
              <tr valign="top">
                <td colspan="2">Difficulty in understanding the analysis</td>
                <td>
                  <list list-type="bullet">
                    <list-item>
                      <p>“This subject equipped me with a comprehensive understanding of advanced statistical techniques, which will be beneficial in analyzing and interpreting the results of my research project.”</p>
                    </list-item>
                    <list-item>
                      <p>“The practical exercises and case studies in this subject allowed me to apply the concepts and techniques taught in class, enhancing my data analysis skills and increasing my confidence in working with large and complex data sets.”</p>
                    </list-item>
                    <list-item>
                      <p>“This subject emphasized the importance of integrating statistical analysis into research projects and providing a framework for approaching data analysis in a scientifically rigorous manner. The lessons and exercises in this subject have prepared me to effectively apply my statistical knowledge and skills to my own research project, leading to robust and reliable results.” (comments from students)</p>
                    </list-item>
                  </list>
                </td>
              </tr>
              <tr valign="top">
                <td colspan="2">No source for the continuation of advanced practicing</td>
                <td>
                  <list list-type="bullet">
                    <list-item>
                      <p>“The lecturer diversified the learning level. I can learn more through Jupyter Notebook in the GitHub repository.”</p>
                    </list-item>
                    <list-item>
                      <p>“I also learned to design my own research and built my analysis plan based on the example in GitHub.” (comments from students)</p>
                    </list-item>
                  </list>
                </td>
              </tr>
            </tbody>
          </table>
        </table-wrap>
        <fig id="figure1" position="float">
          <label>Figure 1</label>
          <caption>
            <p>The six-dimensional satisfaction scores.</p>
          </caption>
          <graphic xlink:href="mededu_v9i1e47394_fig1.png" alt-version="no" mimetype="image" position="float" xlink:type="simple"/>
        </fig>
      </sec>
      <sec>
        <title>Opportunities for Improvement</title>
        <p><xref ref-type="table" rid="table4">Table 4</xref> presents the opportunities for improvement in class 2 and notes/comments from both the instructor and students. PK noted that there was uncertainty regarding the long-term effectiveness of the course, as there was no standard procedure in place to monitor whether students continued to engage with coding in R after class was completed. Furthermore, there is also a lack of knowledge regarding their proficiency in solving coding challenges independently. Despite PK’s emphasis that students are able to use Jupyter Notebook when they face compatibility issues related to traditional R (we also provided a Jupyter server for the alumni), it is unclear whether students would remember this or if they would use another program altogether to conduct their data analysis. Hence, a plan was developed to devise a system that could effectively monitor the adherence of students to the practice of coding in R, such as the R Skill Challenge Activity, through the Jupyter server. The student reflections highlight the need for a teaching assistant during class, as some practice sessions run slower when students require specific help. Even though the lecturer was able to cover all the necessary material with the students within the scheduled time by using Jupyter Notebook and teaching at a new pace, the students appeared to be unwilling to wait for assistance in resolving an error while the lecturer was assisting another student. Therefore, a few statisticians will be assigned as teaching assistants in upcoming classes.</p>
        <table-wrap position="float" id="table4">
          <label>Table 4</label>
          <caption>
            <p>Opportunities for improvement.</p>
          </caption>
          <table width="1000" cellpadding="5" cellspacing="0" border="1" rules="groups" frame="hsides">
            <col width="350"/>
            <col width="650"/>
            <thead>
              <tr valign="top">
                <td>Opportunities for improvement in class 2</td>
                <td>Notes/comments from class 2</td>
              </tr>
            </thead>
            <tbody>
              <tr valign="top">
                <td>Uncertainty regarding the long-term effectiveness</td>
                <td>
                  <list list-type="bullet">
                    <list-item>
                      <p>Currently, we do not have a standard procedure in place to monitor the extent to which students continue to engage in R coding after class. Additionally, we lack knowledge regarding their proficiency in independently solving coding challenges in advance. (author PK note)</p>
                    </list-item>
                  </list>
                </td>
              </tr>
              <tr valign="top">
                <td>Teaching assistantship</td>
                <td>
                  <list list-type="bullet">
                    <list-item>
                      <p>“We have no teaching assistant during the class, and it made some practice sessions run slower because some of us encountered specific problems during the practice.”</p>
                    </list-item>
                    <list-item>
                      <p>“It would be nice if teaching assistants can join these courses to help us during the practice session.” (comments from students)</p>
                    </list-item>
                  </list>
                </td>
              </tr>
            </tbody>
          </table>
        </table-wrap>
      </sec>
    </sec>
    <sec sec-type="discussion">
      <title>Discussion</title>
      <sec>
        <title>Principal Findings</title>
        <p>This study focused on the challenges faced in teaching R programming in epidemiology classes and proposed the use of Jupyter Notebook as a potential solution. The study aimed to evaluate the effectiveness of Jupyter Notebook in a longitudinal data analysis class and collected reflections from students in a previous class regarding the problems they encountered in learning R programming. The findings of the study indicated that Jupyter Notebook could provide an interactive and collaborative environment that improves the effectiveness and efficiency of the learning process.</p>
        <p>Reflections on the action research process revealed that compatibility issues and package installation crashes were the most common challenges faced when teaching R programming. These challenges were resolved by using Jupyter R Notebook, which also facilitated group work and collaborative learning. This study is innovative in its use of Jupyter Notebook as a pedagogical tool for the instruction of epidemiology and, to the best of the author’s knowledge, is the first study to do so. However, previous studies in other fields [<xref ref-type="bibr" rid="ref9">9</xref>,<xref ref-type="bibr" rid="ref19">19</xref>-<xref ref-type="bibr" rid="ref22">22</xref>] have revealed that Jupyter Notebook is an effective tool for teaching data analysis.</p>
        <p>The primary strength of this study was its collaboration with students, allowing their problems to be identified so that solutions could be found to address those issues. Moreover, the use of Jupyter Notebook as a tool to enhance learning is an innovative approach to teaching epidemiology. The use of this tool was a pragmatic remedy to the obstacles encountered when instructing students in R programming within epidemiology courses. Jupyter Notebook provided an effective and efficient learning environment, enabling students to explore data and document their analysis steps in a clear and reproducible way. Moreover, Jupyter Notebook facilitates collaboration between students and instructors, allowing instructors to create interactive tutorials, assignments, and quizzes.</p>
      </sec>
      <sec>
        <title>Limitations</title>
        <p>Unfortunately, this study’s focus on a particular class and context constrains its generalizability. Additionally, the long-term efficacy of the Jupyter Notebook method in enhancing student learning outcomes remains unreported. Future research should assess the long-term effectiveness of the Jupyter Notebook strategy in augmenting student learning outcomes. Moreover, to adhere to ethical standards during student data collection, it is crucial to establish a research protocol that delineates the process for securing informed consent prior to further evaluation. The use of a flipped classroom assignment in class 2 may have influenced the overall feedback, complicating whether the observed outcomes could be exclusively attributed to the Jupyter Notebook approach.</p>
        <p>Considering these constraints, we propose that subsequent research should examine the long-term effectiveness of the Jupyter Notebook approach in fostering student learning outcomes while accounting for confounding factors, such as flipped classroom assignments. This will facilitate a clearer understanding of the primary effect and aid in discerning the distinct contributions of the Jupyter R notebook method to student learning.</p>
      </sec>
      <sec>
        <title>Conclusion</title>
        <p>Jupyter Notebook can enhance the learning of epidemiological data analysis for graduate students by providing an interactive and collaborative environment that allows for more efficient and effective learning. The findings of this study demonstrate that Jupyter Notebook can help address the challenges of teaching R programming in epidemiology classes, which are caused by compatibility issues with different OSs and computers.</p>
      </sec>
    </sec>
  </body>
  <back>
    <app-group>
      <supplementary-material id="app1">
        <label>Multimedia Appendix 1</label>
        <p>The web-based questionnaire for student satisfaction survey.</p>
        <media xlink:href="mededu_v9i1e47394_app1.pdf" xlink:title="PDF File  (Adobe PDF File), 31 KB"/>
      </supplementary-material>
      <supplementary-material id="app2">
        <label>Multimedia Appendix 2</label>
        <p>Jupyter Notebook instruction.</p>
        <media xlink:href="mededu_v9i1e47394_app2.pdf" xlink:title="PDF File  (Adobe PDF File), 1192 KB"/>
      </supplementary-material>
    </app-group>
    <glossary>
      <title>Abbreviations</title>
      <def-list>
        <def-item>
          <term id="abb1">DIDA</term>
          <def>
            <p>Digital Innovation and Data Analytics</p>
          </def>
        </def-item>
        <def-item>
          <term id="abb2">OS</term>
          <def>
            <p>operating system</p>
          </def>
        </def-item>
        <def-item>
          <term id="abb3">PSU</term>
          <def>
            <p>Prince of Songkla University</p>
          </def>
        </def-item>
      </def-list>
    </glossary>
    <ack>
      <p>The appreciation of the author is extended to the Division of Digital Innovation and Data Analytics, Faculty of Medicine, Prince of Songkla University for their development of the Jupyter server. The author would also like to thank the Office of International Affairs, Faculty of Medicine, Prince of Songkla University for their English editing support services.</p>
    </ack>
    <notes>
      <sec>
        <title>Data Availability</title>
        <p>The pedagogical resources pertinent to this research are publicly accessible via the GitHub repository [<xref ref-type="bibr" rid="ref16">16</xref>]. The data sets substantiating the outcomes of this investigation can be available from the corresponding author, contingent upon a reasonable request.</p>
      </sec>
    </notes>
    <fn-group>
      <fn fn-type="conflict">
        <p>None declared.</p>
      </fn>
    </fn-group>
    <ref-list>
      <ref id="ref1">
        <label>1</label>
        <nlm-citation citation-type="journal">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Green</surname>
              <given-names>ML</given-names>
            </name>
          </person-group>
          <article-title>Graduate medical education training in clinical epidemiology, critical appraisal, and evidence-based medicine: a critical review of curricula</article-title>
          <source>Acad Med</source>
          <year>1999</year>
          <month>06</month>
          <volume>74</volume>
          <issue>6</issue>
          <fpage>686</fpage>
          <lpage>94</lpage>
          <pub-id pub-id-type="doi">10.1097/00001888-199906000-00017</pub-id>
          <pub-id pub-id-type="medline">10386099</pub-id>
        </nlm-citation>
      </ref>
      <ref id="ref2">
        <label>2</label>
        <nlm-citation citation-type="journal">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Khan</surname>
              <given-names>AM</given-names>
            </name>
          </person-group>
          <article-title>R-software: a newer tool in epidemiological data analysis</article-title>
          <source>Indian J Community Med</source>
          <year>2013</year>
          <month>01</month>
          <volume>38</volume>
          <issue>1</issue>
          <fpage>56</fpage>
          <lpage>8</lpage>
          <comment>
            <ext-link ext-link-type="uri" xlink:type="simple" xlink:href="http://www.ijcm.org.in/article.asp?issn=0970-0218;year=2013;volume=38;issue=1;spage=56;epage=58;aulast=Khan"/>
          </comment>
          <pub-id pub-id-type="doi">10.4103/0970-0218.106630</pub-id>
          <pub-id pub-id-type="medline">23559706</pub-id>
          <pub-id pub-id-type="pii">IJCM-38-56</pub-id>
          <pub-id pub-id-type="pmcid">PMC3612300</pub-id>
        </nlm-citation>
      </ref>
      <ref id="ref3">
        <label>3</label>
        <nlm-citation citation-type="book">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Wickham</surname>
              <given-names>H</given-names>
            </name>
          </person-group>
          <source>R Packages. First Edition</source>
          <year>2015</year>
          <publisher-loc>Sebastopol, CA</publisher-loc>
          <publisher-name>O'Reilly Media</publisher-name>
        </nlm-citation>
      </ref>
      <ref id="ref4">
        <label>4</label>
        <nlm-citation citation-type="journal">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Wendt</surname>
              <given-names>CJ</given-names>
            </name>
            <name name-style="western">
              <surname>Anderson</surname>
              <given-names>GB</given-names>
            </name>
          </person-group>
          <article-title>Ten simple rules for finding and selecting R packages</article-title>
          <source>PLoS Comput Biol</source>
          <year>2022</year>
          <month>03</month>
          <volume>18</volume>
          <issue>3</issue>
          <fpage>e1009884</fpage>
          <comment>
            <ext-link ext-link-type="uri" xlink:type="simple" xlink:href="https://dx.plos.org/10.1371/journal.pcbi.1009884"/>
          </comment>
          <pub-id pub-id-type="doi">10.1371/journal.pcbi.1009884</pub-id>
          <pub-id pub-id-type="medline">35324904</pub-id>
          <pub-id pub-id-type="pii">PCOMPBIOL-D-21-00329</pub-id>
          <pub-id pub-id-type="pmcid">PMC8946669</pub-id>
        </nlm-citation>
      </ref>
      <ref id="ref5">
        <label>5</label>
        <nlm-citation citation-type="journal">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Giorgi</surname>
              <given-names>FM</given-names>
            </name>
            <name name-style="western">
              <surname>Ceraolo</surname>
              <given-names>C</given-names>
            </name>
            <name name-style="western">
              <surname>Mercatelli</surname>
              <given-names>D</given-names>
            </name>
          </person-group>
          <article-title>The R language: an engine for bioinformatics and data science</article-title>
          <source>Life (Basel)</source>
          <year>2022</year>
          <month>04</month>
          <day>27</day>
          <volume>12</volume>
          <issue>5</issue>
          <fpage>648</fpage>
          <comment>
            <ext-link ext-link-type="uri" xlink:type="simple" xlink:href="https://www.mdpi.com/resolver?pii=life12050648"/>
          </comment>
          <pub-id pub-id-type="doi">10.3390/life12050648</pub-id>
          <pub-id pub-id-type="medline">35629316</pub-id>
          <pub-id pub-id-type="pii">life12050648</pub-id>
          <pub-id pub-id-type="pmcid">PMC9148156</pub-id>
        </nlm-citation>
      </ref>
      <ref id="ref6">
        <label>6</label>
        <nlm-citation citation-type="web">
          <article-title>R installation and administration</article-title>
          <source>R Manuals</source>
          <access-date>2023-04-20</access-date>
          <comment>
            <ext-link ext-link-type="uri" xlink:type="simple" xlink:href="https://rstudio.github.io/r-manuals/r-admin/">https://rstudio.github.io/r-manuals/r-admin/</ext-link>
          </comment>
        </nlm-citation>
      </ref>
      <ref id="ref7">
        <label>7</label>
        <nlm-citation citation-type="web">
          <source>Jupyter</source>
          <access-date>2023-02-23</access-date>
          <comment>
            <ext-link ext-link-type="uri" xlink:type="simple" xlink:href="https://jupyter.org">https://jupyter.org</ext-link>
          </comment>
        </nlm-citation>
      </ref>
      <ref id="ref8">
        <label>8</label>
        <nlm-citation citation-type="journal">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Hau Michael Tso</surname>
              <given-names>C</given-names>
            </name>
            <name name-style="western">
              <surname>Hollaway</surname>
              <given-names>M</given-names>
            </name>
            <name name-style="western">
              <surname>Killick</surname>
              <given-names>R</given-names>
            </name>
            <name name-style="western">
              <surname>Henrys</surname>
              <given-names>P</given-names>
            </name>
            <name name-style="western">
              <surname>Monteith</surname>
              <given-names>D</given-names>
            </name>
            <name name-style="western">
              <surname>Watkins</surname>
              <given-names>J</given-names>
            </name>
            <name name-style="western">
              <surname>Blair</surname>
              <given-names>G</given-names>
            </name>
          </person-group>
          <article-title>Advancing reproducible research by publishing R markdown notebooks as interactive sandboxes using the learnr package</article-title>
          <source>R J</source>
          <year>2022</year>
          <month>06</month>
          <day>21</day>
          <volume>14</volume>
          <issue>1</issue>
          <fpage>255</fpage>
          <lpage>263</lpage>
          <pub-id pub-id-type="doi">10.32614/rj-2022-021</pub-id>
        </nlm-citation>
      </ref>
      <ref id="ref9">
        <label>9</label>
        <nlm-citation citation-type="journal">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Davies</surname>
              <given-names>A</given-names>
            </name>
            <name name-style="western">
              <surname>Hooley</surname>
              <given-names>F</given-names>
            </name>
            <name name-style="western">
              <surname>Causey-Freeman</surname>
              <given-names>P</given-names>
            </name>
            <name name-style="western">
              <surname>Eleftheriou</surname>
              <given-names>I</given-names>
            </name>
            <name name-style="western">
              <surname>Moulton</surname>
              <given-names>G</given-names>
            </name>
          </person-group>
          <article-title>Using interactive digital notebooks for bioscience and informatics education</article-title>
          <source>PLoS Comput Biol</source>
          <year>2020</year>
          <month>11</month>
          <volume>16</volume>
          <issue>11</issue>
          <fpage>e1008326</fpage>
          <comment>
            <ext-link ext-link-type="uri" xlink:type="simple" xlink:href="https://dx.plos.org/10.1371/journal.pcbi.1008326"/>
          </comment>
          <pub-id pub-id-type="doi">10.1371/journal.pcbi.1008326</pub-id>
          <pub-id pub-id-type="medline">33151926</pub-id>
          <pub-id pub-id-type="pii">PCOMPBIOL-D-20-00433</pub-id>
          <pub-id pub-id-type="pmcid">PMC7643937</pub-id>
        </nlm-citation>
      </ref>
      <ref id="ref10">
        <label>10</label>
        <nlm-citation citation-type="journal">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Bernstein</surname>
              <given-names>MN</given-names>
            </name>
            <name name-style="western">
              <surname>Gladstein</surname>
              <given-names>A</given-names>
            </name>
            <name name-style="western">
              <surname>Latt</surname>
              <given-names>KZ</given-names>
            </name>
            <name name-style="western">
              <surname>Clough</surname>
              <given-names>E</given-names>
            </name>
            <name name-style="western">
              <surname>Busby</surname>
              <given-names>B</given-names>
            </name>
            <name name-style="western">
              <surname>Dillman</surname>
              <given-names>A</given-names>
            </name>
          </person-group>
          <article-title>Jupyter notebook-based tools for building structured datasets from the Sequence Read Archive</article-title>
          <source>F1000Res</source>
          <year>2020</year>
          <volume>9</volume>
          <fpage>376</fpage>
          <comment>
            <ext-link ext-link-type="uri" xlink:type="simple" xlink:href="https://europepmc.org/abstract/MED/32864105"/>
          </comment>
          <pub-id pub-id-type="doi">10.12688/f1000research.23180.2</pub-id>
          <pub-id pub-id-type="medline">32864105</pub-id>
          <pub-id pub-id-type="pmcid">PMC7445559</pub-id>
        </nlm-citation>
      </ref>
      <ref id="ref11">
        <label>11</label>
        <nlm-citation citation-type="journal">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Oberschmidt</surname>
              <given-names>K</given-names>
            </name>
            <name name-style="western">
              <surname>Grünloh</surname>
              <given-names>C</given-names>
            </name>
            <name name-style="western">
              <surname>Nijboer</surname>
              <given-names>F</given-names>
            </name>
            <name name-style="western">
              <surname>van Velsen</surname>
              <given-names>L</given-names>
            </name>
          </person-group>
          <article-title>Best practices and lessons learned for action research in eHealth design and implementation: literature review</article-title>
          <source>J Med Internet Res</source>
          <year>2022</year>
          <month>01</month>
          <day>28</day>
          <volume>24</volume>
          <issue>1</issue>
          <fpage>e31795</fpage>
          <comment>
            <ext-link ext-link-type="uri" xlink:type="simple" xlink:href="https://www.jmir.org/2022/1/e31795/"/>
          </comment>
          <pub-id pub-id-type="doi">10.2196/31795</pub-id>
          <pub-id pub-id-type="medline">35089158</pub-id>
          <pub-id pub-id-type="pii">v24i1e31795</pub-id>
          <pub-id pub-id-type="pmcid">PMC8838546</pub-id>
        </nlm-citation>
      </ref>
      <ref id="ref12">
        <label>12</label>
        <nlm-citation citation-type="web">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Wickham</surname>
              <given-names>H</given-names>
            </name>
          </person-group>
          <article-title>tidyverse: easily install and load the 'Tidyverse'</article-title>
          <source>The Comprehensive R Archive Network</source>
          <year>2023</year>
          <access-date>2023-03-18</access-date>
          <comment>
            <ext-link ext-link-type="uri" xlink:type="simple" xlink:href="https://CRAN.R-project.org/package=tidyverse">https://CRAN.R-project.org/package=tidyverse</ext-link>
          </comment>
        </nlm-citation>
      </ref>
      <ref id="ref13">
        <label>13</label>
        <nlm-citation citation-type="web">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Chongsuvivatwong</surname>
              <given-names>V</given-names>
            </name>
          </person-group>
          <article-title>epiDisplay: epidemiological data display package</article-title>
          <source>The Comprehensive R Archive Network</source>
          <year>2022</year>
          <access-date>2023-03-18</access-date>
          <comment>
            <ext-link ext-link-type="uri" xlink:type="simple" xlink:href="https://CRAN.R-project.org/package=epiDisplay">https://CRAN.R-project.org/package=epiDisplay</ext-link>
          </comment>
        </nlm-citation>
      </ref>
      <ref id="ref14">
        <label>14</label>
        <nlm-citation citation-type="web">
          <article-title>Jupyter project documentation</article-title>
          <source>Jupyter</source>
          <access-date>2023-04-21</access-date>
          <comment>
            <ext-link ext-link-type="uri" xlink:type="simple" xlink:href="https://docs.jupyter.org/en/latest/">https://docs.jupyter.org/en/latest/</ext-link>
          </comment>
        </nlm-citation>
      </ref>
      <ref id="ref15">
        <label>15</label>
        <nlm-citation citation-type="book">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Bergmann</surname>
              <given-names>J</given-names>
            </name>
            <name name-style="western">
              <surname>Sams</surname>
              <given-names>A</given-names>
            </name>
          </person-group>
          <source>Flip Your Classroom: Reach Every Student in Every Class Every Day</source>
          <year>2012</year>
          <publisher-loc>Washington, DC</publisher-loc>
          <publisher-name>International Society for Technology in Education</publisher-name>
        </nlm-citation>
      </ref>
      <ref id="ref16">
        <label>16</label>
        <nlm-citation citation-type="web">
          <article-title>Longitudinal_data_analysis</article-title>
          <source>GitHub</source>
          <year>2023</year>
          <access-date>2023-03-18</access-date>
          <comment>
            <ext-link ext-link-type="uri" xlink:type="simple" xlink:href="https://github.com/ponlagrit/Longitudinal_data_analysis">https://github.com/ponlagrit/Longitudinal_data_analysis</ext-link>
          </comment>
        </nlm-citation>
      </ref>
      <ref id="ref17">
        <label>17</label>
        <nlm-citation citation-type="web">
          <source>JupyterHub</source>
          <access-date>2023-03-14</access-date>
          <comment>
            <ext-link ext-link-type="uri" xlink:type="simple" xlink:href="https://jupyter.dida.psu.ac.th/hub/login">https://jupyter.dida.psu.ac.th/hub/login</ext-link>
          </comment>
        </nlm-citation>
      </ref>
      <ref id="ref18">
        <label>18</label>
        <nlm-citation citation-type="web">
          <article-title>ponlagrit</article-title>
          <source>GitHub</source>
          <access-date>2023-03-14</access-date>
          <comment>
            <ext-link ext-link-type="uri" xlink:type="simple" xlink:href="https://github.com/ponlagrit">https://github.com/ponlagrit</ext-link>
          </comment>
        </nlm-citation>
      </ref>
      <ref id="ref19">
        <label>19</label>
        <nlm-citation citation-type="journal">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Castilla</surname>
              <given-names>R</given-names>
            </name>
            <name name-style="western">
              <surname>Peña</surname>
              <given-names>M</given-names>
            </name>
          </person-group>
          <article-title>Jupyter Notebooks for the study of advanced topics in Fluid Mechanics</article-title>
          <source>Computer Applications Eng Education</source>
          <year>2023</year>
          <month>02</month>
          <day>28</day>
          <fpage>1</fpage>
          <lpage>13</lpage>
          <pub-id pub-id-type="doi">10.1002/cae.22619</pub-id>
        </nlm-citation>
      </ref>
      <ref id="ref20">
        <label>20</label>
        <nlm-citation citation-type="journal">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Fleischer</surname>
              <given-names>Y</given-names>
            </name>
            <name name-style="western">
              <surname>Biehler</surname>
              <given-names>R</given-names>
            </name>
            <name name-style="western">
              <surname>Schulte</surname>
              <given-names>C</given-names>
            </name>
          </person-group>
          <article-title>Teaching and learning data-driven machine learning with educationally Designed Jupyter Notebooks</article-title>
          <source>Statistics Education Res J</source>
          <year>2022</year>
          <month>07</month>
          <day>04</day>
          <volume>21</volume>
          <issue>2</issue>
          <fpage>7</fpage>
          <pub-id pub-id-type="doi">10.52041/serj.v21i2.61</pub-id>
        </nlm-citation>
      </ref>
      <ref id="ref21">
        <label>21</label>
        <nlm-citation citation-type="journal">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Kim</surname>
              <given-names>B</given-names>
            </name>
            <name name-style="western">
              <surname>Henke</surname>
              <given-names>G</given-names>
            </name>
          </person-group>
          <article-title>Easy-to-use cloud computing for teaching data science</article-title>
          <source>J Statistics Data Sci Education</source>
          <year>2021</year>
          <month>03</month>
          <day>22</day>
          <volume>29</volume>
          <issue>sup1</issue>
          <fpage>S103</fpage>
          <lpage>S111</lpage>
          <pub-id pub-id-type="doi">10.1080/10691898.2020.1860726</pub-id>
        </nlm-citation>
      </ref>
      <ref id="ref22">
        <label>22</label>
        <nlm-citation citation-type="journal">
          <person-group person-group-type="author">
            <name name-style="western">
              <surname>Moltu</surname>
              <given-names>C</given-names>
            </name>
            <name name-style="western">
              <surname>Stefansen</surname>
              <given-names>J</given-names>
            </name>
            <name name-style="western">
              <surname>Svisdahl</surname>
              <given-names>M</given-names>
            </name>
            <name name-style="western">
              <surname>Veseth</surname>
              <given-names>M</given-names>
            </name>
          </person-group>
          <article-title>Negotiating the coresearcher mandate - service users' experiences of doing collaborative research on mental health</article-title>
          <source>Disabil Rehabil</source>
          <year>2012</year>
          <volume>34</volume>
          <issue>19</issue>
          <fpage>1608</fpage>
          <lpage>16</lpage>
          <pub-id pub-id-type="doi">10.3109/09638288.2012.656792</pub-id>
          <pub-id pub-id-type="medline">22489612</pub-id>
        </nlm-citation>
      </ref>
    </ref-list>
  </back>
</article>
