=Paper=
{{Paper
|id=Vol-2733/paper17
|storemode=property
|title=Group Programming in COVID-19 Time: The Experience of the Students of the ESI-CR of the UCLM
|pdfUrl=https://ceur-ws.org/Vol-2733/paper17.pdf
|volume=Vol-2733
|authors=Ana Isabel Molina,Carmen Lacave
|dblpUrl=https://dblp.org/rec/conf/siie/MolinaL20
}}
==Group Programming in COVID-19 Time: The Experience of the Students of the ESI-CR of the UCLM==
Group Programming in COVID-19 Time: The Experience of the Students of the ESI-CR of the UCLM Ana Isabel Molina Díaz Carmen Lacave Rodero Dpto. Tecnologías y Sistemas de Información Dpto. Tecnologías y Sistemas de Información Universidad de Castilla-La Mancha Universidad de Castilla-La Mancha Ciudad Real, España Ciudad Real, España anaisabel.molina@uclm.es carmen.lacave@uclm.es Abstract—Collaborative learning activities have become a member during the programming activity. Several studies common practice in current university studies due to the have proved that the use of the PP technique improves the implantation of the EHEA. But the COVID-19 pandemic has process of solving programming problems, the productivity of led to a radical and abrupt change in the teaching-learning the team, and the quality of the programs generated [5, 6]. model used in most universities, based on a face-to-face model. A rapid and unexpected adaptation to a new model of non- Pair Programming also requires working face-to-face in presential teaching has been required, which has been able to be the same location. When it is carried out in a distributed implemented, even in an improvised manner, thanks to the environment, it is called Distributed Pair Programming effort of teachers and students. Given this new scenario, our (DPP) [7]. In this case, both team members collaborate interest is mainly focused on discovering to what extent our synchronously on the same programming task, but they are students of the Computer Engineering Degree have approached geographically distant, so they must use specific collaboration the group programming tasks, which they must perform in a support tools (groupware) to develop their work [8]. When the large number of subjects. For this purpose, we have carried out number of programmers is not limited to two, the technique is an experience aimed at finding the strategies and software tools known as Collaborative Programming (CP). To ensure the they have used to address these tasks. The results of the study efficiency of this process, the tools used must incorporate indicate that students have adopted a programming model support mechanisms to the group activity (coordination, based on work division or distributed peer programming, and access to shared information, awareness in the case of very few have chosen to make use of synchronous distributed working synchronously, ...) [9, 10, 11]. collaboration tools. In the second half of March 2020, the confinement due to Keywords— Group programming, Peer Programming, the COVID-19 pandemic forced a shift from a face-to-face to groupware, COVID-19 an online education model from just one day to the next [12, 13]. In the case of the universities, each one provided different I. INTRODUCTION tools for teachers and students to address this non-face-to-face The implantation of the European Higher Education Area modality, facilitating the adaptation of methodologies, (EHEA) has led to group activities becoming a common planning and evaluation [14]. practice for university students [1, 2]. Specifically, the Degree Within this process of improvised and rapid adaptation, in Computer Engineering (GII) at the University of Castilla- the UCLM decided to maintain the usual platform of online La Mancha (UCLM) promotes the development of group communication with students (Moodle1) and the institutional programming projects of small and medium size in most shared information repository (MS OneDrive2), as well as to subjects [3]. Working groups are usually formed by two provide the university community with video conferencing students who must cooperate to develop some program or applications (MS Teams3), and video creation and playback practical project. The most frequent ways to approach such (MS Stream4). The combination of these tools allowed to solve joint activities are the distribution of programming tasks in the problems of teacher-student communication in a more or different parts of the program/project (different files, modules less satisfactory way. However, as teachers of the GII, and in or functions), the use of shared repositories (Git, GitHub, view that online teaching has come to stay (to a greater or Google Drive, OneDrive, ...) or the application of Peer lesser extent), our interest is focused on knowing how the Programming (PP) techniques [4], mainly in the context of student-student communication was approached in the context face-to-face laboratory classes. of group programming tasks, which our students have had to Pair Programming is the term used to describe the process perform in most of the subjects. It is clear that, in the context followed by two programmers working in the same computer, of the imposed confinement, students at all universities had to performing a particular programming task or the design of an make use of new strategies and work tools to move from a algorithm. In this scenario two roles are defined: the driver, traditional PP-based model to a DPP or CP approach. who controls the programming activity and is responsible for Therefore, this article describes the research experience writing the source code; and the observer, who gives carried out at the Escuela Superior de Informática de Ciudad indications to his/her partner about the development being Real (ESI-CR) of the UCLM, which aims to know the carried out, the existence of possible syntax errors, etc. Both mechanisms, tools and difficulties of the students of the GII, roles can be exchanged, alternating the control each team 1 https://moodle.org/?lang=es 3 https://www.microsoft.com/es-es/microsoft-365/microsoft- 2 https://www.microsoft.com/es-es/microsoft-365/onedrive/online- teams/group-chat-software 4 https://www.microsoft.com/es-es/microsoft-365/microsoft-stream cloud-storage Copyright © 2020 for this paper by its authors. Use permitted under Creative Commons License Attribution 4.0 International (CC BY 4.0). as well as their subjective perception, to address the group Answer Statement programming tasks they performed during the state of alarm, item in the period between March and May 2020. Section 2 (a) I have chosen not to do group practice. I have chosen describes the details of the experience carried out or changed (if the subject allowed it) to the modality (questionnaire designed, results and discussion); and section 3 of individual work (b) We have distributed the practical work of different comments on the conclusions drawn from this work and the subjects so that each member of the group can work work to be undertaken in the future. individually on each one of them, and not have the need to work together on the same project/program II. EXPERIENCE (c) We have used version control systems (e.g., Git, In an effort to find out how the students of the GII of the GitHub, ...) to work on the same programming ESI-CR carried out their group programming tasks during the project, but asynchronously (not both at the same decreed state of alarm between March and May in Spain, an time on the same project/file) experience was carried out with the voluntary and anonymous (d) We have made use of video conferencing tools (e.g. participation of a total of 112 students (14 in the first year, 49 MS Teams or similar), sharing the screen or the IDE (e) We have made use of a synchronous collaborative in the second year, 35 in the third year and 14 in the fourth software development environment year). The experience took place during the first half of June (f) We have made combined use of some of the above and consisted of collecting information of interest by means options of a questionnaire, displayed through the MS Forms5 tool, and described below. TABLE II. DIFFERENT GROUP PROGRAMMING STRATEGIES OR SCENARIOS A. Questionnaire Answer item Statement Given the objective of this research, a questionnaire was COOP I believe that it is better to divide the work designed to find out the following aspects: when it is necessary to program in group in the same practical project, i.e., that each group Need for group programming activities in a distributed member works in an independent way in a way. This item asked whether they had to perform certain component (ex. package, file, class, ...) group programming activities during the confinement and, then, the contribution of each one is period. integrated to the final result ASYNC_COLAB I think that group programming is best done Size of the programming groups. Although in most in an asynchronous way (each member of the cases the groups consisted of two members, it was group working on the same code/project, but asked whether the groups were made up of two, three at different times), taking turns not to "step or more members. on" the work SYNC_COLAB I think that group programming is best done How they have approached group programming tasks. in a synchronous way (both partners working This item inquired about the solution adopted to at the same time on the same code), using perform group programming tasks when the members additional channels of chat, video or audio to of the work team could not meet face-to-face. Several get organized and make decisions together answer options were provided (Table I), and several of them could be selected. In the case of choosing one of The first scenario proposes the division of work and the last four options, an additional question was the progress in programming autonomously, in enabled to indicate which tool/s they had used. different sections of the final program or project. In Note that option (d) is the one that best aligns with the other words, a cooperation strategy was presented, in PP approach, but in a distributed (online) format: the which it is possible to work in a synchronous or videoconferencing tool allows sharing the asynchronous way, but in different parts of the code. development environment (IDE 6 ) (for instance, The second one suggests working on the same code but Eclipse 7 ) so that the members of the couple can in different moments of time, that is, it describes a alternatively take turns to adopt the roles of driver and collaboration scenario, based on the assignment of observer. On the other hand, option (e) refers to the use shifts and, therefore, asynchronous. The last scenario of a groupware programming environment, which corresponds to a purely collaborative and synchronous would allow the application of a CP approach. group work. Subjective perception about different strategies for Need for tools to support distributed and synchronous group programming. This aspect was integrated by group programming. This section asked about the need three items in which three possible strategies for group for tools to support collaborative synchronous work, programming were presented (Table II). Each of the which matches the last scenario described in the possible response options was ranked by means of a 5- previous question. level Likert scale, which allowed to indicate the degree of agreement (value closest to 5) or disagreement Features and functionalities needed to support (value closest to 1) with each one. synchronous distributed programming activities. Based on a hypothetical scenario of synchronous TABLE I. SOLUTIONS ADOPTED FOR GROUP PROGRAMMING DURING THE distributed programming, a series of features and CONFINEMENT PERIOD functionalities that could be considered desirable, and 5 https://forms.office.com 7 https://www.eclipse.org/ 6 IDE-Integrated Development Environment. even necessary, for effective and efficient group total) answered positively. Most of these students belonged to programming are presented. 2nd and 3rd year (Figure 1). Participants were asked to rate the usefulness/need for As for the size of the groups in which they participated, 52 each of these features or functions on a scale of 1 to 5, of the 98 students indicated that they programmed in pairs, 16 with the lower end of the scale (1) representing that it in groups of three and 13 in groups of more than three. would not be necessary or useful at all, and the upper Another 17 indicated that they were part of several groups of end (5) indicating that it would be very necessary or different sizes. very useful. Table III shows the list of features, which includes the main communication tool (text-chat, audio and video), coordination and access control to the shared workspace (blocking of code sections, version control) mechanisms, as well as aspects related to awareness (connected users and visual highlighting of access to the shared area) [10]. Awareness [15, 16] is the set of visualization techniques that are incorporated into the user interface of collaborative applications to provide information about group Fig. 1. Distribution by course of the students who expressed the need for activity, that is, visual information about the people the group programming during confinement. user is working with, the activities they are carrying out and about which part of the shared artefact they are The solutions adopted to deal with group programming working with. (Table I) consisted, mostly, in the combination of various strategies, highlighting the use of some videoconferencing Finally, an item in which students could indicate any system (being MS Teams and Discord 8 the most cited) feature or functionality not listed that they considered together with an asynchronous version control system necessary or useful was included. (GitHub9 was the most outstanding). Figure 2 also shows the percentage of students who chose to use only one tool. TABLE III. USEFUL FEATURES AND FUNCTIONALITIES IN A SYNCHRONOUS DISTRIBUTED COLLABORATIVE PROGRAMMING SCENARIO Statement Answer item "The application should..." IDE ...be an evolution of a known IDE (e.g. Eclipse, Netbeans, ...) CONNECT_USERS ... show the users connected (identified by their name, avatar, availability status, ...) CHAT ... include a synchronous communication tool (chat) AUDIO ... have the possibility of communicating by audio with the partner Fig. 2. Percentages illustrating the different solutions adopted for group VIDEO ... have a video channel that would programming during confinement. allow to make a videoconference with the partner at the same time that it is Among those who combined several strategies, five being programmed participants from the third and fourth year indicated that they AWARENESS ...show or visually highlight where the used a synchronous collaborative development environment. partner is writing/working (using colours, icons, etc.) Table IV shows the main descriptive statistics (mean, BLOCKING ...give the possibility of blocking median and mode) of the answers related to the participants' sections of code when the user is subjective perception about the convenience of applying the working on the same source code file at three group programming scenarios described in the previous the same time section (cooperation, asynchronous collaboration and VERS_CTROL ...incorporate a version control system synchronous collaboration) (Table II), the need to have tools LOG ...maintain a log or record of each group to support the last of these three scenarios, in a distributed member's contributions to the final context (synchronous distributed collaborative project programming), and, finally, the functionalities and features they considered most necessary or useful in a tool to support B. Results this programming strategy (Table III). The preprocessing of the data provided by the participants in the questionnaire reduced the sample size to N=111. The As far as the different strategies proposed (Figure 3), the subsequent analysis of the responses provided yielded very best evaluated was synchronous collaborative programming interesting results, which are described below. (µ=4.00), while asynchronous collaboration modality was the worst valued (µ=2.74). Most of the students considered that Regarding the need to perform group programming tasks having tools to support synchronous distributed programming during the confinement, 98 of the 111 students (88% of the scenarios should be necessary (µ=4.00). The features they 8 https://discord.com/ 9 https://github.com/ considered most useful for the software supporting this adopted, in which only 30 out of 98 students have selected the programming strategy (Figure 4) were that the collaborative use of version control tools (GitHub, for the majority), among functionalities should be integrated in a known IDE (e.g. which there are no first-year students and 68% are third year Eclipse) (µ=4.05), and that both version control support students. (µ=4.29) and the recording of individual contributions made by each team member to the final result should be included C. Discussion (µ=4.23). With respect the communication mechanisms that The results obtained show that, despite the fact that should be incorporated, the best rated was audio (µ=4.21), students positively valued synchronous distributed followed by chat (µ=4.07), with the video signal being the one programming (CP), they have opted, as a first option, for a PP they considered the least useful (µ=3.26). (driver-observer roles) programming model, but in an online mode (DPP) during the confinement period. Most of them TABLE IV. DESCRIPTIVE STATISTICS – PROGRAMMING SCENARIOS AND have made use of MS Teams or Discord, sharing the FEATURES OF SYNCHRONOUS ENVIRONMENTS development IDE (Eclipse for Java; MS Visual Studio10 for Mean Std. Visual Basic, RStudio11 for R and Visual Studio Code12 for C Answer item Median Mode and ADA) and changing turns alternatively to code. In the (µ) Dev. COOP 3.00 1.13 3 3 same way that teachers have opted to transfer the face-to-face ASYNC_COLAB 2.74 1.16 3 3 magisterial class model to online support, in what has been SYNC_COLAB 3.75 1.18 4 4 referred as remote emergency teaching [14], students have Need for synchronous opted for a similar approach. In most cases, they extrapolated 4.00 1.08 4 4 collaboration the way they work in the practice laboratories to a distributed IDE 4.05 0.93 4 5 model. Very few students made use of a distributed and CONNECT_USERS 3.88 1.17 4 5 synchronous programming environment, possibly due to a CHAT 4.07 2.06 4 5 lack of knowledge of the one that would suit their needs. In AUDIO 4.21 1.06 5 5 the very few cases that they did so, the tools used were Google VIDEO 3.26 1.31 3 5 Colab13 for Python programming and MS Visual Studio Live AWARENESS 4.36 0.87 5 5 Share14 or Atom15 for C and ADA programming. BLOCKING 4.19 1.04 5 5 VERS_CTROL 0.87 Among the desirable features included in a software for 4.29 5 5 LOG 0.93 group programming, at the same time and in a distributed way, 4.23 4 5 they considered that having an audio channel can be very useful and, possibly, the most agile method to communicate. The video signal is not considered as very necessary, being in many cases rather a source of distraction, while textual communication through a chat, that they are very used to, is also well valued. Version control and the possibility of recovering previous states of the practical projects were highly appreciated by students, for their obvious usefulness [17], although the fact that no first-year students and very few second-year students used them suggests that using this type of tool requires a Fig. 3. Assessment of different strategies or group programming scenarios. certain "maturity" not only in the use of technology, but also in how to address group work. Therefore, and considering the The incorporation of awareness mechanisms was advantages that the use of these kinds of tools could offer to considered very necessary (µ=4.36), although the possibility GII students [18], it would be necessary to consider for the of having visible information about the users connected or future introducing students to the use of version control their availability at any given time (µ=3.88) was considered systems in the first or second year. not very useful. On the other hand, those who best value version control Finally, we analysed whether the assessment of each of tools also consider it necessary to record the individual these features depends on some factors, such as the course in contributions of each team member to the final result. This which the student was enrolled or the size of the groups in feature, in order to evaluate and justify the personal which they had worked. The ANOVA of the data reflected involvement in the deliveries, is very useful for both teachers significant differences at 95% (p-value=0.003) only in the and students. version control tool when considering the student's course as a factor. The subsequent post-hoc revealed that these differences occur between students of the 1st and 2nd courses with respect to those of the 3rd and 4th courses. These results are in line with the data reflected in the section on the solutions 10 https://visualstudio.microsoft.com/es/vs/ 13 https://colab.research.google.com/notebooks/intro.ipynb 11 https://rstudio.com/ 14 https://visualstudio.microsoft.com/es/services/live-share/ 12 https://code.visualstudio.com/ 15 https://atom.io/ Fig. 4. Assessment of different features or functionalities needed in a synchronous collaborative programming scenario. In our research group (CHICO 16 ) the support of group incorporation of an audio channel between the team members. programming has been, for years, a topic of interest [9, 10, 19]. Similarly, we plan to continue studying the tools that support Among the latest developments, the COLLECE 2.017 system CP through a systematic literature review, which allows us to stands out. This is a synchronous collaborative programming know the state of current research in this field. environment that incorporates many of the features that have been most appreciated by the students in this study (it is a plug- ACKNOWLEDGEMENTS in integrated in Eclipse, which incorporates awareness This work has been funded by the Ministry of Economy, mechanisms, version control, blocking of code regions, ...). Industry and Competitiveness and by the European Regional Although several pilot experiences of the use of this system Development Fund, with reference TIN2015-66731-C2-2-R. have been carried out with students of the ESI-CR [20], this software has not yet been implanted as a tool of habitual use The authors would also like to express their gratitude to the in class, so we are considering to use it in several programming students who volunteered to participate in this experience. subjects during the course 2020-2021. REFERENCES III. CONCLUSSIONS [1] MECD. “La Integración del Sistema Universitario Español en el Espacio Europeo de Educación Superior”, Ministerio de Educación, In this article we have described an experience conducted Cultura y Deporte, 2003. with more than a hundred students of the Computer [2] R. Olanda, R. Sebastian, J. I. Panach. Aprendizaje colaborativo basado Engineering Degree of the ESI-CR of the UCLM, whose en tecnologías multimedia. Proceedings of the XX Jornadas de objective was to know how they had approached the practical Enseñanza Universitaria de la Informática (JENUI 2014), 2014. tasks of group programming during the state of alarm decreed [3] UCLM. “Memoria para la solicitud de verificación de títulos oficiales. in the second quarter of the 2019-2020 academic year. Propuesta de título de Graduado en Ingeniería Informática”, 2010. [4] L. Williams, R. R. Kessler. Pair programming illuminated. Addison- The results obtained show that, although the students Wesley Professional, 2003. considered interesting the use of synchronous collaborative [5] S. Faja. Evaluating effectiveness of pair programming as a teaching tool programming tools, that is, to apply a CP approach, they in programming courses. Information Systems Education Journal, mostly opted for a DPP model (in which they share the IDE 12(6), 36, 2014. with their colleagues, making use of videoconferencing [6] L. A. Williams, R. R. Kessler. All I really need to know about pair applications). The division of programming tasks in different programming I learned in kindergarten. Communications of the ACM, 43(5), 108-114, 2000. parts of the program or project was the second most used [7] P. Baheti, E. Gehringer, D. Stotts. Exploring the efficacy of distributed option. Possibly the lack of knowledge of support tools for pair programming. In Proceedings of the Conference on Extreme distributed synchronous programming influenced the choice Programming and Agile Methods (pp. 208-220). Springer, Berlin, of these strategies. Heidelberg. 2002. [8] B. J. da Silva Estácio, R. Prikladnicki. Distributed pair programming: Our research group has developed several environments A systematic literature review. Information and Software that implement the three programming approaches (PP, DPP Technology, 63, 1-10, 2015. and CP). Outstanding among these systems is COLLECE 2.0, [9] C. Bravo, R. Duque, J. Gallardo. A groupware system to support which we plan to introduce in several programming subjects collaborative programming: Design and experiences. Journal of during the next academic year. This system incorporates many Systems and Software, 86(7), 1759-1771, 2013. of the features considered most useful by the participants in [10] A. I. Molina, J. Gallardo, M. A. Redondo, C. Bravo. Assessing the this study (it is integrated a widely used IDE, such as Eclipse, awareness mechanisms of a collaborative programming support system. Dyna, 82(193), 212-222, 2015. incorporates a version control system, blocking of code regions, a very rich set of awareness mechanisms, ...). Even [11] F. Jurado, A. I. Molina, M. A. Redondo, M. Ortega. Cole- programming: Shaping collaborative learning support in eclipse. IEEE so, some of the features that have also been positively valued Revista Iberoamericana de Tecnologías del Aprendizaje, 8(4), 153- by the students could be added to this system, such as the 162, 2013. 16 https://blog.uclm.es/grupochico/ 17 http://blog.uclm.es/grupochico/proyecto-iapro/collece-2-0/ [12] H. Fardoun, M. Yousef, C. González-González, C.A. Collazos. Estudio [17] K. M. Ying, K. E. Boyer. Understanding Students' Needs for Better exploratorio en iberoamérica sobre procesos de enseñanza-aprendizaje Collaborative Coding Tools. In Extended Abstracts of the 2020 CHI y propuesta de evaluación en tiempos de pandemia. Education in the Conference on Human Factors in Computing Systems (pp. 1-8), April, Knowledge Society (EKS), 21, 9, 2020. 2020. [13] A. Skulmowski, G. D. Rey. COVID‐19 as an accelerator for [18] Y. Lu, X. Mao, T. Wang, G. Yin, Z. Li. Improving students’ digitalization at a German university: Establishing hybrid campuses in programming quality with the continuous inspection process: a social times of crisis. Human Behavior and Emerging Technologies, 2020. coding perspective. Frontiers of Computer Science, 14(5), 1-18, 2020. [14] AENUI. “Declaración de AENUI sobre retos educativos para el curso [19] M. Ortega, M. A. Redondo, C. Bravo, A. I. Molina, C. Lacave, Y. 2020-2021”. http://www.aenui.net/ (Junio, 2020). Arroyo,... and D. Fuentes. CHICO 2019 (Computer–Human Interaction [15] P. Dourish, V. Bellotti. Awareness and coordination in shared and Collaboration), UCLM. IE Comunicaciones, 30(30), 2019. workspaces. In Proceedings of the 1992 ACM conference on [20] C. Lacave, M. A. García, A. I. Molina, S. Sánchez, M. A. Redondo, M. Computer-supported cooperative work (pp. 107-114), 1992. Ortega. COLLECE-2.0: A real-time collaborative programming system [16] C. A. Collazos, F. L. Gutiérrez, J. Gallardo, M. Ortega, H. M. Fardoun, on Eclipse. In Proceedings of the XXI International Symposium on A. I. Molina. Descriptive theory of awareness for groupware Computers in Education (SIIE 2019) (pp. 1-6). IEEE, 2019. development. Journal of Ambient Intelligence and Humanized Computing, 10(12), 4789-4818, 2019.