The Role of Abstraction in Introductory Programming

Kezia Devathasan, Celina Berg, D. Damian
{"title":"The Role of Abstraction in Introductory Programming","authors":"Kezia Devathasan, Celina Berg, D. Damian","doi":"10.1145/3563767.3568125","DOIUrl":null,"url":null,"abstract":"First year computer science (CS) courses have mean failure rates as high as 30.3% [13]. In an attempt to identify and mitigate potential contributing factors to this problem, this study aims to investigate how the understanding of abstraction impacts students’ programming ability and subsequent success in a first-year data structures course. Specifically, we employ the use of videos to explicitly introduce the concept of abstraction and assess understanding through quizzes directly related to concrete programming exercises. Our work is motivated and guided by related work on abstract thinking as it relates to the skillset of a computer scientist, in addition to existing work on the introduction of abstraction as a learning outcome in computer science education. We measure the students’ understanding of abstraction through a series of short weekly quizzes tightly tied to graded programming exercises. Through our analysis we identify specific topics in the introductory CS course that present abstraction difficulties for students, and suggest potential reasons that these topics are particularly challenging. We also evaluate the students’ learning experience when taught abstraction explicitly, discussing both successes and areas in need of improvement. Finally, we recommend introducing abstraction into the early CS curriculum as an explicit learning outcome and treating the topic as a persistent theme throughout courses in order to support students’ understanding of foundational programming.","PeriodicalId":344777,"journal":{"name":"Proceedings of the 2022 ACM SIGPLAN International Symposium on SPLASH-E","volume":"12 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2022-11-29","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"1","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings of the 2022 ACM SIGPLAN International Symposium on SPLASH-E","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/3563767.3568125","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 1

Abstract

First year computer science (CS) courses have mean failure rates as high as 30.3% [13]. In an attempt to identify and mitigate potential contributing factors to this problem, this study aims to investigate how the understanding of abstraction impacts students’ programming ability and subsequent success in a first-year data structures course. Specifically, we employ the use of videos to explicitly introduce the concept of abstraction and assess understanding through quizzes directly related to concrete programming exercises. Our work is motivated and guided by related work on abstract thinking as it relates to the skillset of a computer scientist, in addition to existing work on the introduction of abstraction as a learning outcome in computer science education. We measure the students’ understanding of abstraction through a series of short weekly quizzes tightly tied to graded programming exercises. Through our analysis we identify specific topics in the introductory CS course that present abstraction difficulties for students, and suggest potential reasons that these topics are particularly challenging. We also evaluate the students’ learning experience when taught abstraction explicitly, discussing both successes and areas in need of improvement. Finally, we recommend introducing abstraction into the early CS curriculum as an explicit learning outcome and treating the topic as a persistent theme throughout courses in order to support students’ understanding of foundational programming.
抽象在编程入门中的作用
第一年计算机科学(CS)课程的平均不及格率高达30.3%[13]。为了识别和减轻造成这一问题的潜在因素,本研究旨在调查对抽象的理解如何影响学生的编程能力和随后在一年级数据结构课程中的成功。具体来说,我们使用视频来明确地介绍抽象的概念,并通过与具体编程练习直接相关的测验来评估理解。我们的工作受到抽象思维相关工作的激励和指导,因为它与计算机科学家的技能相关,此外还有将抽象作为学习成果引入计算机科学教育的现有工作。我们通过一系列与分级编程练习紧密相关的每周小测验来衡量学生对抽象的理解。通过我们的分析,我们确定了CS入门课程中给学生带来抽象困难的特定主题,并提出了这些主题特别具有挑战性的潜在原因。我们也会评估学生在学习抽象时的学习经验,讨论成功和需要改进的地方。最后,我们建议将抽象作为明确的学习成果引入早期CS课程,并将该主题作为贯穿课程的持久主题,以支持学生对基础编程的理解。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:604180095
Book学术官方微信