Assessing and Teaching Scope, Mutation, and Aliasing in Upper-Level Undergraduates

Assessing and Teaching Scope, Mutation, and Aliasing in Upper-Level Undergraduates
复制标题

高年级本科生的范围、突变和别名的评估和教学

DOI:
10.1145/3017680.3017777
复制
发表时间:
2017
期刊:
Proceedings of the 2017 ACM SIGCSE Technical Symposium on Computer Science Education
影响因子:
--
通讯作者:
P. Wilson
P. Wilson
中科院分区:
--
文献类型:
--
作者:
Kathi Fisler;S. Krishnamurthi;P. Wilson

文献摘要

被引文献

相似文献

范围,混叠,突变和参数传递是基本的编程概念,以微妙的方式相互作用,尤其是在复杂的程序中。研究表明,学生对这些主题有实质性的误解。但是,这项研究主要是在CS1课程中进行的,当学生的编程经验有限并且问题一定很简单时。课程后期会发生什么?更多的编程是否会自然而然地弄清这些误解,还是需要干预措施?本文探讨了学生在第三年和四年级专业的编程语言课程中对这些主题的理解。我们的预测试和后测试提出了两种编程语言的问题,以评估上层学生是否在语言之间转移知识。许多学生在课程开始时对这些概念持误解。学生仅以某些语言和话题取得进展,并且自然而然地进行了跨语言转移。我们还讨论了我们用来参与这些概念的各种教学活动,并就其有效性提供数据和学生意见。
Scope, aliasing, mutation, and parameter passing are fundamental programming concepts that interact in subtle ways, especially in complex programs. Research has shown that students have substantial misconceptions on these topics. But this research has been done largely in CS1 courses, when students' programming experience is limited and problems are necessarily simple. What happens later in the curriculum? Does more programming experience iron out these misconceptions naturally, or are interventions required? This paper explores students' understanding of these topics in the context of a programming languages class for third- and fourth-year CS majors. Our pre- and post-tests pose questions in two programming languages to gauge whether upper-level students transfer knowledge between languages. Many students held misconceptions about these concepts at the start of the course. Students made progress in only some languages and topics, and cross-language transfer does not occur naturally. We also discuss various pedagogic activities we used to engage students with these concepts, and provide data and student opinion on their effectiveness.