意大利面条vs模块化代码——新手程序员的选择

I. Lavy, Rami Rashkovits
{"title":"意大利面条vs模块化代码——新手程序员的选择","authors":"I. Lavy, Rami Rashkovits","doi":"10.33965/IS2019_201905L008","DOIUrl":null,"url":null,"abstract":"Code modularity is one of the criteria for testing software quality. Nevertheless, novice programmers often tend to avoid writing modular code. In this study, we aim to explore the circumstances in which novice programmers choose to write modular code. To address this aim, two student groups, twenty in each, were given a programming task, each in different configuration. Group-1 was given the task in several phases, each add complexity to the previous one, while Group-2 was given the entire task at once. The entire task was rather complex and its modular solution requires the definition of few classes and methods, each responsible to one of the problem's aspects. The students' solutions were analyzed using the dual-process theory, cognitive dissonance theory and content analysis methods to explore the extent of code modularity. The analysis revealed the following: (1) as regards to Group-1, a minor increase in the number of modular solutions was found while they progressed along the phases; (2) The number of modular solutions of Group-2 was higher than of Group-1. Analysis of students' justifications for lack of code modularity in Group-1 revealed the following. The first phase of the problem was perceived as rather simple hence many students did not find any reason to invest in designing a modular solution. When the task got complex in the following phases, some students realized that a modular solution would fit better, hence a cognitive dissonance was raised. Nevertheless, many of them preferred to continue their course of non-modular solution instead of re-designing a modular new one. In order to decrease the dissonance they claimed that this decision saved time. Students of both groups also attributed their non-modular code to lack of explicit criteria for the evaluation of the code quality that lead them to focus on functionality alone.","PeriodicalId":155412,"journal":{"name":"12th IADIS International Conference Information Systems 2019","volume":"13 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2019-04-11","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":"{\"title\":\"SPAGHETTI VS. MODULAR CODE - THE CHOICE OF NOVICE PROGRAMMERS\",\"authors\":\"I. Lavy, Rami Rashkovits\",\"doi\":\"10.33965/IS2019_201905L008\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"Code modularity is one of the criteria for testing software quality. Nevertheless, novice programmers often tend to avoid writing modular code. In this study, we aim to explore the circumstances in which novice programmers choose to write modular code. To address this aim, two student groups, twenty in each, were given a programming task, each in different configuration. Group-1 was given the task in several phases, each add complexity to the previous one, while Group-2 was given the entire task at once. The entire task was rather complex and its modular solution requires the definition of few classes and methods, each responsible to one of the problem's aspects. The students' solutions were analyzed using the dual-process theory, cognitive dissonance theory and content analysis methods to explore the extent of code modularity. The analysis revealed the following: (1) as regards to Group-1, a minor increase in the number of modular solutions was found while they progressed along the phases; (2) The number of modular solutions of Group-2 was higher than of Group-1. Analysis of students' justifications for lack of code modularity in Group-1 revealed the following. The first phase of the problem was perceived as rather simple hence many students did not find any reason to invest in designing a modular solution. When the task got complex in the following phases, some students realized that a modular solution would fit better, hence a cognitive dissonance was raised. Nevertheless, many of them preferred to continue their course of non-modular solution instead of re-designing a modular new one. In order to decrease the dissonance they claimed that this decision saved time. Students of both groups also attributed their non-modular code to lack of explicit criteria for the evaluation of the code quality that lead them to focus on functionality alone.\",\"PeriodicalId\":155412,\"journal\":{\"name\":\"12th IADIS International Conference Information Systems 2019\",\"volume\":\"13 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2019-04-11\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"0\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"12th IADIS International Conference Information Systems 2019\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.33965/IS2019_201905L008\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"12th IADIS International Conference Information Systems 2019","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.33965/IS2019_201905L008","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0

摘要

代码模块化是测试软件质量的标准之一。然而,新手程序员往往倾向于避免编写模块化代码。在这项研究中,我们旨在探索新手程序员选择编写模块化代码的情况。为了实现这一目标,两个学生小组,每组20人,被分配了一个编程任务,每个小组都有不同的配置。小组1分几个阶段完成任务,每个阶段都增加前一个任务的复杂性,而小组2一次完成整个任务。整个任务相当复杂,其模块化解决方案需要定义几个类和方法,每个类和方法负责问题的一个方面。采用双过程理论、认知失调理论和内容分析方法对学生的解决方案进行分析,探讨代码模块化的程度。分析结果如下:(1)对于第1组,发现随着阶段的进展,模块解的数量略有增加;(2)组2的模解个数高于组1。通过分析第一组学生对缺乏代码模块化的理由,我们发现了以下几点。问题的第一阶段被认为相当简单,因此许多学生没有找到任何理由投资设计模块化解决方案。当任务在接下来的阶段变得复杂时,一些学生意识到模块化解决方案更适合,因此产生了认知失调。然而,他们中的许多人宁愿继续他们的非模块化解决方案的过程,而不是重新设计一个模块化的新解决方案。为了减少不和谐,他们声称这个决定节省了时间。两组的学生还将他们的非模块化代码归因于缺乏明确的代码质量评估标准,导致他们只关注功能。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
SPAGHETTI VS. MODULAR CODE - THE CHOICE OF NOVICE PROGRAMMERS
Code modularity is one of the criteria for testing software quality. Nevertheless, novice programmers often tend to avoid writing modular code. In this study, we aim to explore the circumstances in which novice programmers choose to write modular code. To address this aim, two student groups, twenty in each, were given a programming task, each in different configuration. Group-1 was given the task in several phases, each add complexity to the previous one, while Group-2 was given the entire task at once. The entire task was rather complex and its modular solution requires the definition of few classes and methods, each responsible to one of the problem's aspects. The students' solutions were analyzed using the dual-process theory, cognitive dissonance theory and content analysis methods to explore the extent of code modularity. The analysis revealed the following: (1) as regards to Group-1, a minor increase in the number of modular solutions was found while they progressed along the phases; (2) The number of modular solutions of Group-2 was higher than of Group-1. Analysis of students' justifications for lack of code modularity in Group-1 revealed the following. The first phase of the problem was perceived as rather simple hence many students did not find any reason to invest in designing a modular solution. When the task got complex in the following phases, some students realized that a modular solution would fit better, hence a cognitive dissonance was raised. Nevertheless, many of them preferred to continue their course of non-modular solution instead of re-designing a modular new one. In order to decrease the dissonance they claimed that this decision saved time. Students of both groups also attributed their non-modular code to lack of explicit criteria for the evaluation of the code quality that lead them to focus on functionality alone.
求助全文
通过发布文献求助,成功后即可免费获取论文全文。 去求助
来源期刊
自引率
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学术官方微信