The Impact of COVID-19 in Collaborative Programming. Understanding the Needs of Undergraduate Computer Science Students
Abstract
:1. Introduction
2. Research Questions
- RQ1: Do the students need to perform their group programming activities in a distributed way?
- RQ2: What was the size of the existing programming group?
- RQ3: How have they approached group programming tasks?
- RQ4: Which was the students’ subjective perception of the different strategies adopted for group programming?
- RQ5: Do students require tools that support distributed and synchronous group programming activities?
- RQ6: Which features, and functionalities should be useful for students to support synchronous distributed programming activities?
- RQ7: Are there significant differences in the students’ needs or perceptions depending on the enrollment year or the size of their programming groups?
3. Method
3.1. Participants and Context
3.2. Measure Instrument Design
3.3. Variables
4. Results
4.1. Sample Description
4.2. RQ1: Need for Group Programming Activities in a Distributed Way
4.3. RQ2: Size of the Existing Programming Groups
4.4. RQ3: How Have They Approached Group Programming TASKS?
4.5. RQ4: Which Was the Students’ Subjective Perception of the Different Strategies Adopted for Group Programming?
4.6. RQ5: Do Students Require Tools That Support Distributed and Synchronous Group Programming Activities?
4.7. RQ6: Which Features and Functionalities Should Be Useful for Students to Support Synchronous Distributed Programming Activities?
4.8. RQ7: Are There Significant Differences in the Students’ Needs Depending on the Enrollment Year or the Size of Their Programming Groups?
5. Discussion
Limitations
- Statistical Conclusion Validity. We have tried to enhance our results by the proper application of the statistical tests. In fact, besides descriptive results, we have checked whether the distributions adjusted to the normal to perform the subsequently parametric analysis. Moreover, we have provided the participants with non-dichotomic variables to avoid the restriction of range and we have tried to identify variability in different sources. However, some uncontrolled extraneous factors, such as personal feelings or circumstances, that could affect the students’ responses have been beyond our reach.
- Internal Validity. The results are based on a biased sample formed solely by the students who chose to participate. On the other hand, it is likely that an important part of the participants in the second experience had already done so in the first one, so the repetition of the answers may have influenced the results.
- Construct Validity. Our research questions may not provide complete coverage of variables, e.g., gender [29] or the way the programming group was formed [30,31]. Also, the list of factors used to check alternative explanations was intended to be exhaustive, however additional factors could also be considered (e.g., learning style or general programming experience [31]).
- External Validity. Since the sample is formed exclusively by volunteer students, there is no certainty that the sample is representative of the generality and, consequently, the results are not generalizable for all college students. Thus, the reproduction of the case study in other context tools remains open as an important line of future work.
6. Conclusions
Author Contributions
Funding
Acknowledgments
Conflicts of Interest
Appendix A
Research Question | Item ID | Question | Possible Answers |
---|---|---|---|
RQ1 | 1 | Have you had to do any group and distance programming activities or practices during this course? | Yes/No |
RQ2 | 2 | What is the size of the groups in which you have had to program with your classmates? | 2/3/4 or more |
RQ3 | 3 | How have you performed group practices remotely? (More than one answer can be selected) | (a) I have chosen not to do group practice. I have chosen or changed (if the subject allowed it) to the modality of individual work/ |
(b) We have distributed the practical work of different subjects so that each member of the group can work individually on each one of them, and not have the need to work together on the same project/program/ | |||
(c) We have used version control systems (e.g., Git, GitHub, …) to work on the same programming project, but asynchronously (not both at the same time on the same project/file) | |||
(d) We have made use of video conferencing tools (MS Teams or similar), sharing the screen or the IDE (e) We have made use of a synchronous collaborative software development environment (f) We have made combined use of some of the above options | |||
4 | Indicate which tools, and how you have used them, to program in group with your fellow trainee(s). | open answer | |
RQ4= | 5 | I believe that group programming is best done by dividing the work, then working autonomously on a part (e.g., package, file, class, …), and integrating each contribution to get the result. | 1 (Strongly disagree)/2/3/4/5 (Strongly agree) |
6 | I consider that group programming is best done asynchronously (each member of the group works on the same code/project, but at different times), taking turns to avoid overlapping each other’s work. | 1 (Strongly disagree)/2/3/4/5 (Strongly agree) | |
7 | I believe that group programming is best done synchronously (two colleagues working at the same time on the same code), making use of additional chat, video, or audio channels to organize and make decisions together. | 1 (Strongly disagree)/2/3/4/5 (Strongly agree) | |
RQ5 | 8 | Do you consider that there is a need for the development of new tools that allow distributed and synchronous (at the same time) group programming? | 1 (Strongly disagree)/2/3/4/5 (Strongly agree) |
RQ6 | 9 | An environment that would allow distributed and synchronous (at the same time) programming should be an evolution of a known IDE (e.g., Eclipse, Netbeans, …) | 1 (would not be at all necessary or useful)/2/3/4/5 (would be very necessary or very useful) |
10 | An environment that would allow distributed and synchronous (at the same time) programming should display connected users (identified by name, avatar, availability status, …) | 1 (would not be at all necessary or useful)/2/3/4/5 (would be very necessary or very useful) | |
11 | An environment that would allow distributed and synchronous (at the same time) programming should have a synchronous communication tool (chat) | 1 (would not be at all necessary or useful)/2/3/4/5 (would be very necessary or very useful) | |
12 | An environment that would allow distributed and synchronous (at the same time) programming should provide the possibility of audio communication with the partner | 1 (would not be at all necessary or useful)/2/3/4/5 (would be very necessary or very useful) | |
13 | An environment that would allow distributed and synchronous (at the same time) programming should have a video channel that would allow videoconferencing with the partner while programming. | 1 (would not be at all necessary or useful)/2/3/4/5 (would be very necessary or very useful) | |
14 | An environment that would allow distributed and synchronous (at the same time) programming should always visually show or highlight where the colleague is writing/working (by colors, icons, etc.) | 1 (would not be at all necessary or useful)/2/3/4/5 (would be very necessary or very useful) | |
15 | An environment that would allow distributed and synchronous (at the same time) programming should give the possibility to lock code sections, when working simultaneously on the same code file | 1 (would not be at all necessary or useful)/2/3/4/5 (would be very necessary or very useful) | |
16 | An environment that would allow distributed and synchronous (at the same time) programming should incorporate a version control system | 1 (would not be at all necessary or useful)/2/3/4/5 (would be very necessary or very useful) | |
17 | An environment that would allow distributed and synchronous (at the same time) programming should keep a history or record the contribution of each member of the group to the final project. | 1 (would not be at all necessary or useful)/2/3/4/5 (would be very necessary or very useful) | |
18 | In relation to the previous question, do you consider that it would be necessary or useful to incorporate any additional feature or functionality? Indicate which one(s) | open answer | |
RQ7 | 19 | What is the highest year in which you are enrolled? | 1st year/2nd year/3rd year/4th year |
References
- McGunagle, D.; Zizka, L. Employability Skills for 21st-Century STEM Students: The Employers’ Perspective. High. Educ. Skill Work-Based Learn. 2020, 10, 591–606. [Google Scholar] [CrossRef]
- Exter, M.; Caskurlu, S.; Fernandez, T. Comparing Computing Professionals’ Perceptions of Importance of Skills and Knowledge on the Job and Coverage in Undergraduate Experiences. ACM Trans. Comput. Educ. 2018, 18, 21. [Google Scholar] [CrossRef]
- Association for Computing Machinery (ACM) and IEEE Computer Society Joint Task Force on Computing Curricula Computer Science Curricula 2013: Curriculum Guidelines for Undergraduate Degree Programs in Computer Science. Available online: https://www.acm.org/binaries/content/assets/education/cs2013_web_final.pdf (accessed on 18 July 2021).
- Faja, S. Evaluating Effectiveness of Pair Programming as a Teaching Tool in Programming Courses. Inf. Syst. Educ. J. ISEDJ 2014, 12, 36–45. [Google Scholar]
- Williams, L.A.; Kessler, R.R. All I Need to Know about Pair Programming I Learned in Kindergarten. Commun. ACM 1999, 43, 108–114. [Google Scholar] [CrossRef]
- Ying, K.M.; Boyer, K.E. Understanding Students’ Needs for Better Collaborative Coding Tools. In Proceedings of the Extended Abstracts of the 2020 CHI Conference on Human Factors in Computing Systems, Honolulu, HI, USA, 25–30 April 2020. [Google Scholar] [CrossRef]
- Phillips, H.; Ivins, W.; Prickett, T.; Walters, J.; Strachan, R. Using Contributing Student Pedagogy to Enhance Support for Teamworking in Computer Science Projects. In Proceedings of the Computing Education Practice 2021, New York, NY, USA, 7 January 2021; Association for Computing Machinery: New York, NY, USA, 2021; pp. 29–32. [Google Scholar]
- Luxton-Reilly, A.; Simon; Albluwi, I.; Becker, B.A.; Giannakos, M.; Kumar, A.N.; Ott, L.; Paterson, J.; Scott, M.J.; Sheard, J.; et al. Introductory Programming: A Systematic Literature Review. In Proceedings of the Companion of the 23rd Annual ACM Conference on Innovation and Technology in Computer Science Education, Larnaca, Cyprus, 2 July 2018; pp. 55–106. [Google Scholar]
- Williams, L.A.; Kessler, R.R. Pair Programming Illuminated|Guide Books; Addison-Wesley: Boston, MA, USA, 2003. [Google Scholar]
- Sobral, S.R. Is Pair Programing in Higher Education a Good Strategy? Int. J. Inf. Educ. Technol. 2020, 10, 7. [Google Scholar]
- Da Silva Estácio, B.J.; Prikladnicki, R. Distributed Pair Programming: A Systematic Literature Review. Inf. Softw. Technol. 2015, 63, 1–10. [Google Scholar] [CrossRef]
- Molina, A.I.; Redondo, M.A.; Lacave, C.; Ortega, M. Assessing the Effectiveness of New Devices for Accessing Learning Materials: An Empirical Analysis Based on Eye Tracking and Learner Subjective Perception. Comput. Hum. Behav. 2014, 31, 475–490. [Google Scholar] [CrossRef]
- Dourish, P.; Bellotti, V. Awareness and Coordination in Shared Workspaces. In Proceedings of the 1992 ACM Conference on Computer-Supported Cooperative Work—CSCW ’92, Toronto, Canada, 31 October–4 November 1992; ACM Press: New York, NY, USA, 1992; pp. 107–114. [Google Scholar]
- Collazos, C.A.; Gutiérrez, F.L.; Gallardo, J.; Ortega, M.; Fardoun, H.M.; Molina, A.I. Descriptive Theory of Awareness for Groupware Development. J. Ambient Intell. Humaniz. Comput. 2019, 10, 4789–4818. [Google Scholar] [CrossRef]
- UNESCO Education. From Disruption to Recovery 2020. Available online: https://en.unesco.org/covid19/educationresponse (accessed on 18 July 2021).
- García-Peñalvo, F.J. Digital Transformation in the Universities: Implications of the COVID-19 Pandemic. Available online: https://repositorio.grial.eu/bitstream/grial/2230/1/01.pdf (accessed on 18 July 2021).
- Crick, T.; Knight, C.; Watermeyer, R.; Goodall, J. The Impact of COVID-19 and “Emergency Remote Teaching” on the UK Computer Science Education Community. In Proceedings of the United Kingdom & Ireland Computing Education Research conference, Glasgow, UK, 3–4 September 2020; pp. 31–37. [Google Scholar] [CrossRef]
- Khan, S.; Rabbani, M.R.; Thalassinos, E.I.; Atif, M. Corona Virus Pandemic Paving Ways to Next Generation of Learning and Teaching: Futuristic Cloud Based Educational Model. Available online: https://www.researchgate.net/profile/Eleftherios-Thalassinos/publication/348730084_Corona_Virus_Pandemic_Paving_Ways_to_Next_Generation_of_Learning_and_Teaching_Futuristic_Cloud_Based_Educational_Model/links/600d5b2645851553a06824c6/Corona-Virus-Pandemic-Paving-Ways-to-Next-Generation-of-Learning-and-Teaching-Futuristic-Cloud-Based-Educational-Model.pdf (accessed on 18 July 2021).
- Chorfi, A.; Hedjazi, D.; Aouag, S.; Boubiche, D. Problem-Based Collaborative Learning Groupware to Improve Computer Programming Skills. Behav. Inf. Technol. 2020, 1–20. [Google Scholar] [CrossRef]
- Altebarmakian, M.; Alterman, R.; Yatskar, A.; Harsch, K.; DiLillo, A. The Microgenetic Analysis of Staged Peer Collaboration for Introductory Programming. In Proceedings of the 2016 IEEE Frontiers in Education Conference (FIE), Erie, PA, USA, 12–15 October 2016; pp. 1–8. [Google Scholar]
- Molina, A.I.; Gallardo, J.; Redondo, M.Á.; Bravo, C. Assessing the Awareness Mechanisms of a Collaborative Programming Support System. Dyna 2015, 82, 212–222. [Google Scholar] [CrossRef]
- Lu, Y.; Mao, X.; Wang, T.; Yin, G.; Li, Z. Improving Students’ Programming Quality with the Continuous Inspection Process: A Social Coding Perspective. Front. Comput. Sci. 2020, 14, 145205. [Google Scholar] [CrossRef]
- Grupo Computer Human Interaction and Collaboration (CHICO). Available online: https://blog.uclm.es/grupochico (accessed on 18 July 2021).
- Bravo, C.; Duque, R.; Gallardo, J. A Groupware System to Support Collaborative Programming: Design and Experiences. J. Syst. Softw. 2013, 86, 1759–1771. [Google Scholar] [CrossRef] [Green Version]
- Ortega, M. Computer-Human Interaction and Collaboration: Challenges and Prospects. Electronics 2021, 10, 616. [Google Scholar] [CrossRef]
- Lacave, C.; García, M.A.; Molina, A.I.; Sánchez, S.; Redondo, M.A.; Ortega, M. COLLECE-2.0: A Real-Time Collaborative Programming System on Eclipse. In Proceedings of the 2019 International Symposium on Computers in Education (SIIE), Tomar, Portugal, 21–23 November 2019; pp. 1–6. [Google Scholar]
- Schez-Sobrino, S.; García, M.Á.; Lacave, C.; Molina, A.I.; Glez-Morcillo, C.; Vallejo, D.; Redondo, M.Á. A Modern Approach to Supporting Program Visualization: From a 2D Notation to 3D Representations Using Augmented Reality. Multimed. Tools Appl. 2021, 80, 543–574. [Google Scholar] [CrossRef]
- Shadish, W.R.; Cook, T.D.; Campbell, D.T. Experimental and Quasi-Experimental Designs for Generalized Causal Inference; Houghton Mifflin: Boston, NY, USA, 2001; ISBN 978-0-395-61556-0. [Google Scholar]
- Ying, K.M.; Rodríguez, F.J.; Dibble, A.L.; Boyer, K.E. Understanding Women’s Remote Collaborative Programming Experiences: The Relationship between Dialogue Features and Reported Perceptions. Proc. ACM Hum. Comput. Interact. 2021, 4, 1–29. [Google Scholar] [CrossRef]
- Revelo Sánchez, O.; Collazos, C.A.; Redondo, M.A. A Strategy Based on Genetic Algorithms for Forming Optimal Collaborative Learning Groups: An Empirical Study. Electronics 2021, 10, 463. [Google Scholar] [CrossRef]
- Sobral, S.R. Pair Programming and the Level of Knowledge in the Formation of Pairs. In Trends and Applications in Information Systems and Technologies; Advances in Intelligent Systems and Computing; Rocha, Á., Adeli, H., Dzemyda, G., Moreira, F., Ramalho Correia, A.M., Eds.; Springer International Publishing: Cham, Switzerland, 2021; Volume 1367, pp. 212–221. ISBN 978-3-030-72659-1. [Google Scholar]
Item | Question | Variable |
---|---|---|
2 | What is the size of the groups …? | GROUP_SIZE |
5 | … group programming is best done by dividing the work … | COOP |
6 | … group programming is best done asynchronously … | ASYN_COLAB |
7 | … group programming is best done synchronously … | SYN_COLAB |
8 | … there is a need for the development of new tools for distributed and synchronous …? | SYN_COLAB_NEED |
9 | An environment … should be an evolution of a known IDE … | IDE_EVOLUTION |
10 | An environment … should display connected users | USERS |
11 | An environment … should have a synchronous communication tool (chat) | CHAT |
12 | An environment … should provide the possibility of audio communication with the partner | AUDIO |
13 | An environment … should have a video channel that would allow videoconferencing … | VIDEO |
14 | An environment … should always highlight where the colleague is writing/working … | AWARENESS |
15 | An environment … should give the possibility to lock code sections … | BLOCKING |
16 | An environment … should incorporate a version control system | VERS_CTRL |
17 | An environment … should keep a history or record of the contributions of each member of the group … | LOG |
19 | What is your highest enrollment year? | COURSE |
during_Conf | after_Conf | |||
---|---|---|---|---|
Enrollment Year | n = 111 | n = 107 | ||
1st Year | 14 | 12.6% | 22 | 20.6% |
2nd Year | 49 | 44.2% | 37 | 34.6% |
3rd Year | 34 | 30.6% | 30 | 28.0% |
4th Year | 14 | 12.6% | 18 | 16.8% |
during_Conf | after_Conf | |||
---|---|---|---|---|
Enrollment Year | 98 | 88% | 102 | 95% |
1st Year | 14 | 14.3% | 22 | 21.6% |
2nd Year | 44 | 44.9% | 37 | 36.3% |
3rd Year | 29 | 30.6% | 28 | 27.4% |
4th Year | 11 | 12.6% | 15 | 14.7% |
during_Conf | after_Conf | |||
---|---|---|---|---|
2 members | 52 | 53.1% | 8 | 7.8% |
3 members | 16 | 16.3% | 24 | 23.5% |
More than 3 members | 13 | 13.3% | 37 | 36.3% |
Several groups of different size | 17 | 17.3% | 33 | 32.4% |
during_Conf | after_Conf | |||
---|---|---|---|---|
mean | st. dev. | mean | st. dev. | |
4.1 | 0.925 | 4.1 | 1.156 | |
1st year | 4.43 | 0.65 | 3.82 | 1.24 |
2nd year | 4.09 | 0.91 | 4.19 | 1.33 |
3rd year | 4.10 | 1.01 | 4.25 | 0.88 |
4th year | 3.73 | 1.01 | 4.00 | 1.13 |
during_Conf | after_Conf | |||
---|---|---|---|---|
mean | st. dev. | mean | st. dev. | |
IDE_EVOLUTION | 4.05 | 0.93 | 3.87 | 1.00 |
USERS | 3.88 | 1.17 | 3.97 | 1.04 |
CHAT | 4.07 | 2.06 | 3.85 | 1.19 |
AUDIO | 4.21 | 1.06 | 4.11 | 1.17 |
VIDEO | 3.26 | 1.31 | 2.96 | 1.38 |
AWARENESS | 4.36 | 0.87 | 4.58 | 0.76 |
BLOCKING | 4.19 | 1.04 | 4.13 | 1.05 |
VERS_CTRL | 4.29 | 0.87 | 4.31 | 0.92 |
LOG | 4.23 | 0.93 | 4.23 | 1.07 |
during_Conf | after_Conf | |||
---|---|---|---|---|
GROUP_SIZE | USERS | VERS_CTRL | IDE_EVOLUTION | |
1st year | 2.07 | 3.86 | 3.79 | 3.32 |
2nd year | 3.48 | 3.57 | 4.07 | 3.97 |
3rd year | 2.55 | 4.41 | 4.59 | 3.86 |
4th year | 3.00 | 4.18 | 4.73 | 4.47 |
Publisher’s Note: MDPI stays neutral with regard to jurisdictional claims in published maps and institutional affiliations. |
© 2021 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (https://creativecommons.org/licenses/by/4.0/).
Share and Cite
Lacave, C.; Molina, A.I. The Impact of COVID-19 in Collaborative Programming. Understanding the Needs of Undergraduate Computer Science Students. Electronics 2021, 10, 1728. https://doi.org/10.3390/electronics10141728
Lacave C, Molina AI. The Impact of COVID-19 in Collaborative Programming. Understanding the Needs of Undergraduate Computer Science Students. Electronics. 2021; 10(14):1728. https://doi.org/10.3390/electronics10141728
Chicago/Turabian StyleLacave, Carmen, and Ana Isabel Molina. 2021. "The Impact of COVID-19 in Collaborative Programming. Understanding the Needs of Undergraduate Computer Science Students" Electronics 10, no. 14: 1728. https://doi.org/10.3390/electronics10141728
APA StyleLacave, C., & Molina, A. I. (2021). The Impact of COVID-19 in Collaborative Programming. Understanding the Needs of Undergraduate Computer Science Students. Electronics, 10(14), 1728. https://doi.org/10.3390/electronics10141728