UTILISING PAIR PROGRAMMING TO ENHANCE THE PERFORMANCE
OF SLOW-PACED STUDENTS ON INTRODUCTORY PROGRAMMING
Faculty of Information Technology, Maranatha Christian University (Indonesia)
Received January 2019
Accepted March 2019
Abstract
Due to its high failure rate, Introductory Programming has become a main concern. One of the main issues is the incapability of slow-paced students to cope up with given programming materials. This paper proposes a learning technique which utilises pair programming to help slow-paced students on Introductory Programming; each slow-paced student is paired with a fast-paced student and the latter is encouraged to teach the former as a part of grading system. An evaluation regarding that technique has been conducted on three undergraduate classes from an Indonesian university for the second semester of 2018. According to the evaluation, the use of pair programming may help both slow-paced and fast-paced students. Nevertheless, it may not significantly affect individual academic performance.
Keywords – Pair programming, Introductory programming, Slow-paced students, Quasi experiment, Computing education.
To cite this article:
Ayub, M., Karnalim, O., Risal, R., Senjaya, W.F., Wijanto, M.C. (2019). Utilising pair programming to enhance the performance of slow-paced students on introductory programming. Journal of Technology and Science Education, 9(3), 357-367. https://doi.org/10.3926/jotse.638 |
----------
-
-
1. Introduction
-
Introductory Programming has become a main concern in Computing education due to its high failure rate (Vihavainen, Airaksinen & Watson, 2014). As a result, many teaching interventions have been proposed such as encouraging collaboration (Lasserre & Szostak, 2011), bootstrapping the materials (Mullins, Whitfield & Conlon, 2009), or contextualizing the materials with interactive media (Elvina, Karnalim, Ayub & Wijanto, 2018; Karnalim & Ayub, 2018).
Pair programming is a collaboration technique where two programmers work together to solve a particular task (Beck & Gamma, 2000). One of them acts as the driver –who has a control of the shared resources (e.g., the computer, mouse, and keyboard)– whereas other acts as the navigator or observer, whose main responsibilities are to provide advices and find errors. During the completion process, the programmers’ roles are typically switched after a certain period of time (Williams & Kessler, 2003). According to (Livermore, 2006), this technique –which is originally a part of extreme programming (Hannay, Dybå, Arisholm & Sjøberg, 2009)– has been applied on 72% of industry organisations.
There are a lot of research about pair programming as a pedagogical tool (Salleh, Mendes & Grundy, 2011). Kavitha and Ahmed (2015) evaluated the impact of pair programming on master students. Their findings suggest that pair programming may be useful for knowledge sharing.
Braught, Eby and, Wahls (2008) shows that pair programming improves paired students’ individual programming skills. Further, it boosts the students’ confidence about their work. In addition, they are more likely to succeed on the course.
Hannay et al. (2009) performed a meta-analysis on comparing pair programming with solo programming. The study depicted that the former is faster than the latter when the task is simple. Further, the former yields higher code quality when the task is complicated.
Saltz and Shamshurin (2017) applied pair programming on data science context. They found that pair programming can also be used in that context where the driver is a software programmer and the observer is a data science researcher.
Salleh, Mendes and Grundy (2014) investigated the impact of personality traits based on five empirical studies with a total of 594 undergraduate students. They were focused on three of five-factor personality framework: Conscientiousness, Neuroticism, and Openness. According to their study, only the last factor affects significantly in terms of resulted academic performance.
Gómez, Aguileta, Aguilar, Ucan, Rosero and Cortes-Verdin, (2017) evaluated the impact of programming workspace on pair programming. They found that, in the context of pair programming, the use of programming workspace is better to be avoided.
Lewis and Shah (2015) showed that pair programming teams with incomparable members tend to complete given task quickly due to the domination of a member. The finding is determined based on audio records while the students do pair programming.
Villamor and Rodrigo (2018) conducted a dual eye tracking on paired novice students with Cross‑Recurrence Quantification Analysis (CRQA). They found that CRQA alone is not adequate to predict the successful collaboration on pair programming.
In computing education, pair programming can become a collaboration-based teaching intervention; two students collaboratively solve a particular programming assessment (Salleh et al., 2011). It may lead to several benefits such as improving the quality of works (Williams & Kessler, 2000), increasing course completion rate (Nagappan, Williams, Ferzli, Wiebe, Yang, Miller et al., 2003), and boosting up enjoyment (Mendes, Al-Fakhri & Luxton-Reilly, 2005) & confidence level (Berenson, Slaten, Williams & Ho, 2004).
Pair programming can also be used to help slow-paced students by pairing each of them with a fast-paced student and encouraging the latter to teach the former as a part of grading system. Even though it may seem to be demanding for the fast-paced one, it actually benefits them. They will gain more knowledge since, each time they teach, they re-learn the material. To our knowledge, no works have applied pair programming in such manner.
This paper reports an experiment about applying pair programming to help slow-paced students. It was conducted on three Introductory Programming classes for one semester (with 13 teaching weeks). In total, fifty-seven computing undergraduates from an Indonesian university are involved.
2. Methodology
Applying pair programming with the aim to help slow-paced students can be conducted in fourfold. At first, the students will be classified to two groups –fast-paced and slow-paced students– based on their academic performance. The academic performance can be defined either from previously-taken courses or academic levels. All students are ranked based on their academic performance; the top-half of the list is considered as the fast-paced students while the counterpart is considered as the slow-paced students.
Secondly, each Slow-paced Student (S-Stud) is paired with a Fast-paced Student (F-Stud). To balance the proportion of each pair, F-Stud with top-K highest academic performance will be paired with a S-Stud with top-K lowest performance. For instance, if a student is ranked as the 3rd based on their academic performance, they will be paired with a student whose rank is the 3rd from the bottom of the list. It is important to note that the balancing mechanism assures that all pairs will have the same degree of academic skill to complete given assessment.
Thirdly, resulted pairs are asked to complete an assessment as a group. Unique to this pair programming, we let the pairs to use two computers each. S-Stud may need it to read given assessment problems, practise to rewrite the solution, or observe some parts of the solution. During the assessment, if F-Stud acts as the observer, S-Stud can learn through transferring F-Stud’ knowledge to the computer. Otherwise, S-Stud can learn through observing how F-Stud solves the problem.
Fourthly, at the end of assessment, N S-Studs will be selected randomly from the pairs where N is defined based on lecturer’ preference. Each S-Stud will be asked to explain some (or all) parts of their pair’s solution. Their explanation will be scored, and that score will affect their final score and their fast-paced student’s final score for that assessment. The worse their explanation is, the lower the final score will be. This step is required to assure that the fast-paced student will try to teach their counterpart about the solution.
In our case, the last step is aligned to our Introductory Programming course where each assessment has five programming tasks. Four S-Studs will be selected randomly to explain the first four programming tasks; one S-Stud is dedicated for one task. The last task is excluded since it is commonly the most difficult task, dedicated for students with outstanding logic. Each selected S-Stud will be asked to explain their pair’s solution of a task. If they cannot explain it comprehensively, the final score for that student and their fast-paced student will be reduced up to 50%. To assure that the S-Stud does not memorise the solution’s explanation, the lecturer usually asks one or two questions related to their code.
3. Evaluation
For evaluation, two main research questions are proposed. First, does pair programming enhance the academic performance of slow-paced students? Second, does pair programming enhance the individual academic performance of slow-paced students? These questions are referred as Q1 and Q2 respectively.
Three supplementary research questions related to pair programming are also proposed. First, does pair programming enhance students’ academic performance in general? Second, does pair programming enhance students’ individual academic performance in general? Third, does pair programming enhance the academic performance of fast-paced students? These questions are referred as Q3, Q4, Q5 respectively.
3.1. Evaluation Scenario
To answer the aforementioned research questions, an evaluation scenario involving three Introductory Programming classes (referred as A, B, and C respectively) were conducted on the second semester of 2018. It involves two learning techniques –pair and solo programming– which were conducted alternately in most occasions. Solo programming refers to an activity completing a programming assessment individually. It is commonly used in many Introductory Programming classes.
Table 1 shows the distribution of pair and solo programming for the Introductory Programming classes. All of them were conducted on in-class laboratory sessions where internet and removable disk were not accessible. Due to implementation issues, several adjacent sessions have the same learning technique and a class has fewer number of sessions.
Teaching Week |
Class A |
Class B |
Class C |
1st week |
Solo |
Solo |
Solo |
2nd week |
Solo |
Pair |
Pair |
3rd week |
Pair |
Solo |
Solo |
4th week |
Solo |
Pair |
Pair |
5th week |
Pair |
Solo |
Solo |
6th week |
Solo |
Pair |
Pair |
7th week |
Pair |
Solo |
Solo |
8th week |
Solo |
Pair |
Pair |
9th week |
Pair |
Pair |
Pair |
10th week |
Solo |
Solo |
Solo |
11th week |
Solo |
Solo |
Solo |
12th week |
Pair |
Pair |
Pair |
13th week |
– |
Solo |
Solo |
Table 1. Pair and Solo Programming Session Distribution
Teaching Week |
Teaching Materials |
1st week |
Introduction to Programming Workspace |
2nd week |
Sequential Actions |
3rd week |
Branching |
4th week |
Nested Branching |
5th week |
Looping |
6th week |
Nested Looping |
7th week |
Review |
Mid-Test |
– |
8th week |
Void Function |
9th week |
Function with a Return Value |
10th week |
Array |
11th week |
Array Combined with Function |
12th week |
Matrix |
13th week |
Searching and Sorting |
Final Test |
– |
Table 2. Teaching Materials
For each pair programming session, the students were divided to two groups: slow-paced and fast-paced students. Both groups were based on the students’ scores on previous solo programming session. The scores were sorted in descending order where students whose score is on the top-half would be considered as fast-paced students and remaining students would be considered as the slow-paced ones.
All classes followed the same teaching roadmap (which materials can be seen on Table 2). The first seven weeks were conducted prior mid-test while the remaining weeks were conducted upon mid-test.
Each week, the students should complete five programming tasks in 150 minutes with Python as its programming language and PyCharm as its programming workspace. In terms of difficulty, the first two tasks are the most basic ones. They were only about implementing given weekly material. The following two tasks were the intermediate ones, which could be completed by applying a little logic on given material. The last task was the most advanced one. It could only be completed with outstanding logic.
The statistics of each class can be seen on Table 3. Several students were out of consideration since their course participation was less than 75%. We would argue that those students’ performance may obfuscate the impact of pair programming as they did not participate in most teaching sessions.
Feature |
Class A |
Class B |
Class C |
The Number of Included Students |
18 |
25 |
14 |
The Number of Excluded Students |
5 |
2 |
2 |
The Total Number of Students |
23 |
27 |
16 |
Table 3. The Statistics of Introductory Programming Classes
In this study, three research questions (Q1, Q2 and Q5) require only a particular group of students (either slow-paced or fast-paced students). For that purpose, we define the slow-paced students as those whose average assessment score (for all teaching weeks) is at bottom-half rank list while the fast-paced ones as those whose score is at top-half rank list.
3.2. Q1: Does Pair Programming Enhance the Academic Performance of Slow-Paced Students?
To evaluate whether pair programming enhances the academic performance of slow-paced students, the students’ score for each pair programming session will be compared with their score on previous solo programming session. The detail of all comparisons can be seen on Table 4. There are seventeen comparisons taken from three Introductory Programming classes.
Comparison ID |
Class |
Pair Programming Week |
Solo Programming Week |
CR101 |
A |
3rd week |
2nd week |
CR102 |
A |
5th week |
4th week |
CR103 |
A |
7th week |
6th week |
CR104 |
A |
9th week |
8th week |
CR105 |
A |
12th week |
10th week |
CR106 |
B |
2nd week |
1st week |
CR107 |
B |
4th week |
3rd week |
CR108 |
B |
6th week |
5th week |
CR109 |
B |
8th week |
7th week |
CR110 |
B |
9th week |
7th week |
CR111 |
B |
12th week |
11th week |
CR112 |
C |
2nd week |
1st week |
CR113 |
C |
4th week |
3rd week |
CR114 |
C |
6th week |
5th week |
CR115 |
C |
8th week |
7th week |
CR116 |
C |
9th week |
7th week |
CR117 |
C |
12th week |
11th week |
Table 4. Comparisons for Evaluating the Impact of Pair Programming
on the Academic Performance of Slow-Paced Students
A pair programming session is considered effective to help slow-paced students if the students’ scores are improved and the improvement is statistically significant. The significance is measured with t-test when the scores are normally distributed (with mean as its determiner). Otherwise, Wilcoxon Signed Rank will be used. All tests are based on 95% confidence level where p-value is considered significant if its score is lower or equal to 0.05.
The result can be seen on Table 5. The bolded p-values are those which are statistically significant. Six comparisons show statistically significant result where all of them correspond to positive improvement. Hence, it can be stated that pair programming may enhance the academic performance of slow-paced students. In average, by considering only statistically significant improvements, it boosts up by 20.34 points.
Comparison ID |
Pair Programming Mean Score |
Solo Programming Mean Score |
Significance Test |
P-Value |
Improvement |
CR101 |
87.56 |
98.44 |
Wilcoxon |
0.813 |
-10.89 |
CR102 |
95.89 |
88.22 |
t-test |
0.001 |
7.67 |
CR103 |
100.00 |
81.89 |
t-test |
0.117 |
18.11 |
CR104 |
99.78 |
88.00 |
Wilcoxon |
0.250 |
11.78 |
CR105 |
99.78 |
66.67 |
Wilcoxon |
0.125 |
33.11 |
CR106 |
93.58 |
86.00 |
t-test |
0.178 |
7.58 |
CR107 |
90.50 |
79.83 |
Wilcoxon |
0.004 |
10.67 |
CR108 |
89.17 |
80.17 |
t-test |
0.139 |
9.00 |
CR109 |
67.67 |
46.67 |
t-test |
0.130 |
21.00 |
CR110 |
90.82 |
46.67 |
t-test |
0.025 |
44.15 |
CR111 |
75.04 |
80.58 |
t-test |
0.194 |
-5.54 |
CR112 |
95.00 |
93.00 |
t-test |
0.733 |
2.00 |
CR113 |
96.14 |
90.14 |
t-test |
0.018 |
6.00 |
CR114 |
89.71 |
90.14 |
t-test |
0.901 |
-0.43 |
CR115 |
82.00 |
63.00 |
t-test |
0.012 |
19.00 |
CR116 |
97.57 |
63.00 |
t-test |
0.001 |
34.57 |
CR117 |
75.00 |
59.43 |
t-test |
0.457 |
15.57 |
Table 5. The Improvements Gained by Utilising Pair Programming for Slow-Paced Students
3.3. Q2: Does Pair Programming Enhance the Individual Academic Performance of Slow-Paced Students?
To evaluate whether pair programming enhances the individual academic performance of slow-paced students, for each pair programming session, the students’ score on its previous solo programming session will be compared with their score on the next solo programming session. The detail of all comparisons can be seen on Table 6. Fourteen comparisons are considered.
A pair programming session is considered effective to enhance the individual performance of slow-paced students if the students’ score upon pair programming is higher than their score prior pair programming and the improvement is statistically significant. Similar with previous evaluation, the significance is measured with t-test when the scores are normally distributed and Wilcoxon Signed Rank if the scores are not normally distributed. Both tests are based on 95% confidence level.
The result can be seen on Table 7. The bolded p-values are those which are statistically significant. Six comparisons yield statistically significant result. However, only two of them show positive improvement. It may be caused by the increasing difficulty of teaching materials where the next solo programming session was commonly conducted two weeks after the previous solo programming session. Another possible cause is that several slow-paced students were not able to take advantages from their pair programming session.
Comparison ID |
Class |
Next Solo Programming Week |
Previous Solo Programming Week |
CR201 |
A |
4th week |
2nd week |
CR202 |
A |
6th Week |
4th week |
CR203 |
A |
8th Week |
6th week |
CR204 |
A |
10th Week |
8th week |
CR205 |
B |
3rd Week |
1st week |
CR206 |
B |
5th Week |
3rd week |
CR207 |
B |
7th Week |
5th week |
CR208 |
B |
10th Week |
7th week |
CR209 |
B |
13th Week |
11th week |
CR210 |
C |
3rd Week |
1st week |
CR211 |
C |
5th Week |
3rd week |
CR212 |
C |
7th Week |
5th week |
CR213 |
C |
10th Week |
7th week |
CR214 |
C |
13th Week |
11th week |
Table 6. Comparisons for Evaluating the Individual Impact of Pair Programming on the Academic Performance of Slow-Paced Students
Comparison ID |
Next Solo Programming Mean Score |
Previous Solo Programming Mean Score |
Significance Test |
P-Value |
Improvement |
CR201 |
88.22 |
98.44 |
t-test |
0.001 |
-10.22 |
CR202 |
81.89 |
88.22 |
t-test |
0.559 |
-6.33 |
CR203 |
88.00 |
81.89 |
Wilcoxon |
0.047 |
6.11 |
CR204 |
66.67 |
88.00 |
Wilcoxon |
0.125 |
-21.33 |
CR205 |
79.83 |
86.00 |
t-test |
0.096 |
-6.17 |
CR206 |
80.17 |
79.83 |
t-test |
0.970 |
0.33 |
CR207 |
46.67 |
80.17 |
t-test |
0.013 |
-33.50 |
CR208 |
68.55 |
46.67 |
t-test |
0.210 |
21.88 |
CR209 |
71.50 |
80.58 |
t-test |
0.029 |
-9.08 |
CR210 |
90.14 |
93.00 |
t-test |
0.297 |
-2.86 |
CR211 |
90.14 |
90.14 |
t-test |
1.000 |
0.00 |
CR212 |
63.00 |
90.14 |
t-test |
0.001 |
-27.14 |
CR213 |
79.29 |
63.00 |
t-test |
0.023 |
16.29 |
CR214 |
48.71 |
59.43 |
t-test |
0.526 |
-10.71 |
Table 7. The Individual Improvements Gained by Utilising Pair Programming for Slow-Paced Students
3.4. Q3: Does Pair Programming Enhance Students’ Academic Performance in General?
To evaluate whether pair programming enhances students’ academic performance in general, each pair programming session’s score will be paired with their previous solo programming session’s. It results in 17 comparisons (listed on Table 4) with both slow-paced and fast-paced students are considered. The effectiveness of pair programming is measured based on statistical significance test; t-test is used for normal distribution. Otherwise, Wilcoxon Signed Rank will be used. All of them are calculated under 95% confidence level.
The result can be seen on Table 8. The bolded p-values are those which are statistically significant. Eight of nine statistically significant results are positive. It can be therefore stated that pair programming may positively affect the students’ academic performance. By averaging only statistically significant results, it boosts up by 11.61 points.
Comparison ID |
Pair Programming Mean Score |
Solo Programming Mean Score |
Significance Test |
P-Value |
Improvement |
CR101 |
93.56 |
98.22 |
Wilcoxon |
0.993 |
-4.67 |
CR102 |
97.30 |
93.44 |
t-test |
0.016 |
3.86 |
CR103 |
100.00 |
87.94 |
Wilcoxon |
0.001 |
12.06 |
CR104 |
99.78 |
93.33 |
Wilcoxon |
0.188 |
6.44 |
CR105 |
99.78 |
83.33 |
Wilcoxon |
0.188 |
16.44 |
CR106 |
93.35 |
88.65 |
Wilcoxon |
0.062 |
4.70 |
CR107 |
94.52 |
86.26 |
Wilcoxon |
0.002 |
8.26 |
CR108 |
89.96 |
84.39 |
t-test |
0.107 |
5.57 |
CR109 |
72.74 |
63.43 |
t-test |
0.221 |
9.30 |
CR110 |
93.23 |
63.43 |
Wilcoxon |
0.002 |
29.79 |
CR111 |
77.80 |
86.13 |
t-test |
0.002 |
-8.33 |
CR112 |
96.86 |
94.29 |
Wilcoxon |
0.117 |
2.57 |
CR113 |
97.36 |
84.36 |
Wilcoxon |
0.003 |
13.00 |
CR114 |
83.29 |
93.43 |
Wilcoxon |
0.079 |
-10.14 |
CR115 |
82.57 |
71.07 |
t-test |
0.015 |
11.50 |
CR116 |
96.71 |
71.07 |
t-test |
0.001 |
25.64 |
CR117 |
82.21 |
73.50 |
Wilcoxon |
0.030 |
8.71 |
Table 8. The Improvements Gained by Utilising Pair Programming in General
3.5. Q4: Does Pair Programming Enhance Students’ Individual Academic Performance in General?
To evaluate whether pair programming enhances students’ individual academic performance in general, for each pair programming session, the students’ score on its previous and next solo programming session will be compared to each other. It results in 14 comparisons displayed on Table 6 with both slow-paced and fast-paced students are considered. Pair programming’s effectiveness is defined using statistical significance test –t-test for normal distribution and Wilcoxon Signed Rank for unnormal distribution– with 95% confidence level.
The result can be seen on Table 9. The bolded p-values are those which are statistically significant. Only two of six statistically significant results are positive. It may be caused by two possible reasons: the increasing difficulty on the next solo programming session and the incapability to benefit from pair programming.
Comparison ID |
Next Solo Programming Mean Score |
Previous Solo Programming Mean Score |
Significance Test |
P-Value |
Improvement |
CR201 |
93.44 |
98.22 |
t-test |
0.009 |
-4.78 |
CR202 |
87.94 |
93.44 |
Wilcoxon |
0.358 |
-5.50 |
CR203 |
93.33 |
87.94 |
Wilcoxon |
0.006 |
5.39 |
CR204 |
83.33 |
93.33 |
Wilcoxon |
0.063 |
-10.00 |
CR205 |
86.26 |
88.65 |
Wilcoxon |
0.513 |
-2.39 |
CR206 |
84.39 |
86.26 |
Wilcoxon |
0.235 |
-1.87 |
CR207 |
63.43 |
84.39 |
t-test |
0.004 |
-20.96 |
CR208 |
73.36 |
63.43 |
t-test |
0.335 |
9.93 |
CR209 |
77.52 |
86.13 |
t-test |
0.001 |
-8.61 |
CR210 |
84.36 |
94.29 |
Wilcoxon |
0.115 |
-9.93 |
CR211 |
93.43 |
84.36 |
Wilcoxon |
0.144 |
9.07 |
CR212 |
71.07 |
93.43 |
t-test |
0.001 |
-22.36 |
CR213 |
84.43 |
71.07 |
t-test |
0.002 |
13.36 |
CR214 |
63.43 |
73.50 |
t-test |
0.219 |
-10.07 |
Table 9. The Individual Improvements Gained by Utilising Pair Programming in General
3.6. Q5: Does Pair Programming Enhance the Academic Performance of Fast-Paced Students?
To evaluate whether pair programming enhances the academic performance of fast-paced students, each pair programming session’s score will be paired with their previous solo programming session’s. In total, it leads to 17 comparisons (as displayed on Table 4) with only fast-paced students are considered. The effectiveness of pair programming is defined using statistical significance test –t-test for normal distribution and Wilcoxon Signed Rank for unnormal distribution– with 95% confidence level.
The result can be seen on Table 10. The bolded p-values are those which are statistically significant. Four of five results are statistically significant and positive. It can be therefore stated that pair programming may help fast-paced students to get higher score. In average, by considering only statistically significant results, it increases these students’ score by 6.18 points.
Comparison ID |
Pair Programming Mean Score |
Solo Programming Mean Score |
Significance Test |
P-Value |
Improvement |
CR101 |
99.56 |
98.00 |
Wilcoxon |
0.125 |
1.56 |
CR102 |
98.71 |
98.67 |
Wilcoxon |
0.250 |
0.04 |
CR103 |
100.00 |
94.00 |
Wilcoxon |
0.004 |
6.00 |
CR104 |
99.78 |
98.67 |
Wilcoxon |
0.500 |
1.11 |
CR105 |
99.78 |
100.00 |
Wilcoxon |
1.000 |
-0.22 |
CR106 |
93.09 |
91.55 |
t-test |
0.394 |
1.55 |
CR107 |
98.91 |
93.27 |
Wilcoxon |
0.008 |
5.64 |
CR108 |
90.82 |
89.00 |
t-test |
0.570 |
1.82 |
CR109 |
78.27 |
81.73 |
t-test |
0.484 |
-3.45 |
CR110 |
95.64 |
81.73 |
t-test |
0.010 |
13.91 |
CR111 |
80.82 |
92.18 |
t-test |
0.001 |
-11.36 |
CR112 |
98.71 |
95.57 |
t-test |
0.251 |
3.14 |
CR113 |
98.57 |
78.57 |
t-test |
0.193 |
20.00 |
CR114 |
76.86 |
96.71 |
t-test |
0.189 |
-19.86 |
CR115 |
83.14 |
79.14 |
t-test |
0.465 |
4.00 |
CR116 |
95.86 |
79.14 |
t-test |
0.012 |
16.71 |
CR117 |
89.43 |
87.57 |
t-test |
0.627 |
1.86 |
Table 10. The Improvements Gained by Utilising Pair Programming for Fast-Paced Students
4. Conclusions
This paper proposes a learning technique that involves pair programming for helping slow-paced students on Introductory Programming. The technique has been applied on three classes (with fifty-seven computing undergraduates from an Indonesian university on board). According to our evaluation, the technique may help both slow-paced students and fast-paced students, even though the impact is more salient on the slow-paced ones. Despite its positive impact, pair programming may not affect the students’ individual academic performance due to the incapability to benefit from pair programming.
For future work, we plan to replicate this study on advanced courses (such as Object-Oriented Programming course) and check whether these results are consistent. Further, we also plan to propose another learning technique which are more focused on enhancing individual academic performance.
Declaration of Conflicting Interests
The authors declared no potential conflicts of interest with respect to the research, authorship, and/or publication of this article.
Funding
The authors received a financial support for the publication of this article from Maranatha Christian University, Indonesia.
References
Beck, K., & Gamma, E. (2000). Extreme programming eXplained : embrace change. Addison-Wesley.
Berenson, S.B., Slaten, K.M., Williams, L., & Ho, C.W. (2004). Voices of women in a software engineering course: reflections on collaboration. Journal on Educational Resources in Computing, 4(1), 3. https://doi.org/10.1145/1060071.1060074
Braught, G., Eby, L.M., & Wahls, T. (2008). The effects of pair-programming on individual programming skill. In Proceedings of the 39th SIGCSE technical symposium on Computer science education - SIGCSE ’08 (40, 200). New York, New York, USA: ACM Press. https://doi.org/10.1145/1352135.1352207
Elvina, E., Karnalim, O., Ayub, M., & Wijanto, M.C. (2018). Combining program visualization with programming workspace to assist students for completing programming laboratory task. Journal of Technology and Science Education, 8(4), 268. https://doi.org/10.3926/jotse.420
Gómez, O.S., Aguileta, A.A., Aguilar, R.A., Ucan, J.P., Rosero, R.H., & Cortes-Verdin, K. (2017). An Empirical Study on the Impact of an IDE Tool Support in the Pair and Solo Programming. IEEE Access, 5, 9175-9187. https://doi.org/10.1109/ACCESS.2017.2701339
Hannay, J.E., Dybå, T., Arisholm, E., & Sjøberg, D.I.K. (2009). The effectiveness of pair programming: A meta-analysis. Information and Software Technology, 51(7), 1110-1122. https://doi.org/10.1016/J.INFSOF.2009.02.001
Karnalim, O., & Ayub, M. (2018). A Quasi-Experimental Design to Evaluate the Use of PythonTutor on Programming Laboratory Session. International Journal of Online Engineering (IJOE), 14(02), 155-164.
Kavitha, R.K., & Ahmed, M.S.I. (2015). Knowledge sharing through pair programming in learning environments: An empirical study. Education and Information Technologies, 20(2), 319-333. https://doi.org/10.1007/s10639-013-9285-5
Lasserre, P., & Szostak, C. (2011). Effects of team-based learning on a CS1 course. In Proceedings of the 16th annual joint conference on Innovation and technology in computer science education - ITiCSE’11 (133). New York, New York, USA: ACM Press. https://doi.org/10.1145/1999747.1999787
Lewis, C.M., & Shah, N. (2015). How Equity and Inequity Can Emerge in Pair Programming. In Proceedings of the eleventh annual International Conference on International Computing Education Research - ICER’15 (41-50). New York, New York, USA: ACM Press. https://doi.org/10.1145/2787622.2787716
Livermore, J.A. (2006). What Elements of XP are being Adopted by Industry Practitioners? In Proceedings of the IEEE SoutheastCon 2006 (149-152). IEEE. https://doi.org/10.1109/second.2006.1629340
Mendes, E., Al-Fakhri, L.B., & Luxton-Reilly, A. (2005). Investigating pair-programming in a 2nd-year software development and design computer science course. ACM SIGCSE Bulletin, 37(3), 296-300. https://doi.org/10.1145/1067445.1067526
Mullins, P., Whitfield, D., & Conlon, M. (2009). Using Alice 2.0 as a first language. Journal of Computing Sciences in Colleges, 24(3), 136-143.
Nagappan, N., Williams, L., Ferzli, M., Wiebe, E., Yang, K., Miller, C. et al. (2003). Improving the CS1 experience with pair programming. ACM SIGCSE Bulletin, 35(1), 359-362. https://doi.org/10.1145/611892.612006
Salleh, N., Mendes, E., & Grundy, J. (2011). Empirical Studies of Pair Programming for CS/SE Teaching in Higher Education: A Systematic Literature Review. IEEE Transactions on Software Engineering, 37(4), 509-525. https://doi.org/10.1109/TSE.2010.59
Salleh, N., Mendes, E., & Grundy, J. (2014). Investigating the effects of personality traits on pair programming in a higher education setting through a family of experiments. Empirical Software Engineering, 19(3), 714-752. https://doi.org/10.1007/s10664-012-9238-4
Saltz, J.S., & Shamshurin, I. (2017). Does pair programming work in a data science context? An initial case study. In 2017 IEEE International Conference on Big Data (Big Data) (2348-2354). IEEE. https://doi.org/10.1109/BigData.2017.8258189
Vihavainen, A., Airaksinen, J., & Watson, C. (2014). A systematic review of approaches for teaching introductory programming and their influence on success. In Proceedings of the tenth annual conference on International computing education research - ICER’14 (19-26). New York, New York, USA: ACM Press. https://doi.org/10.1145/2632320.2632349
Villamor, M., & Rodrigo, M.M. (2018). Predicting Successful Collaboration in a Pair Programming Eye Tracking Experiment. In Adjunct Publication of the 26th Conference on User Modeling, Adaptation and Personalization - UMAP’18 (263-268). New York, New York, USA: ACM Press. https://doi.org/10.1145/3213586.3225234
Williams, L.A., & Kessler, R.R. (2000). The effects of “pair-pressure” and “pair-learning” on software engineering education. In Thirteenth Conference on Software Engineering Education and Training (59-65). IEEE Comput. Soc. https://doi.org/10.1109/CSEE.2000.827023
Williams, L., & Kessler, R.R. (2003). Pair programming illuminated. Addison-Wesley.
This work is licensed under a Creative Commons Attribution 4.0 International License
Journal of Technology and Science Education, 2011-2024
Online ISSN: 2013-6374; Print ISSN: 2014-5349; DL: B-2000-2012
Publisher: OmniaScience