ABSTRACT
When functional programming is used in studies of the Rainfall problem in CS1, most students seem to perform fairly well. A handful of students, however, still struggle, though with different surface-level errors than those reported for students programming imperatively. Prior research suggests that novice programmers tackle problems by refining a high-level program schema that they have seen for a similar problem. Functional-programming students, however, have often seen multiple schemas that would apply to Rainfall. How do novices navigate these choices? This paper presents results from a talk-aloud study in which novice functional programmers worked on Rainfall. We describe the criteria that drove students to select, and sometimes switch, their high-level program schema, as well as points where students realized that their chosen schema was not working. Our main contribution lies in our observations of how novice programmers approach a multi-task planning problem in the face of multiple viable schemas.
- Francisco Enrique Vicente Castro and Kathi Fisler. 2016. On the Interplay Between Bottom-Up and Datatype-Driven Program Design. In Proceedings of the 47th ACM Technical Symposium on Computing Science Education (SIGCSE '16). ACM, New York, NY, USA, 205--210. DOI:https://doi.org/10.1145/2839509.2844574Google ScholarDigital Library
- Richard Catrambone. 1998. The subgoal learning model: Creating better examples so that students can solve novel problems. Journal of Experimental Psychology: General 127 (1998), 355--376. DOI:https://doi.org/10.1037/0096--3445.127.4.355Google ScholarCross Ref
- Michael de Raadt, Richard Watson, and Mark Toleman. 2009. Teaching and Assessing Programming Strategies Explicitly. In Proceedings of the Eleventh Australasian Conference on Computing Education - Volume 95 (ACE '09). Australian Computer Society, Inc., Darlinghurst, Australia, Australia, 45--54. http: //dl.acm.org/citation.cfm?id=1862712.1862723Google ScholarDigital Library
- Sebastian Dziallas and Sally Fincher. 2016. Aspects of Graduateness in Computing Students' Narratives. In Proceedings of the 2016 ACM Conference on International Computing Education Research (ICER '16). ACM, New York, NY, USA, 181--190. DOI:https://doi.org/10.1145/2960310.2960317Google ScholarDigital Library
- Alireza Ebrahimi. 1994. Novice programmer errors: language constructs and plan composition. International Journal of Human-Computer Studies 41 (1994), 457--480. Google ScholarDigital Library
- Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, and Shriram Krishnamurthi. 2001. How to Design Programs. MIT Press. http://www.htdp.org/Google ScholarDigital Library
- Kathi Fisler. 2014. The Recurring Rainfall Problem. In Proceedings of the Tenth Annual Conference on International Computing Education Research (ICER '14). ACM, New York, NY, USA, 35--42. DOI:https://doi.org/10.1145/2632320.2632346Google ScholarDigital Library
- Mark Guzdial. 2010. A Challenge to Computing Education Research: Make Measurable Progress. https://computinged.wordpress.com/2010/08/16/ a-challenge-to-computing-education-research-make-measurable-progress/. (Aug. 2010). Accessed April 14, 2017.Google Scholar
- Päivi Kinnunen and Beth Simon. 2012. Phenomenography and grounded theory as research methods in computing education research field. Computer Science Education 22, 2 (June 2012), 199--218. DOI:https://doi.org/10.1080/08993408.2012. 692928Google ScholarCross Ref
- O. Muller, B. Haberman, and D. Ginat. 2007. Pattern-oriented instruction and its influence on problem decomposition and solution construction. In Proceedings of ITiCSE. Google ScholarDigital Library
- Peter L. Pirolli and John R. Anderson. 1985. The Role of Learning from Examples in the Acquisition of Recursive Programming Skills. Canadian Journal of Psychology/Revue canadienne de psychologie 39, 2 (1985), 240--272.Google Scholar
- Peter L. Pirolli, John R. Anderson, and Robert G. Farrell. 1984. Learning to program recursion. 277--280.Google Scholar
- Robert S. Rist. 1989. Schema Creation in Programming. Cognitive Science (1989), 389--414. Google ScholarCross Ref
- Robert S. Rist. 1991. Knowledge Creation and Retrieval in Program Design: A Comparison of Novice and Intermediate Student Programmers. Hum.-Comput. Interact. 6, 1 (Mar 1991), 1--46. Google ScholarDigital Library
- Otto Seppälä, Petri Ihantola, Essi Isohanni, Juha Sorva, and Arto Vihavainen. 2015. Do We Know How Difficult the Rainfall Problem is?. In Proceedings of the 15th Koli Calling Conference on Computing Education Research (Koli Calling '15). ACM, New York, NY, USA, 87--96. DOI:https://doi.org/10.1145/2828959.2828963Google ScholarDigital Library
- Simon. 2013. Soloway's Rainfall Problem Has Become Harder. Learning and Teaching in Computing and Enginering (2013), 130--135. DOI:https://doi.org/10. 1109/LaTiCE.2013.44Google Scholar
- Elliot Soloway. 1986. Learning to Program = Learning to Construct Mechanisms and Explanations. Commun. ACM 29, 9 (Sept. 1986), 850--858. Google ScholarDigital Library
- Juha Sorva and Arto Vihavainen. 2016. Break Statement Considered. ACM Inroads 7, 3 (Aug. 2016), 36--41. DOI:https://doi.org/10.1145/2950065Google ScholarDigital Library
- James C. Spohrer and Elliot Soloway. 1989. Simulating Student Programmers. Morgan Kaufmann Publishers Inc., 543--549.Google Scholar
- Anne Venables, Grace Tan, and Raymond Lister. 2009. A Closer Look at Tracing, Explaining and Code Writing Skills in the Novice Programmer. In Computing Education Research Workshop (ICER). 117--128. Google ScholarDigital Library
- Jacqueline Whalley and Nadia Kasto. 2014. A Qualitative Think-aloud Study of Novice Programmers' Code Writing Strategies. In Proceedings of the 2014 Conference on Innovation & Technology in Computer Science Education (ITiCSE '14). ACM, New York, NY, USA, 279--284. DOI:https://doi.org/10.1145/2591708. 2591762Google ScholarDigital Library
Index Terms
- Sometimes, Rainfall Accumulates: Talk-Alouds with Novice Functional Programmers
Recommendations
The recurring rainfall problem
ICER '14: Proceedings of the tenth annual conference on International computing education researchMany studies have used Soloway's Rainfall problem to explore plan composition and programming errors by novice programmers. Few of these have explored students from CS1 courses that use functional programming. The concepts and programming styles ...
Soloway's Rainfall Problem Has Become Harder
LATICE '13: Proceedings of the 2013 Learning and Teaching in Computing and EngineeringDiscussing the use of plans in programming and in programming education, Solo way describes a programming task that has come to be known as the rainfall problem. This problem was used in a number of empirical experiments in the 1980s and 1990s, and was ...
Balancing Act: A Theory on the Interactions Between High-Level Task-thinking and Low-Level Implementation-thinking of Novice Programmers
ICER '19: Proceedings of the 2019 ACM Conference on International Computing Education ResearchPrior studies suggest that novice programmers approach problems by retrieving previously-learned plans. These plans can be high-level (encompassing decomposition and composition of tasks) or low-level (focused mainly on code). What happens when novices ...
Comments