Abstract
In teaching students to program with compositions of higher-order functions, we have encountered a sharp distinction in the difficulty of problems as perceived by students. This distinction especially matters as growing numbers of programmers learn about functional programming for data processing. We have made initial progress on identifying this distinction, which appears counter-intuitive to some. We describe the phenomenon, provide some preliminary evidence of the difference in difficulty, and suggest consequences for functional programming pedagogy.
- Peter Achten. 2021. Segments: An alternative rainfall problem. Journal of Functional Programming, 31 (2021), https://doi.org/10.1017/S0956796821000216
Google Scholar
Cross Ref
- Francisco Enrique Vicente Castro and Kathi Fisler. 2020. Qualitative Analyses of Movements Between Task-Level and Code-Level Thinking of Novice Programmers. Association for Computing Machinery, New York, NY, USA. 487–493. isbn:9781450367936 https://doi.org/10.1145/3328778.3366847
Google Scholar
Digital Library
- Alireza Ebrahimi. 1994. Novice programmer errors: Language constructs and plan composition. International Journal of Human-Computer Studies, 41, 4 (1994), 457–480. https://doi.org/10.1006/ijhc.1994.1069
Google Scholar
Digital Library
- Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, and Shriram Krishnamurthi. 2001. How to Design Programs. MIT Press. http://www.htdp.org/
Google Scholar
Digital Library
- John K Feser, Swarat Chaudhuri, and Isil Dillig. 2015. Synthesizing data structure transformations from input-output examples. ACM SIGPLAN Notices, 50, 6 (2015), 229–239. https://doi.org/10.1145/2813885.2737977
Google Scholar
Digital Library
- Robert Bruce Findler, John Clements, Cormac Flanagan, Matthew Flatt, Shriram Krishnamurthi, Paul Steckler, and Matthias Felleisen. 2002. DrScheme: A Programming Environment for Scheme. Journal of Functional Programming, 12, 2 (2002), 159–182. https://doi.org/10.1017/S0956796801004208
Google Scholar
Digital Library
- Kathi Fisler. 2014. The recurring rainfall problem. In SIGCSE International Computing Education Research Conference. 35–42. https://doi.org/10.1145/2632320.2632346
Google Scholar
Digital Library
- Kathi Fisler, Shriram Krishnamurthi, and Janet Siegmund. 2016. Modernizing Plan-Composition Studies. In ACM Technical Symposium on Computer Science Education. https://doi.org/10.1145/2839509.2844556
Google Scholar
Digital Library
- Matthew Flatt and PLT. 2010. Reference: Racket. PLT Inc.. http://racket-lang.org/tr1/
Google Scholar
- Jeremy Gibbons. 2021. How to design co-programs. Journal of Functional Programming, 31 (2021), https://doi.org/10.1017/S0956796821000113
Google Scholar
Cross Ref
- W Lewis Johnson and Elliot Soloway. 1984. Intention-based diagnosis of programming errors. In National Conference on Artificial Intelligence.
Google Scholar
- Shriram Krishnamurthi and Kathi Fisler. 2020. Data-Centricity: A Challenge and Opportunity for Computing Education. Commun. ACM, 63, 8 (2020), https://doi.org/10.1145/3408056
Google Scholar
Digital Library
- Shriram Krishnamurthi and Kathi Fisler. 2021. Developing Behavioral Concepts of Higher-Order Functions. In SIGCSE International Computing Education Research Conference. https://doi.org/10.1145/3446871.3469739
Google Scholar
Digital Library
- Mitchell J Nathan, Kenneth R Koedinger, and Martha W Alibali. 2001. Expert blind spot: When content knowledge eclipses pedagogical content knowledge. In International Conference on Cognitive Science.
Google Scholar
- Robert S Rist. 1989. Schema creation in programming. Cognitive Science, 13, 3 (1989), 389–414. https://doi.org/10.1016/0364-0213(89)90018-9
Google Scholar
Cross Ref
- Elijah Rivera, Shriram Krishnamurthi, and Robert Goldstone. 2022. Plan Composition Using Higher-Order Functions. In SIGCSE International Computing Education Research Conference. https://doi.org/10.1145/3501385.3543965
Google Scholar
Digital Library
- Neil J Salkind. 2010. Encyclopedia of Research Design. SAGE Publishing. https://doi.org/10.4135/9781412961288 Entry for “Sequence Effects”
Google Scholar
Cross Ref
- Otto Seppälä, Petri Ihantola, Essi Isohanni, Juha Sorva, and Arto Vihavainen. 2015. Do We Know How Difficult the Rainfall Problem is? In Koli Calling Conference on Computing Education Research (Koli Calling ’15). ACM, New York, NY, USA. 87–96. https://doi.org/10.1145/2828959.2828963
Google Scholar
Digital Library
- Simon. 2013. Soloway’s Rainfall Problem Has Become Harder. In Learning and Teaching in Computing and Enginering (LaTiCE). IEEE Computer Society, Los Alamitos, CA, USA. 130–135. https://doi.org/10.1109/LaTiCE.2013.44
Google Scholar
Digital Library
- Edward L. Thorndike and Robert S. Woolworth. 1901. The influence of improvement in one mental function upon the efficiency of other functions. Psychological Review, https://doi.org/10.1037/h0074898
Google Scholar
Cross Ref
Index Terms
Structural versus pipeline composition of higher-order functions (experience report)
Recommendations
The fallacy of composition
Although the fallacy of composition is little studied by theorists and trivially illustrated in textbooks, some view it as ubiquitous and highly significant. Furthermore, although definitions regard the concept as unproblematic, it contains three ...
Mining the use of higher-order functions:: An exploratory study on Scala programs
AbstractA higher-order function takes one or more functions as inputs or outputs to support the generality of function definitions. In modern programming languages, higher-order functions are designed as a feature to enhance usability and scalability. ...
Design patterns as higher-order datatype-generic programs
WGP '06: Proceedings of the 2006 ACM SIGPLAN workshop on Generic programmingDesign patterns are reusable abstractions in object-oriented software. However, using current mainstream programming languages, these elements can only be expressed extra-linguistically: as prose, pictures, and prototypes. We believe that this is not ...






Comments