<!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 />
    <article-meta>
      <title-group>
        <article-title>Goals and Principles for the Redesign of a Programming Course</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Erno Vanhala</string-name>
          <email>erno.vanhala@uta.fi</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Jussi Kasurinen</string-name>
          <email>jussi.kasurinen@lut.fi</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Lappeenranta University of Technology</institution>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>University of Tampere</institution>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2018</year>
      </pub-date>
      <abstract>
        <p>In this study it is discussed how programming courses have been redesigned. The article is based on three courses lectured during academic years from 2005 to 2016. During these years several modifications and revisions were made, such as moving a course from Python 2 to Python 3, another one from C++ to Java and in one occasions updating the course to include the latest web development concepts and technologies. The first course included video lectures and the latter two were upgraded to utilize flipped classroom teaching method. From these revisions the student feedback was collected and examined to gain understanding on what ideas work and what do not. The overall results could be summarize in four key concepts: 1) provide easy-to-use working environment 2) give students freedom, 3) fortify the frequency of key concepts and 4) separate theory to pre-classroom learning and action to in-classroom learning.</p>
      </abstract>
      <kwd-group>
        <kwd>programming</kwd>
        <kwd>object-oriented programming</kwd>
        <kwd>flipped classroom</kwd>
        <kwd>redesign principles</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>CCS CONCEPTS</p>
    </sec>
    <sec id="sec-2">
      <title>INTRODUCTION</title>
      <p>Why bother changing a programming course unless you have to?
The question is, of course, what is a good enough reason to
introduce changes which are likely to cause change resistance,
increased effort, and worse short term results [7]?
2
In this section related research is presented to introduce the
topics that are relevant when discussing the reasons and the
process of redesigning of a programming course.
2.1</p>
    </sec>
    <sec id="sec-3">
      <title>Student motivation</title>
      <p>Student motivation has raised considerable interest among the
researchers [3,21]. Besides the hygiene factors – elements (e.g. air
conditioning or programming manual) that are not the actual key
components of the process, but can greatly affect the success of
the task (e.g. office work or learning programming) – there are
also motivating things on learning, which can greatly affect on
the actual course outcome [21].</p>
      <p>For example, the assignments and lectures on the course have
to be easy enough to be understandable for all, but they also
should challenge the most advanced students. Students with less
IT skills tend to frustrate near the end of the course when
assignments get harder. On the other hand, students with
existing programming skills are frustrated since they are not
challenged, and are just required to participate. There are,
however, ways to detect frustration based on compilation logs
and time spent on Virtual Learning Environment (VLE) [22].
When a students get overly frustrated they can easily lose their
confidence[10] and will get a grade worse than their actual skill
level would indicate.</p>
      <p>In principle, the students who have positive impression on a
subject tend to be motivated [21]. Motivated students also have a
positive perception of the subject and amount of practical work
[21]. In this sense, it is obvious that these traits should be
supported, by providing programming assignments, which the
students find motivational[24].
2.2</p>
    </sec>
    <sec id="sec-4">
      <title>Student dissatisfaction</title>
      <p>Hygiene factors [11] are not widely studied in the area of
introductory programming, but few studies can be found (e.g.
[13,15]). Before a student can be motivated, the basic hygiene
factors need to be present [11]. In programming courses these
Herzberg's hygiene factors include, for example, comfortable
learning environment and learning conditions. The first one
contains the lecture halls and computer classes, and the latter
material supporting the learning and students' time schedules.</p>
      <p>When the hygiene needs and requirements are met, the
motivational aspects become increasingly important to increase
the student satisfaction. Herzberg introduces 7 principles [11]
from which three can be easily modified to be used in teaching
programming: 1) In the learning environment it is quite easy to
give the students access to the scores of one's programming
tasks. 2) When giving tasks to the students it is possible to give
several tasks covering different degree of difficulty. 3) Access to
additional tasks providing deeper understanding to engage
advanced students in the course.
2.3</p>
    </sec>
    <sec id="sec-5">
      <title>Course success measurement</title>
      <p>After the course implementation has been carried out, usually
the final survey has been given to the students. Based on this
feedback it is possible to pinpoint difficult parts of the course
topics and unsuccessful ideas or failed implementations.</p>
      <p>Yet, a course success measure should reflect the actual
objective of course participation, the learning of the course
contents. The learning processes have been studied, for example,
from the point of view how novice programmers understand
programs [23], how they structure their own code [5,20], and
how the programming knowledge can be measured – the
Bayesian Knowledge Tracing algorithm (BKT) [2,6,8] and
Adaptive Control of Thought - Rational (ACT-R) [1]. The ACT-R
is focused on long-term learning, skill acquisition, and
deterioration while the BKT algorithm has been reported to have
a history of success in programming and algebra, and thus the
BKT has been reported sufficient for skill mastery estimation [8].</p>
      <p>The principles of the BKT algorithm are outlined in Figure 1:
the prior knowledge (Ln) is taken into account when the
probability of learning the concept in question is calculated
(p(T)) to measure the student learning. As student repeats the
process, the possibility of guessing the right answer (p(G)) and to
err even when the concept is learned (p(S)) are taken into
account. It has been estimated that repeating the process for six
times predicts the learning of the concepts in question in a
reasonable level.
As technology develop it also opens new methods to improve
teaching methods. The core idea of flipped class room is to let
students to study theory on their own outside the classroom and
concentrate on actual doing in class with teacher. This method is
already used in computer science on various course [12,16].
Flipped classroom can also be used in other areas from primary
school to university level education although it originated from
economics [4].
3</p>
    </sec>
    <sec id="sec-6">
      <title>RESEARCH METHOD</title>
      <p>The present study started with two research questions: 1) When
should a programming course be revised? and 2) What should be
taken into account when redesigning?</p>
      <p>In general the study had three objectives: First to demonstrate
how the collected data can be used to pinpoint problems and
development needs in the course. Second, to report the goals and
principles for the course redesign. The third objective was to
assess how programming assignments could be developed to take
into account the developed principles. In this sense, the study has
the characteristics of both natural and design science [17] but it
is reported as a case study since the case study methods [25] fit
well the study and, in general, the courses referred to in the
study represent case studies with literal replication [25].</p>
      <p>The data used in the study comes from three courses taught in
a Finnish university, between 2005 and 2016. Each course has
been concluded with a final survey that has been distributed to
all students enrolled in the course. The final surveys have
included quantitative questions like the difficulty and usefulness
of the different course elements but also open questions to allow
the students to express their feelings and concerns about the
course.</p>
      <p>The analysis has been based on both quantitative and
qualitative methods. In particular, the BKT analysis is based on
quantitative measurements and statistical analysis while the
problem analysis has been based more on the qualitative data
acquired from multiple sources. For example, problematic weekly
assignments have been identified by analyzing the points each
assignment got but deciding about the changes required by each
assignments has been estimated case by case by the designer
even though the student problem reports and feedback have
helped a lot in some cases.</p>
      <p>This study utilizes three programming courses. Table 1 lists key
features for the courses. All the courses have positioned in
bachelors level, but also not computer science students from
masters level have taken part of the courses.
4
4.1
A
B</p>
    </sec>
    <sec id="sec-7">
      <title>CASE STUDIES</title>
    </sec>
    <sec id="sec-8">
      <title>Course descriptions</title>
      <p>The next chapters describe three case courses, their descriptions
and upgrades done to them.</p>
      <sec id="sec-8-1">
        <title>Fundamentals of Introduction of lecture</title>
        <p>programming videos, change from</p>
      </sec>
      <sec id="sec-8-2">
        <title>Python 2 to Python 3, programming manual</title>
      </sec>
      <sec id="sec-8-3">
        <title>Object-oriented</title>
        <p>programming</p>
      </sec>
      <sec id="sec-8-4">
        <title>Change from C++ to Java and change from lecture videos to flipped classroom, programming manual</title>
      </sec>
      <sec id="sec-8-5">
        <title>C Webbed Introduction of flipped 2015 applications classroom and updating all the materials</title>
        <p>For Case A, a larger Python programming manual was written
to replace a course book, since at the time there was no book
available in the local language. When the course was updated to
Python 3, the number of weekly programming tasks was
increased and the format of the programming project was
changed from GUI-based “motivational” project to text- and
calculation based real-life problem.</p>
        <p>Case B followed examples of Case A as it had video lectures,
but in the end it was decided to change the programming
language of the course from C++ to Java and in the same time to
drop the traditional lectures-exercises-exam paradigm and move
to the flipped classroom. In addition, two programming manuals
were written; one for Java in general and one for
GUIprogramming in Java.</p>
        <p>Similarly, Case C was transformed to flipped classroom
method and all the course materials were updated to reflect the
fast development of web programming techniques.</p>
        <p>All the case courses consisted of 12–14 weeks depending on
the year it was lectured. All the courses followed the format
where besides the introductory lecture, each week a new concept
was introduced and the previous topics were utilized with the
newly learned skills.
4.2
4.2.1</p>
      </sec>
    </sec>
    <sec id="sec-9">
      <title>Changes in the course</title>
      <sec id="sec-9-1">
        <title>Hygiene factors</title>
        <p>The first major observation was the students were complaining
about very basics on case courses, for example “Where do I get
the needed software?” or “How do I return my assignments?”.</p>
        <p>One of the key principles when revising and improving
courses was to remove these hygiene factor obstacles. Python
Data
was selected as the programming language for Case A as it can
be easily installed on Windows, Mac and Linux computers and it
already includes IDLE as IDE. IDLE itself is easy-to-use and does
not throw everything to students at once, and it has a minimalist
and simple look, which replicates between the different
platforms, which suits CS1 where the students meet
programming code for the very first time.</p>
        <p>With Case B it was also thought how to give students the
suitable IDE with minimal work to be done. As Case B had also
GUI-programming and the JavaFX was chosen as the GUI-toolkit
it was decided to use NetBeans as the IDE as both JavaFX and
NetBeans were bundled together from the developers of Java.</p>
        <p>As web developing can be done with pretty much every tool
available, and the course required both backend and frontend
development, the Case C was a different scenario. The most
pressing issue was the server side system; how this should be
addressed in the university infrastructure, since the system had
to be usable by the students, while still retaining a certain level
of cyber security. In this case, the solution was to use a cloud
platform that enabled the option to run the student-generated
code without the need of installing web server, database and
various libraries. Additionally, some students decided to use their
own environments and followed guideline videos on how to
install the necessary packages to Linux or Mac.</p>
        <p>Case A and half of the Case B utilized VLE for the assignment
submission and grading, since the course had thousands of
student-submitted works. Since this VLE could not manage
graphical user interfaces, the second half of the Case B and Case
C applied the traditional teacher grading, but by allowing the
students to demonstrate their solutions with quick demonstration
at the exercise event, or by sending a video link explaining what
they had done. On latter implementations, a peer review
approach by other students was also applied.</p>
        <p>Teaching materials were provided for every case course. With
Case A this meant the programming manual, style guide and
Python installation manual with lecture examples and videos.
Case B had videos covering all the course topics, two written
manuals and code examples available in a git repository. Case C
had videos covering all the course topics, short manual
presenting the most important techniques and tools used in web
programming and code examples in a git repository.</p>
        <p>One of the usually overlooked hygiene factors is the exam.
When learning to program it is normal to ask students to write a
short program in the exam, yet when the exam is pen and paper,
it does not reflect to the real world where the students would
have compiler messages and manuals with them. To avoid this
issue Case B introduced online exam and Case C had no exam at
all, but an essay to show how students had learned their new
skills. In the end Case A also introduced an online exam for
programming as it would decrease the manpower needed to
grade all the exams.</p>
      </sec>
      <sec id="sec-9-2">
        <title>4.2.2 Changes done to the assignments weekly programming</title>
        <p>With all cases weekly programming assignments were
constructed so that they had usually 5 smaller tasks thus students
were able to gain 5 points from one week. With Case A example
solutions were provided and they were coded to show how style
guide help to build easy-to-read programming code.</p>
        <p>With all cases the number of weekly assignments were also
increased – though some tasks were divined into two smaller
tasks – thus students had to repeat the key structures and
concepts at least six times as suggested. Although one has to
note that techniques presented in the end of the course could not
be covered such many times.</p>
        <p>The BKT analysis was done with the program source codes
retrieved from the VLE database after the course, and the prior
programming knowledge of the students was estimated with an
initial survey in the beginning of the course. When the
programming assignments were developed in 2006 it was only
aimed at reasonable assignments, and only few programming
structures met the BKT analysis requirements. The overall
outcomes were up 10–20% on all measured categories.</p>
        <p>Other positive side of the increased number of assignments
was that average students did not need to do all the five tasks per
week, but students with advanced skills had more to do. The last
task is set to be the hardest one, so the students who were
interested in programming could get more challenge when they
wanted.</p>
        <p>Students focus on tasks that are beneficial to them, that is,
tasks giving points to them. All the case courses had previously
weekly exercises that were voluntary and there were no points
given from a successful solutions. When the case courses were
revised all of them shift to a model where students could get
points from all the work they do for the course and the final
grade was calculated from the points got from weekly
assignments, course projects, exam, and other parts of the course.
4.2.3</p>
      </sec>
      <sec id="sec-9-3">
        <title>Course project</title>
        <p>All of the cases have larger programming project in the end of
the course. The previous version of the Case A was taught with C
programming language and its course project was transformed to
the first implementation of Python course. The text-based project
was not seen up-to-date and it was then changed GUI-based
Turtlet programming project. Although it was supposed to be
motivating, students gave mixed feedback, similarly as observed
for example by [18]. Turtlet had limitations on the usefulness and
student creativity as well as maintenance problems, so a new
project was to developed for the course.</p>
        <p>With Python 3 the programming project used more
engineering approach. First theme on the project was to calculate
district heating systems. The project was approximately double
the size of the old Turtlet version, yet it did not yield complaints
more than the Turtlet. Nor was it completely success. The project
required a lot of precise mathematical calculation that the
students found hard to get right. The project was later moved to
work with temperatures, data files and generating svg-graphics.</p>
        <p>Case B had had various humorous – game-like – projects
when it was implemented with C++. The projects required to
understand the concepts of C++ but they did not reflect to real
problems or were not in an area, which would have been useful
experience for the future. When Case B was transformed to Java
the course project was also redesigned.</p>
        <p>The new project included parsing publicly available open data
sources and building a graphical user interface to visualize the
data on a map overlay. This gave students a feel of working with
the real-world problems, tools and data.</p>
        <p>With Case C the course project was not focusing on any
specific area. As the Case C is more advanced course than A or B,
it was decided to give students more creativity and responsibility
with the course project. There were elements that gave certain
amount of points and combining several elements students could
get the number of points they wanted to get certain grade. For
example creating responsive design gave 5, utilization of cache
gave 3 and front-controller design pattern gave 3 points.
4.2.4</p>
      </sec>
      <sec id="sec-9-4">
        <title>Lectures vs. flipped classroom</title>
        <p>The Case A provided video lectures from the beginning of
Python era. Students found the videos very useful. Also with
Case B video lectures were provided from the beginning of data
collection period. When Case B was revised it started to use
flipped classroom method. Similarly Case C was revised to
flipped classroom when data collection started with new
administrating lecturer.</p>
        <p>Both video lectures and flipped classroom seem to be suitable
when teaching programming. Students have given feedback on
how they value the opportunity to watch theory when they have
time and repeat it as many times they need.</p>
        <p>With flipped classroom, although the initial cost of creating
new course format is high it later gives more man power to be
used in classroom teaching then benefiting the students.
5</p>
      </sec>
    </sec>
    <sec id="sec-10">
      <title>DISCUSSION</title>
      <p>In the beginning two research questions where set: 1) when
should a programming course be revised? 2) what should be
taken into account when redesigning? Here the questions are
discussed based on the experience gained from three cases
described in the previous chapter.</p>
    </sec>
    <sec id="sec-11">
      <title>When should a programming course be 5.1 revised?</title>
      <p>The present study explored the reasons for initiating the
programming assignment revision and found four key reasons
for the revision:</p>
      <p>Problems with existing assignments. The students reported
different kind of defects in the assignments over a number of
years which indicated that there were problems with the
assignments. Collected data suggests that problems in the
programming assignments reduced the student motivation to
complete them, and thus such problems became the hygiene
problems in these courses. Thus, to avoid dissatisfaction –
hygiene problems – among the students, the programming
assignments should not pose undue problems for the students.</p>
      <sec id="sec-11-1">
        <title>Mismatch between the students and the assignments. Even</title>
        <p>though the assignments would not have any problems, the
students may not be motivated by them. Collected data suggests
that the students were concerned about the usefulness of the
assignments they had to complete and especially the game-like
project with graphical user interface (Case A) had been criticized
every year it was used. Thus, to keep the programming
assignments motivating for the students they should be aligned
with the student experiences and expectations as the student
body evolves. This observation is in line with the earlier work
from for example [3].</p>
        <p>Technological development. Programming languages and
tools develop quickly. With Case A the change from Python 2 to
3 required to check all the material and assignments in the
course. In Case B, where the programming language changed, all
the assignments needed to be redone. And web programming
(Case C) changes all the time so the revision of everything was a
mandatory task to be carried out at least once in five years.</p>
        <p>Pedagogical development. The teaching methods and tools
are improved all the time. Where PowerPoint slides came in the
90s, this millennium has given video lectures and flipped
classroom. Teachers need to match the new ways of studying
and thus courses need to be revised also from pedagogical point
of view. The traditional lecture-exercise-exam model can be
replaced with modern ways where students get more individual
time from teachers. With Case A video lectures where provided
all the time with Python course and with Case B and C the
transition to flipped classroom was carried out when courses
where revised. Both the video lectures and flipped classroom
method generated praises from students.</p>
      </sec>
    </sec>
    <sec id="sec-12">
      <title>5.2 What should be taken into account when redesigning?</title>
      <p>The response to the second research question of what should be
taken into account in the redesign is twofold. The problems
leading to the revision should, of course, be fixed but a revision
provides also an opportunity to improve the course. In the
present study the revisions made it possible to assure that the
assignments were fit estimating the learning outcomes of the
course with the BKT algorithm. Overall the following design
principles for programming assignment revision can be pointed:
• Motivating assignments reflecting the real world
problems, useful for the studies as well as the future
careers and assignments as engineers
• Give an option to do more assignments when the topic
requires them
• Repeat all the main programming structures at least six
times in the weekly assignments to allow accurate
mapping of the learned topics with BKT or ACT-R
algorithm
• Follow both the technological development and
pedagogical development to be able to utilize
up-todate tools and methods
5.3</p>
    </sec>
    <sec id="sec-13">
      <title>Retrospective</title>
      <p>The reported modifications to the programming courses have
been made during the years 2005 – 2016. After few years of cool
down it can now be discussed what parts of improvements were
success and what parts still require work.</p>
      <p>With Case A the most difficult part has been developing a
programming project that would be easy enough for beginners
but would also let students to show their skills if one wants to.
This is an issue that has no real solutions, but it can be iterated
towards project that would have all the necessary parts required
and still be easy and useful.</p>
      <p>Case B failed in grading for the first implementation after
revision. Points were provided too easily and students got high
grades – although they did good work. Some example solutions
were also not perfect and issues arose when JavaFX required
special version of Java, which was not installed by default. These
hygiene factors were then hot-fixed, but would still require more
work to be done.</p>
      <p>The biggest issue with Case C is the number of tools and
techniques web development has. In the course dozen of different
techniques are introduced to students and then they do not have
enough time to repeat newly learned skills. This problem would
be solved by extending the course somehow or by splitting it into
two separated courses.</p>
      <p>With all the cases teachers are required to do a lot of grading.
With Case B it was changed so that students peer reviewed
programming project so that teachers could focus more on
teaching. This similar method could be considered also for Case
A and C.
5.4</p>
    </sec>
    <sec id="sec-14">
      <title>Limitations and validity of the study</title>
      <p>As this is a partly qualitative study, the observations presented
here are not strong, confirmatory results, but guidelines and
sophisticated suggestions on things that have been discussed in
this article [9]. Although we have triangulated the data against
quantitative data sources, this study is not free from possible bias
towards any direction that has been missed. Bias is addressed in
the following ways. We have followed the three principles of
data collection [25]: we have used multiple sources of evidence,
created a multicase study [19], and maintained a chain of
evidence. We have also triangulated our data from multiple
sources (e.g., student surveys and feedback, VLE program
database, and grading data), both authors have participated in
the analysis, we have used different theories, and we have used
both qualitative and quantitative methods to analyze the data.
6</p>
    </sec>
    <sec id="sec-15">
      <title>CONCLUSION</title>
      <p>This article presented three university level case courses, which
had all been revised and improved. When revising a course one
should note, for example, to follow the latest technical and
pedagogical tools and methods, make sure students repeat
learned tasks at least six times and motivate students with
reallife assignments.</p>
      <p>This is a latest wrap up of the on-going improvement of these
three courses. The shift from lecture room lectures to video
lectures and flipped classroom method has already widely begun,
but there is still much to do. For example, only Case A was a
mass course and only Cases B and C where flipped. In the future
it is required to study whether same methods can be used when
flipping a mass course.
7</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          <string-name>
            <given-names>J. R.</given-names>
            <surname>Anderson</surname>
          </string-name>
          and
          <string-name>
            <given-names>C.D.</given-names>
            <surname>Schunn</surname>
          </string-name>
          .
          <year>2000</year>
          .
          <article-title>Implications of the ACT-R Learning Theory: No Magic Bullets</article-title>
          .
          <source>Advances in instructional psychology 5.</source>
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          <string-name>
            <given-names>Ryan</given-names>
            <surname>Baker</surname>
          </string-name>
          ,
          <string-name>
            <surname>Albert</surname>
            <given-names>T.</given-names>
          </string-name>
          <string-name>
            <surname>Corbett</surname>
            , and
            <given-names>Vincent</given-names>
          </string-name>
          <string-name>
            <surname>Aleven</surname>
          </string-name>
          .
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          <string-name>
            <given-names>More</given-names>
            <surname>Accurate Student</surname>
          </string-name>
          <article-title>Modeling through Contextual Estimation of Slip and Guess Probabilities in Bayesian Knowledge Tracing</article-title>
          .
          <fpage>406</fpage>
          -
          <lpage>415</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          <string-name>
            <given-names>Tiffany</given-names>
            <surname>Barnes</surname>
          </string-name>
          , Eve Powell, Amanda Chaffin, and
          <string-name>
            <given-names>Heather</given-names>
            <surname>Lipford</surname>
          </string-name>
          .
          <year>2008</year>
          .
          <article-title>Game2Learn: improving the motivation of CS1 students</article-title>
          .
          <source>In Proceedings of the 3rd international conference on Game development in computer science education</source>
          , 1-
          <fpage>5</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          <string-name>
            <given-names>Jacob</given-names>
            <surname>Lowell Bishop and Matthew</surname>
          </string-name>
          <string-name>
            <given-names>A.</given-names>
            <surname>Verleger</surname>
          </string-name>
          .
          <year>2013</year>
          .
          <article-title>The flipped classroom: A survey of the research</article-title>
          .
          <source>In ASEE National Conference Proceedings, Atlanta, GA.</source>
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          <string-name>
            <given-names>Janet</given-names>
            <surname>Carter</surname>
          </string-name>
          , Kirsti Ala-Mutka, Ursula Fuller, Martin Dick, John English,
          <string-name>
            <given-names>William</given-names>
            <surname>Fone</surname>
          </string-name>
          , and
          <string-name>
            <given-names>Judy</given-names>
            <surname>Sheard</surname>
          </string-name>
          .
          <year>2003</year>
          .
          <article-title>How shall we assess this? In Working group reports from ITiCSE on Innovation and technology in computer science education</article-title>
          ,
          <volume>107</volume>
          -
          <fpage>123</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          <string-name>
            <given-names>Cristina</given-names>
            <surname>Conati</surname>
          </string-name>
          , Abigail Gertner, and Kurt VanLehn.
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          <article-title>Using Bayesian Networks to Manage Uncertainty in Student Modeling. User Modeling and User-Adapted Interaction 12, 4</article-title>
          (November
          <year>2002</year>
          ),
          <fpage>371</fpage>
          -
          <lpage>417</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          DOI:https://doi.org/10.1023/A:1021258506583
          <string-name>
            <given-names>P.D.I.</given-names>
            <surname>Elrod</surname>
          </string-name>
          and
          <string-name>
            <given-names>D.D.</given-names>
            <surname>Tippett</surname>
          </string-name>
          .
          <year>2002</year>
          .
          <article-title>The “death valley” of change</article-title>
          .
          <source>Journal of Organizational Change Management</source>
          <volume>15</volume>
          ,
          <issue>3</issue>
          (
          <year>2002</year>
          ),
          <fpage>273</fpage>
          -
          <lpage>291</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          <string-name>
            <given-names>Kevin A.</given-names>
            <surname>Gluck</surname>
          </string-name>
          .
          <year>2004</year>
          .
          <article-title>Knowledge Tracing for Complex Training Applications: Beyond Bayesian Mastery Estimates</article-title>
          .
          <fpage>383</fpage>
          -
          <lpage>384</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          <string-name>
            <given-names>Nahid</given-names>
            <surname>Golafshani</surname>
          </string-name>
          .
          <year>2003</year>
          .
          <article-title>Understanding Reliability and Validity in Qualitative Research</article-title>
          .
          <source>The Qualitative Report 8</source>
          ,
          <issue>4</issue>
          (
          <year>2003</year>
          ),
          <fpage>597</fpage>
          -
          <lpage>606</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          <string-name>
            <given-names>Stuart</given-names>
            <surname>Hansen</surname>
          </string-name>
          and
          <string-name>
            <given-names>Erica</given-names>
            <surname>Eddy</surname>
          </string-name>
          .
          <year>2007</year>
          .
          <article-title>Engagement and frustration in programming projects</article-title>
          .
          <source>In Proceedings of the 38th SIGCSE technical symposium on Computer science education</source>
          ,
          <volume>271</volume>
          -
          <fpage>275</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          <string-name>
            <given-names>Frederick</given-names>
            <surname>Herzberg</surname>
          </string-name>
          .
          <year>1968</year>
          .
          <article-title>One more time: How do you motivate employees?</article-title>
          <source>Harvard Business Review</source>
          <volume>46</volume>
          ,
          <issue>1</issue>
          (
          <year>1968</year>
          ),
          <fpage>53</fpage>
          -
          <lpage>62</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          <string-name>
            <given-names>Diane</given-names>
            <surname>Horton</surname>
          </string-name>
          and
          <string-name>
            <given-names>Michelle</given-names>
            <surname>Craig</surname>
          </string-name>
          .
          <year>2015</year>
          . Drop, Fail, Pass, Continue:
          <article-title>Persistence in CS1 and Beyond in Traditional and Inverted Delivery</article-title>
          .
          <source>In Proceedings of the 46th ACM Technical Symposium on Computer Science Education (SIGCSE '15)</source>
          ,
          <fpage>235</fpage>
          -
          <lpage>240</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          DOI:https://doi.org/10.1145/2676723.2677273 [13] [14
          <source>] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] Jussi Kasurinen and Uolevi Nikula</source>
          .
          <year>2007</year>
          .
          <article-title>Revising the First Programming Course - The Second Round</article-title>
          .
          <fpage>92</fpage>
          -
          <lpage>101</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          <string-name>
            <given-names>Jussi</given-names>
            <surname>Kasurinen</surname>
          </string-name>
          and
          <string-name>
            <given-names>Uolevi</given-names>
            <surname>Nikula</surname>
          </string-name>
          .
          <year>2009</year>
          .
          <article-title>Estimating programming knowledge with Bayesian knowledge tracing</article-title>
          .
          <source>In Proceedings of the 14th annual ACM SIGCSE conference on Innovation and technology in computer science education</source>
          ,
          <volume>313</volume>
          -
          <fpage>317</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          <string-name>
            <given-names>Jussi</given-names>
            <surname>Kasurinen</surname>
          </string-name>
          , Mika Purmonen, and
          <string-name>
            <given-names>Uolevi</given-names>
            <surname>Nikula</surname>
          </string-name>
          .
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          <string-name>
            <given-names>Mary</given-names>
            <surname>Lou</surname>
          </string-name>
          <string-name>
            <surname>Maher</surname>
          </string-name>
          , Celine Latulipe, Heather Lipford, and
          <string-name>
            <given-names>Audrey</given-names>
            <surname>Rorrer</surname>
          </string-name>
          .
          <year>2015</year>
          .
          <article-title>Flipped Classroom Strategies for CS Education</article-title>
          .
          <source>In Proceedings of the 46th ACM Technical Symposium on Computer Science Education (SIGCSE '15)</source>
          ,
          <fpage>218</fpage>
          -
          <lpage>223</lpage>
          . DOI:https://doi.org/10.1145/2676723.2677252 S.T. March and
          <string-name>
            <given-names>G.F.</given-names>
            <surname>Smith</surname>
          </string-name>
          .
          <source>1995. Design and Natural Science Research on Information Technology. Decision Support Systems</source>
          <volume>15</volume>
          ,
          <issue>4</issue>
          (
          <year>1995</year>
          ),
          <fpage>251</fpage>
          -
          <lpage>266</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          <string-name>
            <given-names>William</given-names>
            <surname>Isaac McWhorter and Brian C. O'Connor</surname>
          </string-name>
          .
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          <string-name>
            <surname>Do</surname>
            <given-names>LEGO</given-names>
          </string-name>
          ®
          <article-title>Mindstorms® motivate students in CS1? SIGCSE Bull</article-title>
          .
          <volume>41</volume>
          ,
          <issue>1</issue>
          (
          <year>2009</year>
          ),
          <fpage>438</fpage>
          -
          <lpage>442</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          <string-name>
            <surname>Christine</surname>
            <given-names>B.</given-names>
          </string-name>
          <string-name>
            <surname>Meyer</surname>
          </string-name>
          .
          <year>2001</year>
          .
          <article-title>A Case in Case Study Methodology</article-title>
          .
          <source>Field Methods 13</source>
          ,
          <issue>4</issue>
          (November
          <year>2001</year>
          ),
          <fpage>329</fpage>
          -
          <lpage>352</lpage>
          . DOI:https://doi.org/10.1177/1525822X0101300402 Keir Mierle, Kevin Laven, Sam Roweis, and Greg Wilson.
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          2005.
          <article-title>Mining student CVS repositories for performance indicators</article-title>
          .
          <source>In Proceedings of the 2005 international workshop on Mining software repositories</source>
          , 1-
          <fpage>5</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          <string-name>
            <given-names>Matthew</given-names>
            <surname>Mitchell</surname>
          </string-name>
          , Judy Sheard, and
          <string-name>
            <given-names>Selby</given-names>
            <surname>Markham</surname>
          </string-name>
          .
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          <article-title>Student motivation and positive impressions of computing subjects</article-title>
          .
          <source>In Proceedings of the Australasian conference on Computing education</source>
          ,
          <fpage>189</fpage>
          -
          <lpage>194</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          Ma. Mercedes T. Rodrigo and
          <string-name>
            <surname>Ryan S.J.d</surname>
          </string-name>
          . Baker.
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          <article-title>Coarse-grained detection of student frustration in an introductory programming course</article-title>
          .
          <source>In Proceedings of the fifth international workshop on Computing education research workshop</source>
          , 75-
          <fpage>80</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          <string-name>
            <given-names>B</given-names>
            <surname>Simon</surname>
            , R Lister
          </string-name>
          , and
          <string-name>
            <given-names>S</given-names>
            <surname>Fincher</surname>
          </string-name>
          .
          <year>2006</year>
          .
          <article-title>Multi-Institutional Computer Science Education Research: A Review of Recent Studies of Novice Understanding</article-title>
          .
          <fpage>12</fpage>
          -
          <lpage>17</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          <string-name>
            <given-names>Alan L.</given-names>
            <surname>Tharp</surname>
          </string-name>
          .
          <year>1981</year>
          .
          <article-title>Getting more oomph from programming exercises</article-title>
          .
          <source>In Proceedings of the twelfth SIGCSE technical symposium on Computer science education</source>
          ,
          <volume>91</volume>
          -
          <fpage>95</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          <string-name>
            <given-names>R.K.</given-names>
            <surname>Yin</surname>
          </string-name>
          .
          <year>2002</year>
          .
          <article-title>Case Study Research: Design and Methods (3rd edition ed</article-title>
          .).
          <source>SAGE Publications</source>
          ., Thousand Oaks, CA.
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>