Developing Behavioral Concepts of Higher-Order Functions

被引:4
|
作者
Krishnamurthi, Shriram [1 ]
Fisler, Kathi [1 ]
机构
[1] Brown Univ, Providence, RI 02912 USA
基金
美国国家科学基金会;
关键词
higher-order functions; behavior; clustering; classification;
D O I
10.1145/3446871.3469739
中图分类号
TP301 [理论、方法];
学科分类号
081202 ;
摘要
Motivation. Higher-order functions are a standard and increasingly central component in many kinds of modern programming, including data science and Web development. Yet little research has been devoted to student learning or understanding of this topic. Objectives. We conducted formative research on how well students are able to correlate higher-order functions with their inputoutput behavior. We also wanted to evaluate a variety of techniques for assessing their understanding. Method. We created a series of instruments in which students were given either concrete input/output examples or abstracted diagrams of list transformations. Students were asked to cluster or classify these examples by their behavior, sometimes against a concrete list of higher-order functions and sometimes free-form. We administered these over the course of a month, and then once again three months later. Results. We find that students initially have several difficulties with clustering higher-order function examples. With different instruments, we find that students are later able to do quite well, largely avoiding large-scale errors but making several small-scale ones. We also find some evidence of growth in their thinking about these operations. We also find weaknesses in the nature and order of techniques we used. Discussion. Higher-order functions deserve far more attention than they have been paid in the literature on programming education. Their increasing use in several important domains makes this need critical. Our proposed methods for conducting such research are another contribution of this work. Our findings and methods should also be relevant for exploring how students understand libraries and APIs.
引用
收藏
页码:306 / 318
页数:13
相关论文
共 50 条