Hundhausen et al. (2013) that peer review helps the
students’ critical thinking skills. At the same time, C.
Kulkarni et al. (2013) and K. Reily et al. (2009)
demonstrated that peer-review can also greatly
alleviate the grading process by producing feedback
or grades for large courses.
However, we decided to not use peer-review as an
evaluation method on its own. This is due to multiple,
inherent flaws of this method. As shown by H.
Hämäläinen et al. (2011), peer-review is complex to
implement as it necessitates a lot of back and forth
between the students and teachers. This system can,
and will increase the organizational complexity of the
course, and with it, will generate more questions and
needs for help from the students, thus increasing the
time spent by the teacher answering questions and
helping students. In addition, peer-review is a system
that significantly increases the student's workload,
which is not desired in our case. Another flaw showed
in the article is the huge difference between the grades
attributed by the teachers and the students. Even with
a small number of grades, no student gave a low grade
to another student.
The authors indicated that these results were the
consequence of an evaluation pattern not complex
and well-defined enough to ensure a more accurate
evaluation by the students. We can conclude that this
issue could be resolved with more preparation in the
evaluation criteria, or by only doing a pass/fail kind
of grade.
In conclusion, while these problems are not
insurmountable in themselves, they are big enough to
discourage us to use peer review as a standalone
system. The limitations in terms of grade reliability
and of complexity and time requirements, points us to
the conclusion that, in our case, peer review would be
best used as a tool in addition to another system, but
not as a core component.
2.2 Pair Programming
Pair programming is a method commonly used in the
industry and education alike. In the education it has
already been proven to drastically help the students in
multiple ways. C. McDowell et al. (2003) and C.
McDowell et al. (2002) both noted that it gives them
more confidence in their capabilities and in their code
while making them learn faster and better. Pair
programming could provide the teacher with a big
gain in time, as, in theory, the number of codes to
evaluate is divided by two.
In their article, L. Williams et al. (2001) offer a
perspective from the one implementing such a
method and discuss the different aspects pair-
programming has to offer.
This article is one of the very few found that helps
us understanding the advantages and disadvantages of
pair-programming from the point of view of the
teacher. In our case, this article shows us some
concrete evidence of pair-programming being a
realistic solution to alleviate the evaluation process
for the teacher. For example, multiple aspects
demonstrates that even if the student may take a little
more time to finish an exercise, the teacher will
significantly gain from this, by spending less time
grading and answering questions. But in a pair-
programming system, the student will be the biggest
winner, as they will gain confidence in their own
capabilities and will learn faster and better through
communication with their peers.
The last paragraph is especially valuable to us, as
it specifies multiple benefits that are exclusive to
teachers. Like the reduced number of cheating cases,
or the reduced number of “partner problems”
observed in comparison to other group methods.
However, pair-programming possess an obvious
shortcoming that could discourage a lot of teachers.
This being the fact that when pair-programming is
used on a class, technically, not every student is
evaluated the same. The fact is that when evaluating
a shared solution, it is almost impossible to know if
both the students contributed the same amount of
work.
In conclusion, pair-programming, while still
having an “operational cost” higher than the
traditional teaching methods, could be abstracted
from the teacher easily through a simple automatic
pairing of the students. It also provides better ways to
control the evaluation process, since only the amount
of evaluation will change but not the process. While
not the focus of this work, the students’ gains (better
confidence, better learning through their peers, etc…)
will indirectly benefit the teacher.
2.3 Code Metrics
Code metrics have a high helping potential for the
teachers. If properly implemented, they can help the
teacher determine more easily which concepts or
subject a class/group of students have trouble with or
is misunderstood as shown by J. Pantiuchina et al.
(2018). However, as shown by both P. Koyya et al.
(2013) and L. H. Rosenberg et al. (1997), most
metrics are designed to test advanced concepts and be
implemented in complex environments.
In their article, C. Boja et al. (2017) propose both
an architecture for a code evaluation platform and a