Improving Undergraduate Novice Programmer Comprehension through Case-Based Teaching with Roles of Variables to Provide Scaffolding
Abstract
:1. Introduction
2. Literature Review
2.1. Case-Based Teaching
2.2. Roles of Variables
2.3. SOLO Taxonomy for Program Comprehension
2.4. PlanAni System
3. Research Method
3.1. Participants
3.2. Instruments
3.3. Procedure
3.4. Data Collection
4. Results and Findings
5. Discussion
6. Conclusions and Recommendations
6.1. Conclusions
6.2. Recommendations
7. Limitations and Future Work
Funding
Acknowledgments
Conflicts of Interest
References
- Kuittinen, M.; Sajaniemi, J. Teaching roles of variables in elementary programming courses. SIGCSE Bull. 2004, 36, 57–61. [Google Scholar] [CrossRef]
- Prasad, A.; Chaudhary, K.; Sharma, B. Programming skills: Visualization, interaction, home language and problem solving. Educ. Inf. Technol. 2021. Available online: https://link.springer.com/article/10.1007/s10639-021-10692-z?utm_source=xmol&utm_medium=affiliate&utm_content=meta&utm_campaign=DDCN_1_GL01_metadata (accessed on 13 October 2021). [CrossRef]
- Shi, N.; Min, Z.; Zhang, P. Effects of visualizing roles of variables with animation and IDE in novice program construction. Telemat. Inform. 2017, 34, 743–754. [Google Scholar] [CrossRef]
- Papadakis, S. Evaluating a Teaching Intervention for Teaching STEM and Programming Concepts Through the Creation of a Weather-Forecast App for Smart Mobile Devices. In Handbook of Research on Tools for Teaching Computational Thinking in P-12 Education; IGI Global: Hershey, PA, USA, 2020; pp. 31–53. [Google Scholar]
- Corney, M.; Lister, R.; Teague, D. Early relational reasoning and the novice programmer: Swapping as the “hello world” of relational reasoning. In Proceedings of the Thirteenth Australasian Computing Education Conference, Perth, Australia, 17–20 January 2011; pp. 95–104. [Google Scholar]
- Kohn, T. Variable Evaluation: An Exploration of Novice Programmers’ Understanding and Common Misconceptions. In Proceedings of the 2017 ACM SIGCSE Technical Symposium on Computer Science Education, Seattle, WA, USA, 8–11 March 2017; pp. 345–350. [Google Scholar]
- Algaraibeh, S.M.; Dousay, T.A.; Jeffery, C.L. Integrated Learning Development Environment for Learning and Teaching C/C++ Language to Novice Programmers. In Proceedings of the 2020 IEEE Frontiers in Education Conference (FIE), Uppsala, Sweden, 21–24 October 2020; pp. 1–5. [Google Scholar]
- Raj, A.G.S.; Gu, P.; Zhang, E.; Williams, J.; Halverson, R.; Patel, J.M. Live-coding vs Static Code Examples: Which is better with respect to Student Learning and Cognitive Load? In Proceedings of the Twenty-Second Australasian Computing Education Conference, Melbourne, Australia, 4–6 February 2020; pp. 152–159. [Google Scholar]
- Shrestha, N.; Botta, C.; Barik, T.; Parnin, C. Here we go again: Why is it difficult for developers to learn another programming language? In Proceedings of the IEEE/ACM 42nd International Conference on Software Engineering (ICSE), Seoul, Korea, 5–11 October 2020; pp. 691–701. [Google Scholar]
- Whalley, J.L.; Lister, R.; Thompson, E.; Clear, T.; Robbins, P.; Kumar, P.K.A.; Prasad, C. An australasian study of reading and comprehension skills in novice programmers, using the bloom and SOLO taxonomies. In Proceedings of the 8th Australasian Conference on Computing Education, Hobart, Australia, 16–19 January 2006; pp. 243–252. [Google Scholar]
- Shargabi, A.A.; Aljunid, S.A.; Annamalai, M.; Zin, A.M. Performing tasks can improve program comprehension mental model of novice developers: An empirical approach. In Proceedings of the 28th International Conference on Program Comprehension, Seoul, Korea, 13–15 June 2020; pp. 263–273. [Google Scholar]
- Bonney, K.M. Case study teaching method improves student performance and perceptions of learning gains. J. Microbiol. Biol. Educ. 2015, 16, 21–28. [Google Scholar] [CrossRef] [PubMed] [Green Version]
- Gravett, S.; de Beer, J.; Odendaal-Kroon, R.; Merseth, K.K. The affordances of case-based teaching for the professional learning of student-teachers. J. Curric. Stud. 2016, 49, 1–22. [Google Scholar] [CrossRef]
- Shi, N.; Cui, W.; Zhang, P.; Sun, X. Evaluating the effectiveness roles of variables in the novice programmers learning. J. Educ. Comput. Res. 2018, 56, 181–201. [Google Scholar] [CrossRef]
- Merseth, K.K. The early history of case-based instruction: Insights for teacher education today. J. Teach. Educ. 1991, 42, 243–249. [Google Scholar] [CrossRef]
- Flynn, A.E.; Klein, J.D. The influence of discussion groups in a case-based learning environment. Educ. Technol. Res. Dev. 2001, 49, 71–86. [Google Scholar] [CrossRef] [Green Version]
- Baker, E.B.A. Multimedia case-based instruction in literacy: Pedagogy, effectiveness, and perceptions. J. Educ. Multimed. Hypermedia 2009, 18, 249–266. [Google Scholar]
- Luo, H. Applying the case-based method in designing self-directed online instruction. Diss. ALL 2015, 254. Available online: https://surface.syr.edu/cgi/viewcontent.cgi?article=1254&context=etd (accessed on 13 October 2021).
- Marks, J.; Freeman, W.; Leitner, H. Teaching applied computing without programming: A case-based introductory course for general education. SIGCSE Bull. 2001, 33, 80–84. [Google Scholar] [CrossRef] [Green Version]
- Liu, G.; Yang, Q.; Fan, R. Application of case-based teaching in higher vocational computer courses—A case study of delphi programming. In Proceedings of the 2nd International Conference on Soft Computing in Information Communication Technology, Taipei, China, 31 May–1 June 2014; Atlantis Press: Taipei, China, 2014. [Google Scholar]
- Chang, C.-S.; Chung, C.-H.; Chang, J.A. Influence of problem-based learning games on effective computer programming learning in higher education. Educ. Technol. Res. Dev. 2020, 68, 2615–2634. [Google Scholar] [CrossRef]
- Veerasamy, A.K.; D’Souza, D.; Lindén, R.; Laakso, M.J. Relationship between perceived problem-solving skills and academic performance of novice learners in introductory programming courses. J. Comput. Assist. Learn. 2019, 35, 246–255. [Google Scholar] [CrossRef]
- Apeanti, W.O.; Essel, D.D. Learning Computer Programming Using Project-Based Collaborative Learning: Students’ Experiences, Challenges and Outcomes. Int. J. Innov. Educ. Res. 2021, 9. [Google Scholar] [CrossRef]
- Demetriadis, S.; Pombortsis, A. Novice student learning in case based hypermedia environment: A quantitative study. J. Educ. Multimed. Hypermedia 1999, 8, 241–269. [Google Scholar]
- Cheah, C.S. Factors contributing to the difficulties in teaching and learning of computer programming: A literature review. Contemp. Educ. Technol. 2020, 12, ep272. [Google Scholar] [CrossRef]
- Mathew, R.; Malik, S.I.; Tawafak, R.M. Teaching Problem Solving Skills using an Educational Game in a Computer Programming Course. Inform. Educ. 2019, 18, 359–373. [Google Scholar] [CrossRef]
- Robins, A.V. 12 Novice Programmers and Introductory Programming. In the Cambridge Handbook of Computing Education Research. 2019, p. 327. Available online: https://www.cambridge.org/core/books/abs/cambridge-handbook-of-computing-education-research/novice-programmers-and-introductory-programming/0CEDFE1B121198D3FB5F1541EBE3DCAD (accessed on 13 October 2021).
- Bosse, Y.; Gerosa, M.A. Why is programming so difficult to learn? Patterns of Difficulties Related to Programming Learning Mid-Stage. ACM SIGSOFT Softw. Eng. Notes 2017, 41, 1–6. [Google Scholar] [CrossRef]
- Sajaniemi, J. An Empirical Analysis of Roles of Variables in Novice-Level Procedural Programs. In Proceedings of the IEEE 2002 Symposia on Human Centric Computing Languages and Environments, Washington, DC, USA, 3–6 September 2002; pp. 37–39. [Google Scholar]
- Sajaniemi, J.; Kuittinen, M. Visualizing roles of variables in program animation. Inf. Vis. 2004, 3, 137–153. [Google Scholar] [CrossRef]
- Byckling, P.; Sajaniemi, J. Roles of variables and programming skills improvement. SIGCSE Bull. 2006, 38, 413–417. [Google Scholar] [CrossRef]
- Al-Barakati, N.M.; Al-Aama, A.Y. The effect of visualizing roles of variables on student performance in an introductory programming course. SIGCSE Bull. 2009, 41, 228–232. [Google Scholar] [CrossRef]
- Sajaniemi, J.; Kuittinen, M. An experiment on using roles of variables in teaching introductory programming. Comput. Sci. Educ. 2005, 15, 59–82. [Google Scholar] [CrossRef]
- Clear, T.; Whalley, J.; Lister, R.; Carbone, A.; Hu, M.; Sheard, J.; Simon, B.; Thompson, E. Reliably classifying novice programmer exam responses using the SOLO taxonomy. In Proceedings of the 21st Annual Conference of the National Advisory Committee on Computing Qualifications, Auckland, New Zealand, 4–7 July 2008; pp. 23–30. [Google Scholar]
- Lister, R.; Clear, T.; Simon; Bouvier, D.J.; Carter, P.; Eckerdal, A.; Jacková, J.; Lopez, M.; McCartney, R.; Robbins, P.; et al. Naturally occurring data as research instrument: Analyzing examination responses to study the novice programmer. SIGCSE Bull. 2010, 41, 156–173. [Google Scholar] [CrossRef]
- Sheard, J.; Carbone, A.; Lister, R.; Simon, B.; Thompson, E.; Whalley, J.L. Going SOLO to assess novice programmers. In Proceedings of the 13th Annual Conference on Innovation and Technology in Computer Science Education, Madrid, Spain, 30 June–2 July 2008; pp. 209–213. [Google Scholar]
- Lister, R.; Simon, B.; Thompson, E.; Whalley, J.L.; Prasad, C. Not seeing the forest for the trees: Novice programmers and the SOLO taxonomy. SIGCSE Bull. 2006, 38, 118–122. [Google Scholar] [CrossRef]
- Seiter, L. Using SOLO to Classify the Programming Responses of Primary Grade Students. In Proceedings of the 46th ACM Technical Symposium on Computer Science Education, Kansas, MO, USA, 4–7 March 2015; pp. 540–545. [Google Scholar]
- Izu, C.; Schulte, C.; Aggarwal, A.; Cutts, Q.; Duran, R.; Gutica, M.; Heinemann, B.; Kraemer, E.; Lonati, V.; Mirolo, C. Fostering program comprehension in novice programmers-learning activities and learning trajectories. In Proceedings of the Working Group Reports on Innovation and Technology in Computer Science Education, Aberdeen, UK, 15–17 July 2019; pp. 27–52. Available online: https://research.aalto.fi/en/publications/fostering-program-comprehension-in-novice-programmers-learning-ac (accessed on 13 October 2021).
- Sajaniemi, J. Role List for Students (v2,C). Available online: http://www.cs.uef.fi/papges/saja/var_roles/stud_vers/stud_C_eng.html (accessed on 13 October 2021).
- Pennington, N. Comprehension strategies in programming. In Empirical Studies of Programmers: Second Workshop; Olson, G.M., Sheppard, S., Soloway, E., Eds.; Ablex Publishing Corporation: Norwood, NJ, USA, 1987; pp. 100–113. [Google Scholar]
- Kumar, A.N. The Effectiveness of Visualization for Learning Expression Evaluation: A Reproducibility Study. In Proceedings of the 2016 ACM Conference on Innovation and Technology in Computer Science Education, Arequipa, Peru, 11–13 July 2016; pp. 192–197. [Google Scholar]
- Rogalski, J.; Samurçay, R. Acquisition of Programming Knowledge and Skills. In Psychology of Programming; Hoc, J.M., Green, T.R.G., Samurçay, R., Gillmore, D.J., Eds.; Academic Press: London, UK, 1990; pp. 157–174. [Google Scholar]
- Kumar, A.N. A Study of the Influence of Code-Tracing Problems on Code-Writing Skills. In Proceedings of the 18th ACM Conference on Innovation and Technology in Computer Science Education, Canterbury, UK, 1–3 July 2013; pp. 183–188. [Google Scholar]
- Busjahn, T.; Schulte, C. The use of Code Reading in Teaching Programming. In Proceedings of the 13th Koli Calling International Conference on Computing Education Research, Koli, Finland, 14–17 November 2013; pp. 3–11. [Google Scholar]
SOLO Category | Description |
---|---|
Relational (R) | A summary of what the code does in terms of its purpose (the forest) |
Relational Error (RE) | A summary of what the code does in terms of its purpose, but with some minor error |
Multistructural (M) | A line-by-line description of all the code (the trees) |
Other (O) | Any other description of part or all of the code, displaying no real evidence of understanding of the code as a whole |
SOLO Category | Converted Score | SOLO Category | Converted Score |
---|---|---|---|
R | 4 | M | 2 |
RE | 3 | O | 1 |
Group | N | M | SD | t | df | p |
---|---|---|---|---|---|---|
Experimental | 27 | 79.7 | 10.01 | 2.61 | 55 | 0.012 |
Control | 30 | 71.8 | 12.65 |
Group | N | MR | U | z | p |
---|---|---|---|---|---|
Experimental | 27 | 25.15 | 509.0 | 1.67 | 0.095 |
Control | 30 | 32.47 |
Group | N | MR | U | z | p |
---|---|---|---|---|---|
Experimental | 27 | 32.24 | 263.5 | −2.36 | 0.019 |
Control | 30 | 24.28 |
Group | N | M | SD | t | df | p |
---|---|---|---|---|---|---|
Experimental | 27 | 24.0 | 3.45 | 2.72 | 55 | 0.009 |
Control | 30 | 21.3 | 3.98 |
Group | N | MR | U | z | p |
---|---|---|---|---|---|
Experimental | 27 | 37.91 | 164.50 | −3.89 | <0.001 |
Control | 30 | 21.00 |
SOLO Category | Description |
---|---|
Relational (R) | Students associate the concept/process and combine them into relevant conclusions (the forest) |
Relational Error (RE) | Students associate the concept/process and combine them into relevant conclusions, but with some minor errors |
Multistructural (M) | Students use the concept/process, but find no relationship between the information, so the conclusions are irrelevant (the trees) |
Other (O) | Any other description of part or all of the concept/process, displaying no real evidence of understanding of the piece of information |
Publisher’s Note: MDPI stays neutral with regard to jurisdictional claims in published maps and institutional affiliations. |
© 2021 by the author. 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
Shi, N. Improving Undergraduate Novice Programmer Comprehension through Case-Based Teaching with Roles of Variables to Provide Scaffolding. Information 2021, 12, 424. https://doi.org/10.3390/info12100424
Shi N. Improving Undergraduate Novice Programmer Comprehension through Case-Based Teaching with Roles of Variables to Provide Scaffolding. Information. 2021; 12(10):424. https://doi.org/10.3390/info12100424
Chicago/Turabian StyleShi, Nianfeng. 2021. "Improving Undergraduate Novice Programmer Comprehension through Case-Based Teaching with Roles of Variables to Provide Scaffolding" Information 12, no. 10: 424. https://doi.org/10.3390/info12100424
APA StyleShi, N. (2021). Improving Undergraduate Novice Programmer Comprehension through Case-Based Teaching with Roles of Variables to Provide Scaffolding. Information, 12(10), 424. https://doi.org/10.3390/info12100424