Design of an Online Programming Platform and a Study on Learners’ Testing Ability
Abstract
:1. Introduction
- RQ1: What is the performance of learners in terms of ability indicators in software engineering and learning behavior?
- RQ2: How do learners from different groups perform in terms of programming ability and testing ability?
- RQ3: Is there a relationship between ability indicators and learning behavior?
2. Related Work
2.1. Importance of Software-Testing Ability
2.2. Programming Education and Assessment
2.3. Software-Testing Education and Assessment
3. Methods
3.1. System Design
3.1.1. System Design Principles
- Open Test Case (OTC): The system provides the Open Test Cases (OTC). Learners can test their program under these OTCs and see the result to evaluate their code independently.
- Hidden Test Case (HTC): Each problem is predesigned with some test cases called Hidden Test Cases (HTCs). After learners complete their program, they can submit them to the system, which will then test the programs by using these HTCs. The system will provide immediate feedback to learners in the form of scores based on the test results.
- Defining Test Case (DTC): Learners also have the option to design additional test cases, referred to as Defining Test Cases (DTCs). These test cases are the ones that learners believe the code should pass. Once learners feel confident that their programs are error-free under these test cases, they can submit their programs for further evaluation.
3.1.2. System Interface
3.1.3. Security
3.2. Process
3.3. Indicators
3.3.1. Resilience of Program Assignment (r)
3.3.2. Programming Ability Index (PAI)
3.3.3. Testing Efficiency Index (TEI)
4. Experiment
4.1. Course Design
4.2. Participants
4.3. Procedure
4.4. Measures
- Questionnaires: at the beginning of the course, we conducted a survey that included information such as the learners’ department, grade level, programming experience, and motivations.
- Event logs: OpenEdu provided various behavior logs for video watching, including load_video, play_video, seek_video, pause_video, and stop_video. We utilized these logs to calculate the viewing time and completion rate of individual videos for each learner. On the Pytutor platform, we collected the learners’ behavioral data while answering the exercises. In the testing mode, we recorded the code, execution results, and test data for each test attempt. In the formal submission mode, we recorded the learners’ code and the number of passed Hidden Test Cases. Additionally, we also recorded the learners’ answering times for each exercise.
- Scores: We calculated the learners’ scores for each exercise and averaged them to obtain the formative-assessment score. We also recorded the summative-assessment score.
4.5. Result
4.5.1. The Engagement of Learners
4.5.2. The Indicators of Learners
5. Discussion
5.1. RQ1: What Is the Performance of Learners in Terms of Their Ability Indicators in Software Engineering and Learning Behavior?
- High PAI and high TEI (HPHT)
- High PAI and low TEI (HPLT)
- Low PAI and high TEI (LPHT)
- Low PAI and low TEI (LPLT)
5.2. RQ2: How Do Learners from Different Groups Perform in Terms of Programming Ability and Testing Ability?
- Background
- Formative assessment
- Summative assessment
5.3. RQ3: Is There a Relationship between Ability Indicators and Learning Behavior?
5.4. Comparison
- Yang et al. used three programming tasks to assess students’ abilities. On Pytutor, we provided 50 questions for students to practice various programming concepts.
- In Yang et al.’s research, their participants were undergraduate students with a programming background who had also studied concepts related to software testing. Our course design focuses on fundamental Python programming concepts, so most of the participating learners do not have a background in urban or software testing.
- Pytutor enables students to practice programming questions at any time, offering them more opportunities to demonstrate their testing abilities when assessing code. In Yang et al.’s experiment, students were required to submit their assignments within a limited timeframe, and the code was assessed through unit tests.
- From our research, we found that programming ability and testing ability are not correlated. However, testing ability can assist learners in achieving better scores on assignments. Yang et al.’s study also mentioned that nearly half of the developers with excellent programming skills have relatively lower testing abilities. Conversely, some developers with lower programming skills also perform well in testing.
5.5. Limitation
6. Conclusions and Future Work
- Using AI as a virtual assistant to assist in program education. How to guide—rather than directly provide answers—will be challenging.
- Developing a more-powerful online editor so students enjoy writing code there, and we can record student behavior in detail. By analyzing detailed programming behaviors, we can analyze more and learn how to further improve programming education.
- Conducting more experiments to understand the learning effects when using our tool. In future courses, we plan to divide students into experimental and control groups and conduct more comparative analyses on them.
Author Contributions
Funding
Data Availability Statement
Conflicts of Interest
References
- Wang, J.Y.; Liang, J.C.; Chang, C.C. The CodingHere Platform for Programming Courses. Inf. Eng. Express 2022, 8, 1–14. [Google Scholar]
- Hidalgo-Céspedes, J.; Marín-Raventós, G.; Calderón-Campos, M.E. Online Judge Support for Programming Teaching. In Proceedings of the 2020 XLVI Latin American Computing Conference (CLEI), Loja, Ecuador, 19–23 October 2020; pp. 522–530. [Google Scholar]
- Zinovieva, I.; Artemchuk, V.; Iatsyshyn, A.V.; Popov, O.; Kovach, V.; Iatsyshyn, A.V.; Romanenko, Y.; Radchenko, O. The use of online coding platforms as additional distance tools in programming education. J. Phys. Conf. Ser. 2021, 1840, 012029. [Google Scholar] [CrossRef]
- Pereira, F.D.; Oliveira, E.; Cristea, A.; Fernandes, D.; Silva, L.; Aguiar, G.; Alamri, A.; Alshehri, M. Early dropout prediction for programming courses supported by online judges. In Proceedings of the Artificial Intelligence in Education: 20th International Conference, AIED 2019, Chicago, IL, USA, 25–29 June 2019; pp. 67–72. [Google Scholar]
- Wasik, S.; Antczak, M.; Badura, J.; Laskowski, A.; Sternal, T. A survey on online judge systems and their applications. ACM Comput. Surv. 2018, 51, 1–34. [Google Scholar] [CrossRef]
- Fu, Q.; Bai, X.; Zheng, Y.; Du, R.; Wang, D.; Zhang, T. VisOJ: Real-time visual learning analytics dashboard for online programming judge. Vis. Comput. 2022, 39, 2393–2405. [Google Scholar] [CrossRef]
- Lemos, O.A.L.; Silveira, F.F.; Ferrari, F.C.; Garcia, A. The impact of Software Testing education on code reliability: An empirical assessment. J. Syst. Softw. 2018, 137, 497–511. [Google Scholar] [CrossRef]
- Buffardi, K.; Edwards, S.H. Effective and ineffective software testing behaviors by novice programmers. In Proceedings of the Ninth Annual International ACM Conference on International Computing Education Research, San Diego, CA, USA, 12–14 August 2013; pp. 83–90. [Google Scholar]
- Spacco, J.; Fossati, D.; Stamper, J.; Rivers, K. Towards improving programming habits to create better computer science course outcomes. In Proceedings of the 18th ACM Conference on Innovation and Technology in Computer Science Education, Canterbury, UK, 1–3 July 2013; pp. 243–248. [Google Scholar]
- Fidge, C.; Hogan, J.; Lister, R. What vs. how: Comparing students’ testing and coding skills. In Proceedings of the Conferences in Research and Practice in Information Technology Series 2013, Chicago, IL, USA, 13–16 March 2013; pp. 97–106. [Google Scholar]
- Yang, P.; Liu, Z.; Xu, J.; Huang, Y.; Pan, Y. An empirical study on the ability relationships between programming and testing. IEEE Access 2020, 8, 161438–161448. [Google Scholar] [CrossRef]
- Edwards, S.H. Improving student performance by evaluating how well students test their own programs. J. Educ. Resour. Comput. 2003, 3, 1–es. [Google Scholar] [CrossRef]
- Ala-Mutka, K.M. A survey of automated assessment approaches for programming assignments. Comput. Sci. Educ. 2005, 15, 83–102. [Google Scholar] [CrossRef]
- Cerioli, M.; Cinelli, P. GRASP: Grading and Rating ASsistant Professor. In Proceedings of the ACM-IFIP 2008, Leuven, Belgium, 1–4 December 2008; pp. 37–51. [Google Scholar]
- Fraser, G.; Gambi, A.; Kreis, M.; Rojas, J.M. Gamifying a software testing course with code defenders. In Proceedings of the 50th ACM Technical Symposium on Computer Science Education, Minneapolis, MN, USA, 27 February–2 March 2019; pp. 571–577. [Google Scholar]
- Sun, H.; Li, B.; Jiao, M. YOJ: An online judge system designed for programming courses. In Proceedings of the 2014 9th International Conference on Computer Science & Education, Vancouver, BC, Canada, 22–24 August 2014; pp. 812–816. [Google Scholar]
- Suleman, H. Automatic marking with Sakai. In Proceedings of the 2008 Annual Research Conference of the South African Institute of Computer Scientists and Information Technologists on IT Research in Developing Countries: Riding the Wave of Technology, Wilderness, South Africa, 6–8 October 2008; pp. 229–236. [Google Scholar]
- Carless, D.; Salter, D.; Yang, M.; Lam, J. Developing sustainable feedback practices. Stud. High. Educ. 2011, 36, 395–407. [Google Scholar] [CrossRef]
- Malmi, L.; Korhonen, A.; Saikkonen, R. Experiences in automatic assessment on mass courses and issues for designing virtual courses. ACM SIGCSE Bull. 2002, 34, 55–59. [Google Scholar] [CrossRef]
- Brito, M.; Gonçalves, C. Codeflex: A web-based platform for competitive programming. In Proceedings of the 2019 14th Iberian Conference on Information Systems and Technologies (CISTI), Coimbra, Portugal, 19–22 June 2019; pp. 1–6. [Google Scholar]
- Haynes-Magyar, C.C.; Haynes-Magyar, N.J. Codespec: A Computer Programming Practice Environment. In Proceedings of the 2022 ACM Conference on International Computing Education Research, Virtual, 7–11 August 2022; Volume 2, pp. 32–34. [Google Scholar] [CrossRef]
- Xia, Z.; Hu, B.; Diao, W.; Huang, Y. Design of Interactive Computer Algorithm Learning Platform: Taking the visual programming tool “Progressive Blockly” as an example. In Proceedings of the 2021 International Conference on Computer Engineering and Application (ICCEA), Kunming, China, 25–27 June 2021; pp. 189–193. [Google Scholar]
- Polito, G.; Temperini, M.; Sterbini, A. 2tsw: Automated assessment of computer programming assignments, in a gamified web based system. In Proceedings of the 2019 18th International Conference on Information Technology Based Higher Education and Training (ITHET), Magdeburg, Germany, 26–27 September 2019; pp. 1–9. [Google Scholar]
- Swacha, J. State of research on gamification in education: A bibliometric survey. Educ. Sci. 2021, 11, 69. [Google Scholar] [CrossRef]
- Vujošević-Janičić, M.; Nikolić, M.; Tošić, D.; Kuncak, V. Software verification and graph similarity for automated evaluation of students’ assignments. Inf. Softw. Technol. 2013, 55, 1004–1016. [Google Scholar] [CrossRef]
- Montoya-Dato, F.J.; Fernández-Alemán, J.L.; García-Mateos, G. An experience on Ada programming using on-line judging. In Proceedings of the Reliable Software Technologies—Ada-Europe 2009: 14th Ada-Europe International Conference, Brest, France, 8–12 June 2009; pp. 75–89. [Google Scholar]
- Jiang, W.; Deng, J. Design and Implementation of On-Line Practice System Based on Software Testing. J. Phys. Conf. Ser. 2021, 1738, 012115. [Google Scholar] [CrossRef]
- Kasahara, R.; Sakamoto, K.; Washizaki, H.; Fukazawa, Y. Applying gamification to motivate students to write high-quality code in programming assignments. In Proceedings of the 2019 ACM Conference on Innovation and Technology in Computer Science Education, Aberdeen, UK, 15–17 July 2019; pp. 92–98. [Google Scholar]
- García-Magariño, I.; Pita, I.; Arroyo, J.; Fernández, M.L.; Bravo-Agapito, J.; Segura, C.; Gilaberte, R.L. UnitJudge: A novel online automatic correction system for long programming practices by means of unit tests. In Proceedings of the 2023 10th International and the 16th National Conference on E-Learning and E-Teaching (ICeLeT), Tehran, Iran, 28 February–2 March 2023; pp. 1–5. [Google Scholar]
- Ihantola, P.; Ahoniemi, T.; Karavirta, V.; Seppälä, O. Review of Recent Systems for Automatic Assessment of Programming Assignments. In Proceedings of the 10th Koli Calling International Conference on Computing Education Research, Koli, Finland, 28–31 October 2010; pp. 86–93. [Google Scholar] [CrossRef]
- Kuo, J.Y.; Wen, Z.J.; Hsieh, T.F.; Huang, H.X. A Study on the Security of Online Judge System Applied Sandbox Technology. Electronics 2023, 12, 3018. [Google Scholar] [CrossRef]
- Paiva, J.C.; Leal, J.P.; Figueira, Á. Automated assessment in computer science education: A state-of-the-art review. ACM Trans. Comput. Educ. (TOCE) 2022, 22, 1–40. [Google Scholar] [CrossRef]
- Peveler, M.; Maicus, E.; Cutler, B. Automated and manual grading of web-based assignments. In Proceedings of the 51st ACM Technical Symposium on Computer Science Education, Portland, OR, USA, 11–14 March 2020; p. 1373. [Google Scholar]
- Xu, B.; Yan, S.; Jiang, X.; Feng, S. SCFH: A student analysis model to identify students’ programming levels in online judge systems. Symmetry 2020, 12, 601. [Google Scholar] [CrossRef]
- Shepperd, M. A critique of cyclomatic complexity as a software metric. Softw. Eng. J. 1988, 3, 30–36. [Google Scholar] [CrossRef]
- Pereira, F.D.; Oliveira, E.H.; Oliveira, D.B.; Cristea, A.I.; Carvalho, L.S.; Fonseca, S.C.; Toda, A.; Isotani, S. Using learning analytics in the Amazonas: Understanding students’ behaviour in introductory programming. Br. J. Educ. Technol. 2020, 51, 955–972. [Google Scholar] [CrossRef]
- Kochhar, P.S.; Thung, F.; Lo, D. Code coverage and test suite effectiveness: Empirical study with real bugs in large systems. In Proceedings of the 2015 IEEE 22nd International Conference on Software Analysis, Evolution, and Reengineering (SANER), Montreal, QC, Canada, 2–6 March 2015; pp. 560–564. [Google Scholar]
- Welsh, M. The end of programming. Commun. ACM 2022, 66, 34–35. [Google Scholar] [CrossRef]
Pytutor | |
---|---|
The average number of submissions per learner per question. | 1.43 times |
Proportion of learners who perform at least one public test case before submission. | 59% |
Proportion of learners who perform at least one Defining Test Case before submission. | 44% |
Proportion of learners who submit without performing any tests. | 23% |
The average number of attempts () of learners. | 3.23 |
The average number of test cases () of learners. | 3.41 |
The average number of public test cases executed by each learner per question. | 3.96 times |
The average number of Defining Test Cases executed by each learner per question. | 2.94 times |
The average time spent by each learner on a question. | 14.45 mins |
OpenEdu | |
Average completion rate of video viewing by learners. | 56% |
Average playback speed of video viewing by learners. | 2.08 |
Average Completion Rate | Average Playback Speed | r | The Average of TEI | The Average of PAI | Formative Assessment | Summative Assessment | |
---|---|---|---|---|---|---|---|
mean | 0.56 | 2.08 | 1.97 | 1.89 | 121.80 | 72.66 | 68.04 |
std | 0.17 | 0.70 | 2.82 | 0.49 | 23.64 | 26.17 | 23.69 |
min | 0.00 | 0.00 | 0.70 | 1.00 | 49.18 | 5.82 | 0.00 |
25% | 0.44 | 1.64 | 0.81 | 1.55 | 110.52 | 59.86 | 51.09 |
50% | 0.60 | 2.16 | 0.99 | 1.92 | 127.55 | 84.08 | 77.93 |
75% | 0.69 | 2.63 | 1.85 | 2.29 | 138.75 | 93.18 | 87.61 |
max | 0.83 | 2.92 | 17.53 | 2.99 | 157.19 | 99.64 | 100.00 |
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content. |
© 2023 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
Hsueh, N.-L.; Lai, L.-C.; Tseng, W.-H. Design of an Online Programming Platform and a Study on Learners’ Testing Ability. Electronics 2023, 12, 4596. https://doi.org/10.3390/electronics12224596
Hsueh N-L, Lai L-C, Tseng W-H. Design of an Online Programming Platform and a Study on Learners’ Testing Ability. Electronics. 2023; 12(22):4596. https://doi.org/10.3390/electronics12224596
Chicago/Turabian StyleHsueh, Nien-Lin, Lien-Chi Lai, and Wei-Hsiang Tseng. 2023. "Design of an Online Programming Platform and a Study on Learners’ Testing Ability" Electronics 12, no. 22: 4596. https://doi.org/10.3390/electronics12224596
APA StyleHsueh, N. -L., Lai, L. -C., & Tseng, W. -H. (2023). Design of an Online Programming Platform and a Study on Learners’ Testing Ability. Electronics, 12(22), 4596. https://doi.org/10.3390/electronics12224596