首页 > 最新文献

软件产业与工程最新文献

英文 中文
The ABC of Pair Programming: Gender-dependent Attitude, Behavior and Code of Young Learners 结对编程的基础知识:年轻学习者的性别依赖态度、行为和代码
Pub Date : 2023-04-18 DOI: 10.1109/ICSE-SEET58685.2023.00018
Isabella Graßl, G. Fraser
Young learners are increasingly introduced to programming, and one of the main challenges for educators is to achieve learning success while also creating enthusiasm. As it is particularly difficult to achieve this enthusiasm initially in young females, prior work has identified gender-specific differences in the programming behavior of young learners. Since pair programming, which turns programming into a more sociable activity, has been proposed as an approach to support programming education, in this paper we aim to investigate whether similar gender-specific characteristics can also be observed during pair programming. Therefore, we designed a gender-neutral introductory SCRATCH programming course tailored for integrating pair programming principles, and conducted it with a total of 139 students aged between 8 and 14 years. To identify gender-dependent differences and similarities, we measure the attitude towards programming and the course setting, observe the behavior of the students while programming, and analyze the code of the programs for different gender-combinations. Overall, our study demonstrates that pair programming is well suited for young learners and results in a positive attitude. While the resulting programs are similar in quality and complexity independent of gender, differences are evident when it comes to the compliance to pair programming roles, the exploration of code, and the creative customization of programs. These findings contribute to an in-depth understanding of social and technical gender specifics of pair programming, and provide educators with resources and guidance for implementing gender-sensitive pair programming in the classroom.
越来越多的年轻学习者开始接触编程,教育工作者面临的主要挑战之一是在创造热情的同时取得学习成功。由于最初在年轻女性中实现这种热情特别困难,先前的工作已经确定了年轻学习者在编程行为方面的性别差异。结对编程,将编程变成一种更社会化的活动,已经被提议作为一种支持编程教育的方法,在本文中,我们的目的是调查是否在结对编程中也可以观察到类似的性别特征。因此,我们设计了一门融合结对编程原则的无性别SCRATCH编程入门课程,并与139名年龄在8 - 14岁之间的学生一起进行。为了识别性别差异和相似性,我们测量了学生对编程的态度和课程设置,观察了学生在编程时的行为,并分析了不同性别组合的程序代码。总的来说,我们的研究表明结对编程非常适合年轻学习者,并产生积极的态度。尽管最终的程序在质量和复杂性上与性别无关,但在遵循结对编程角色、对代码的探索和对程序的创造性定制方面,差异是明显的。这些发现有助于深入了解结对编程的社会和技术性别特征,并为教育工作者在课堂上实施对性别敏感的结对编程提供资源和指导。
{"title":"The ABC of Pair Programming: Gender-dependent Attitude, Behavior and Code of Young Learners","authors":"Isabella Graßl, G. Fraser","doi":"10.1109/ICSE-SEET58685.2023.00018","DOIUrl":"https://doi.org/10.1109/ICSE-SEET58685.2023.00018","url":null,"abstract":"Young learners are increasingly introduced to programming, and one of the main challenges for educators is to achieve learning success while also creating enthusiasm. As it is particularly difficult to achieve this enthusiasm initially in young females, prior work has identified gender-specific differences in the programming behavior of young learners. Since pair programming, which turns programming into a more sociable activity, has been proposed as an approach to support programming education, in this paper we aim to investigate whether similar gender-specific characteristics can also be observed during pair programming. Therefore, we designed a gender-neutral introductory SCRATCH programming course tailored for integrating pair programming principles, and conducted it with a total of 139 students aged between 8 and 14 years. To identify gender-dependent differences and similarities, we measure the attitude towards programming and the course setting, observe the behavior of the students while programming, and analyze the code of the programs for different gender-combinations. Overall, our study demonstrates that pair programming is well suited for young learners and results in a positive attitude. While the resulting programs are similar in quality and complexity independent of gender, differences are evident when it comes to the compliance to pair programming roles, the exploration of code, and the creative customization of programs. These findings contribute to an in-depth understanding of social and technical gender specifics of pair programming, and provide educators with resources and guidance for implementing gender-sensitive pair programming in the classroom.","PeriodicalId":68155,"journal":{"name":"软件产业与工程","volume":"74 1","pages":"115-127"},"PeriodicalIF":0.0,"publicationDate":"2023-04-18","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"79999311","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Do the Test Smells Assertion Roulette and Eager Test Impact Students’ Troubleshooting and Debugging Capabilities? 测试气味断言轮盘赌和渴望测试是否影响学生的故障排除和调试能力?
Pub Date : 2023-03-07 DOI: 10.1109/ICSE-SEET58685.2023.00009
Wajdi Aljedaani, Mohamed Wiem Mkaouer, Anthony Peruma, S. Ludi
To ensure the quality of a software system, developers perform an activity known as unit testing, where they write code (known as test cases) that verifies the individual software units that make up the system. Like production code, test cases are subject to bad programming practices, known as test smells, that hurt maintenance activities. An essential part of most maintenance activities is program comprehension which involves developers reading the code to understand its behavior to fix issues or update features. In this study, we conduct a controlled experiment with 96 undergraduate computer science students to investigate the impact of two common types of test smells, namely Assertion Roulette and Eager Test, on a student’s ability to debug and troubleshoot test case failures. Our findings show that students take longer to correct errors in production code when smells are present in their associated test cases, especially Assertion Roulette. We envision our findings supporting academia in better equipping students with the knowledge and resources in writing and maintaining high-quality test cases. Our experimental materials are available online11https://wajdialjedaani.github.io/testsmellstd/
为了确保软件系统的质量,开发人员执行一种称为单元测试的活动,他们在其中编写代码(称为测试用例)来验证组成系统的单个软件单元。与产品代码一样,测试用例也受制于不良的编程实践,即所谓的“测试气味”,这会损害维护活动。大多数维护活动的一个重要部分是程序理解,这涉及到开发人员阅读代码以理解其行为以修复问题或更新功能。在这项研究中,我们对96名计算机科学专业的本科生进行了一项对照实验,以调查两种常见的测试气味,即断言轮盘赌和渴望测试,对学生调试和排除测试用例失败的能力的影响。我们的发现表明,当气味出现在相关的测试用例中时,学生需要更长的时间来纠正产品代码中的错误,尤其是断言轮盘赌。我们设想我们的发现支持学术界更好地为学生提供编写和维护高质量测试用例的知识和资源。我们的实验材料可以在网上找到:11https://wajdialjedaani.github.io/testsmellstd/
{"title":"Do the Test Smells Assertion Roulette and Eager Test Impact Students’ Troubleshooting and Debugging Capabilities?","authors":"Wajdi Aljedaani, Mohamed Wiem Mkaouer, Anthony Peruma, S. Ludi","doi":"10.1109/ICSE-SEET58685.2023.00009","DOIUrl":"https://doi.org/10.1109/ICSE-SEET58685.2023.00009","url":null,"abstract":"To ensure the quality of a software system, developers perform an activity known as unit testing, where they write code (known as test cases) that verifies the individual software units that make up the system. Like production code, test cases are subject to bad programming practices, known as test smells, that hurt maintenance activities. An essential part of most maintenance activities is program comprehension which involves developers reading the code to understand its behavior to fix issues or update features. In this study, we conduct a controlled experiment with 96 undergraduate computer science students to investigate the impact of two common types of test smells, namely Assertion Roulette and Eager Test, on a student’s ability to debug and troubleshoot test case failures. Our findings show that students take longer to correct errors in production code when smells are present in their associated test cases, especially Assertion Roulette. We envision our findings supporting academia in better equipping students with the knowledge and resources in writing and maintaining high-quality test cases. Our experimental materials are available online11https://wajdialjedaani.github.io/testsmellstd/","PeriodicalId":68155,"journal":{"name":"软件产业与工程","volume":"4 1","pages":"29-39"},"PeriodicalIF":0.0,"publicationDate":"2023-03-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"90559216","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 2
On the use of static analysis to engage students with software quality improvement: An experience with PMD 关于使用静态分析使学生参与软件质量改进:PMD的经验
Pub Date : 2023-02-11 DOI: 10.1109/ICSE-SEET58685.2023.00023
E. Alomar, Salma Alomar, Mohamed Wiem Mkaouer
Static analysis tools are frequently used to scan the source code and detect deviations from the project coding guidelines. Given their importance, linters are often introduced to classrooms to educate students on how to detect and potentially avoid these code anti-patterns. However, little is known about their effectiveness in raising students’ awareness, given that these linters tend to generate a large number of false positives. To increase the awareness of potential coding issues that violate coding standards, in this paper, we aim to reflect on our experience with teaching the use of static analysis for the purpose of evaluating its effectiveness in helping students with respect to improving software quality. This paper discusses the results of an experiment in the classroom, over a period of 3 academic semesters, involving 65 submissions that carried out code review activity of 690 rules using PMD. The results of the quantitative and qualitative analysis show that the presence of a set of PMD quality issues influences the acceptance or rejection of the issues, design, and best practices-related categories that take longer time to be resolved, and students acknowledge the potential of using static analysis tools during code review. Through this experiment, code review can turn into a vital part of the educational computing plan. We envision our findings enabling educators to support students with code review strategies in order to raise students’ awareness about static analysis tools and scaffold their coding skills.
静态分析工具经常用于扫描源代码并检测与项目编码指南的偏差。考虑到它们的重要性,lint经常被引入课堂,以教育学生如何检测和潜在地避免这些代码反模式。然而,鉴于这些测试往往会产生大量的误报,人们对它们在提高学生意识方面的有效性知之甚少。为了提高对违反编码标准的潜在编码问题的认识,在本文中,我们的目标是反思我们在教学中使用静态分析的经验,以评估其在帮助学生提高软件质量方面的有效性。本文讨论了在3个学期的课堂实验结果,涉及65个提交,使用PMD对690条规则进行了代码审查活动。定量和定性分析的结果表明,一组PMD质量问题的存在影响了问题、设计和最佳实践相关类别的接受或拒绝,这些问题需要更长的时间来解决,并且学生承认在代码审查期间使用静态分析工具的潜力。通过这个实验,代码审查可以成为教育计算计划的重要组成部分。我们设想我们的发现使教育工作者能够用代码审查策略来支持学生,以提高学生对静态分析工具的认识,并支撑他们的编码技能。
{"title":"On the use of static analysis to engage students with software quality improvement: An experience with PMD","authors":"E. Alomar, Salma Alomar, Mohamed Wiem Mkaouer","doi":"10.1109/ICSE-SEET58685.2023.00023","DOIUrl":"https://doi.org/10.1109/ICSE-SEET58685.2023.00023","url":null,"abstract":"Static analysis tools are frequently used to scan the source code and detect deviations from the project coding guidelines. Given their importance, linters are often introduced to classrooms to educate students on how to detect and potentially avoid these code anti-patterns. However, little is known about their effectiveness in raising students’ awareness, given that these linters tend to generate a large number of false positives. To increase the awareness of potential coding issues that violate coding standards, in this paper, we aim to reflect on our experience with teaching the use of static analysis for the purpose of evaluating its effectiveness in helping students with respect to improving software quality. This paper discusses the results of an experiment in the classroom, over a period of 3 academic semesters, involving 65 submissions that carried out code review activity of 690 rules using PMD. The results of the quantitative and qualitative analysis show that the presence of a set of PMD quality issues influences the acceptance or rejection of the issues, design, and best practices-related categories that take longer time to be resolved, and students acknowledge the potential of using static analysis tools during code review. Through this experiment, code review can turn into a vital part of the educational computing plan. We envision our findings enabling educators to support students with code review strategies in order to raise students’ awareness about static analysis tools and scaffold their coding skills.","PeriodicalId":68155,"journal":{"name":"软件产业与工程","volume":"67 1","pages":"179-191"},"PeriodicalIF":0.0,"publicationDate":"2023-02-11","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"86851913","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 1
Overcoming Challenges in DevOps Education through Teaching Method 通过教学方法克服DevOps教育中的挑战
Pub Date : 2023-02-11 DOI: 10.1109/ICSE-SEET58685.2023.00022
Samuel Ferino, M. Fernandes, Elder Cirilo, Lucas Agnez, B. Batista, U. Kulesza, E. Aranha, Christoph Treude
DevOps is a set of practices that deals with coordination between development and operation teams and ensures rapid and reliable new software releases that are essential in industry. DevOps education assumes the vital task of preparing new professionals in these practices using appropriate teaching methods. However, there are insufficient studies investigating teaching methods in DevOps. We performed an analysis based on interviews to identify teaching methods and their relationship with DevOps educational challenges. Our findings show that project-based learning and collaborative learning are emerging as the most relevant teaching methods.
DevOps是一组处理开发和操作团队之间协调的实践,并确保快速可靠的新软件发布,这是工业中必不可少的。DevOps教育承担了使用适当的教学方法在这些实践中培养新专业人员的重要任务。然而,关于DevOps教学方法的研究还不够。我们基于访谈进行了分析,以确定教学方法及其与DevOps教育挑战的关系。我们的研究结果表明,基于项目的学习和协作学习正在成为最相关的教学方法。
{"title":"Overcoming Challenges in DevOps Education through Teaching Method","authors":"Samuel Ferino, M. Fernandes, Elder Cirilo, Lucas Agnez, B. Batista, U. Kulesza, E. Aranha, Christoph Treude","doi":"10.1109/ICSE-SEET58685.2023.00022","DOIUrl":"https://doi.org/10.1109/ICSE-SEET58685.2023.00022","url":null,"abstract":"DevOps is a set of practices that deals with coordination between development and operation teams and ensures rapid and reliable new software releases that are essential in industry. DevOps education assumes the vital task of preparing new professionals in these practices using appropriate teaching methods. However, there are insufficient studies investigating teaching methods in DevOps. We performed an analysis based on interviews to identify teaching methods and their relationship with DevOps educational challenges. Our findings show that project-based learning and collaborative learning are emerging as the most relevant teaching methods.","PeriodicalId":68155,"journal":{"name":"软件产业与工程","volume":"36 1","pages":"166-178"},"PeriodicalIF":0.0,"publicationDate":"2023-02-11","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"87215742","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 1
Persona-based Assessment of Software Engineering Student Research Projects: An Experience Report 基于个人的软件工程学生研究项目评估:经验报告
Pub Date : 2023-02-11 DOI: 10.1109/ICSE-SEET58685.2023.00025
Chetan Arora, Laura Tubino, A. Cain, K. Lee, V. Malhotra
Students enrolled in software engineering degrees are generally required to undertake a research project in their final year through which they demonstrate the ability to conduct research, communicate outcomes, and build in-depth expertise in an area. Assessment in these projects typically involves evaluating the product of their research via a thesis or a similar artifact. However, this misses a range of other factors that go into producing successful software engineers and researchers. Incorporating aspects such as process, attitudes, project complexity, and supervision support into the assessment can provide a more holistic evaluation of the performance likely to better align with the intended learning outcomes. In this paper, we present on our experience of adopting an innovative assessment approach to enhance learning outcomes and research performance in our software engineering research projects. Our approach adopted a task-oriented approach to portfolio assessment that incorporates student personas, frequent formative feedback, delayed summative grading, and standards-aligned outcomes-based assessment. We report upon our continuous improvement journey in adapting tasks and criteria to address the challenges of assessing student research projects. Our lessons learnt demonstrate the value of personas to guide the development of holistic rubrics, giving meaning to grades and focusing staff and student attention on attitudes and skills rather than a product only.
注册软件工程学位的学生通常需要在最后一年进行一个研究项目,通过这个项目,他们可以展示进行研究的能力,交流结果,并在一个领域建立深入的专业知识。这些项目的评估通常包括通过论文或类似的工件来评估他们的研究成果。然而,这忽略了培养成功的软件工程师和研究人员的一系列其他因素。将过程、态度、项目复杂性和监督支持等方面纳入评估可以提供对绩效的更全面的评估,可能更好地与预期的学习结果保持一致。在本文中,我们介绍了我们在软件工程研究项目中采用创新评估方法来提高学习成果和研究绩效的经验。我们的方法采用以任务为导向的方法进行组合评估,该方法结合了学生角色、频繁的形成性反馈、延迟的总结性评分和基于标准的结果评估。我们报告了我们在调整任务和标准方面的持续改进历程,以应对评估学生研究项目的挑战。我们吸取的教训表明,人物角色在指导整体评分标准制定方面的价值,赋予分数意义,并将员工和学生的注意力集中在态度和技能上,而不仅仅是产品上。
{"title":"Persona-based Assessment of Software Engineering Student Research Projects: An Experience Report","authors":"Chetan Arora, Laura Tubino, A. Cain, K. Lee, V. Malhotra","doi":"10.1109/ICSE-SEET58685.2023.00025","DOIUrl":"https://doi.org/10.1109/ICSE-SEET58685.2023.00025","url":null,"abstract":"Students enrolled in software engineering degrees are generally required to undertake a research project in their final year through which they demonstrate the ability to conduct research, communicate outcomes, and build in-depth expertise in an area. Assessment in these projects typically involves evaluating the product of their research via a thesis or a similar artifact. However, this misses a range of other factors that go into producing successful software engineers and researchers. Incorporating aspects such as process, attitudes, project complexity, and supervision support into the assessment can provide a more holistic evaluation of the performance likely to better align with the intended learning outcomes. In this paper, we present on our experience of adopting an innovative assessment approach to enhance learning outcomes and research performance in our software engineering research projects. Our approach adopted a task-oriented approach to portfolio assessment that incorporates student personas, frequent formative feedback, delayed summative grading, and standards-aligned outcomes-based assessment. We report upon our continuous improvement journey in adapting tasks and criteria to address the challenges of assessing student research projects. Our lessons learnt demonstrate the value of personas to guide the development of holistic rubrics, giving meaning to grades and focusing staff and student attention on attitudes and skills rather than a product only.","PeriodicalId":68155,"journal":{"name":"软件产业与工程","volume":"318 1","pages":"198-209"},"PeriodicalIF":0.0,"publicationDate":"2023-02-11","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"77546627","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Leveraging Diversity in Software Engineering Education through Community Engaged Learning and a Supportive Network 通过社区参与学习和支持性网络来利用软件工程教育的多样性
Pub Date : 2023-02-10 DOI: 10.1109/ICSE-SEET58685.2023.00029
Nowshin Nawar Arony, Kezia Devathasan, Ze Shi Li, D. Damian
While a lack of diversity is a longstanding problem in computer science and engineering, universities and organizations continue to look for solutions to this issue. Among the first of its kind, we launched INSPIRE: STEM for Social Impact, a program at the University of Victoria, Canada, aimed to motivate and empower students from underrepresented groups in computer science and engineering to develop digital solutions for society impactful projects by engaging in experiential learning projects with identified community-partners. The twenty-four students in the program came from diverse backgrounds in terms of academic areas of study, genders, ethnicities, and levels of technical and educational experience. Working with six community partners, these students spent four months learning and developing solutions for a societal and/or environmental problem with potential for local and global impacts. Our experiences indicate that working in a diverse team with real clients on solving pressing issues produces a sense of competence, relatedness, and autonomy which are the basis of self-determination theory. Due to the unique structure of this program, the three principles of self-determination theory emerged through different experiences, ultimately motivating the students to build a network of likeminded people. The importance of such a network is profound in empowering students to succeed and, in retrospect, remain in software engineering fields. We address the diversity problem by providing diverse, underrepresented students with a safe and like-minded environment where they can learn and realize their full potential. Hence, in this paper, we describe the program design, experiences, and lessons learned from this approach. We also provide recommendations for universities and organizations that may want to adapt our approach.
虽然缺乏多样性是计算机科学和工程领域一个长期存在的问题,但大学和组织仍在继续寻找解决这个问题的办法。我们在加拿大维多利亚大学启动了INSPIRE: STEM for Social Impact项目,旨在激励和授权计算机科学和工程领域代表性不足群体的学生,通过与确定的社区合作伙伴参与体验式学习项目,为具有社会影响力的项目开发数字解决方案。该项目的24名学生来自不同的学术研究领域、性别、种族、技术和教育经验水平。这些学生与六个社区伙伴合作,花了四个月的时间学习和制定解决方案,以解决可能对当地和全球产生影响的社会和/或环境问题。我们的经验表明,在一个多元化的团队中,与真正的客户一起解决紧迫的问题,会产生一种能力感、亲切感和自主权,这是自我决定理论的基础。由于这个项目的独特结构,自决理论的三个原则通过不同的经历产生,最终激励学生建立一个志同道合的人的网络。这样一个网络的重要性是深远的,它使学生能够在软件工程领域取得成功。我们通过为多元化,代表性不足的学生提供一个安全和志同道合的环境来解决多样性问题,让他们能够学习并充分发挥自己的潜力。因此,在本文中,我们描述了程序设计,经验,以及从这种方法中学到的教训。我们也为那些想要采用我们方法的大学和组织提供建议。
{"title":"Leveraging Diversity in Software Engineering Education through Community Engaged Learning and a Supportive Network","authors":"Nowshin Nawar Arony, Kezia Devathasan, Ze Shi Li, D. Damian","doi":"10.1109/ICSE-SEET58685.2023.00029","DOIUrl":"https://doi.org/10.1109/ICSE-SEET58685.2023.00029","url":null,"abstract":"While a lack of diversity is a longstanding problem in computer science and engineering, universities and organizations continue to look for solutions to this issue. Among the first of its kind, we launched INSPIRE: STEM for Social Impact, a program at the University of Victoria, Canada, aimed to motivate and empower students from underrepresented groups in computer science and engineering to develop digital solutions for society impactful projects by engaging in experiential learning projects with identified community-partners. The twenty-four students in the program came from diverse backgrounds in terms of academic areas of study, genders, ethnicities, and levels of technical and educational experience. Working with six community partners, these students spent four months learning and developing solutions for a societal and/or environmental problem with potential for local and global impacts. Our experiences indicate that working in a diverse team with real clients on solving pressing issues produces a sense of competence, relatedness, and autonomy which are the basis of self-determination theory. Due to the unique structure of this program, the three principles of self-determination theory emerged through different experiences, ultimately motivating the students to build a network of likeminded people. The importance of such a network is profound in empowering students to succeed and, in retrospect, remain in software engineering fields. We address the diversity problem by providing diverse, underrepresented students with a safe and like-minded environment where they can learn and realize their full potential. Hence, in this paper, we describe the program design, experiences, and lessons learned from this approach. We also provide recommendations for universities and organizations that may want to adapt our approach.","PeriodicalId":68155,"journal":{"name":"软件产业与工程","volume":"11 1","pages":"247-258"},"PeriodicalIF":0.0,"publicationDate":"2023-02-10","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"89561505","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
“Software is the easy part of Software Engineering” - Lessons and Experiences from A Large-Scale, Multi-Team Capstone Course “软件是软件工程中最简单的部分”——来自大型、多团队顶点课程的教训和经验
Pub Date : 2023-02-10 DOI: 10.1109/ICSE-SEET58685.2023.00027
Ze Shi Li, Nowshin Nawar Arony, Kezia Devathasan, D. Damian
Capstone courses in undergraduate software engineering are a critical final milestone for students. These courses allow students to create a software solution and demonstrate the knowledge they accumulated in their degrees. However, a typical capstone project team is small containing no more than 5 students and function independently from other teams. To better reflect real-world software development and meet industry demands, we introduce in this paper our novel capstone course. Each student was assigned to a large-scale, multi-team (i.e., company) of up to 20 students to collaboratively build software. Students placed in a company gained first-hand experiences with respect to multi-team coordination, integration, communication, agile, and teamwork to build a microservices based project. Furthermore, each company was required to implement plug-and-play so that their services would be compatible with another company, thereby sharing common APIs. Through developing the product in autonomous sub-teams, the students enhanced not only their technical abilities but also their soft skills such as communication and coordination. More importantly, experiencing the challenges that arose from the multi-team project trained students to realize the pitfalls and advantages of organizational culture. Among many lessons learned from this course experience, students learned the critical importance of building team trust. We provide detailed information about our course structure, lessons learned, and propose recommendations for other universities and programs. Our work concerns educators interested in launching similar capstone projects so that students in other institutions can reap the benefits of large-scale, multi-team development.
本科软件工程的顶点课程对学生来说是一个关键的最终里程碑。这些课程允许学生创建一个软件解决方案,并展示他们在学位中积累的知识。然而,一个典型的顶点项目团队是小型的,不超过5名学生,并且独立于其他团队运作。为了更好地反映现实世界的软件开发和满足行业需求,我们在本文中介绍了我们的新顶点课程。每个学生被分配到一个多达20名学生的大型、多团队(例如,公司),共同构建软件。学生们被安排到一家公司,获得了关于多团队协调、集成、沟通、敏捷和团队合作来构建基于微服务的项目的第一手经验。此外,每个公司都需要实现即插即用,以便他们的服务与另一个公司兼容,从而共享公共api。通过自主小组开发产品,学生们不仅提高了自己的技术能力,还提高了沟通、协调等软技能。更重要的是,经历了多团队项目带来的挑战,培养了学生认识到组织文化的缺陷和优势。学生们从这门课程中学到了很多,其中包括建立团队信任的重要性。我们提供有关课程结构、经验教训的详细信息,并为其他大学和项目提出建议。我们的工作涉及对发起类似顶点项目感兴趣的教育工作者,这样其他机构的学生就可以从大规模、多团队的发展中获益。
{"title":"“Software is the easy part of Software Engineering” - Lessons and Experiences from A Large-Scale, Multi-Team Capstone Course","authors":"Ze Shi Li, Nowshin Nawar Arony, Kezia Devathasan, D. Damian","doi":"10.1109/ICSE-SEET58685.2023.00027","DOIUrl":"https://doi.org/10.1109/ICSE-SEET58685.2023.00027","url":null,"abstract":"Capstone courses in undergraduate software engineering are a critical final milestone for students. These courses allow students to create a software solution and demonstrate the knowledge they accumulated in their degrees. However, a typical capstone project team is small containing no more than 5 students and function independently from other teams. To better reflect real-world software development and meet industry demands, we introduce in this paper our novel capstone course. Each student was assigned to a large-scale, multi-team (i.e., company) of up to 20 students to collaboratively build software. Students placed in a company gained first-hand experiences with respect to multi-team coordination, integration, communication, agile, and teamwork to build a microservices based project. Furthermore, each company was required to implement plug-and-play so that their services would be compatible with another company, thereby sharing common APIs. Through developing the product in autonomous sub-teams, the students enhanced not only their technical abilities but also their soft skills such as communication and coordination. More importantly, experiencing the challenges that arose from the multi-team project trained students to realize the pitfalls and advantages of organizational culture. Among many lessons learned from this course experience, students learned the critical importance of building team trust. We provide detailed information about our course structure, lessons learned, and propose recommendations for other universities and programs. Our work concerns educators interested in launching similar capstone projects so that students in other institutions can reap the benefits of large-scale, multi-team development.","PeriodicalId":68155,"journal":{"name":"软件产业与工程","volume":"1 1","pages":"223-234"},"PeriodicalIF":0.0,"publicationDate":"2023-02-10","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"86612241","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 1
Teaching MLOps in Higher Education through Project-Based Learning 基于项目学习的高等教育MLOps教学
Pub Date : 2023-02-02 DOI: 10.1109/ICSE-SEET58685.2023.00015
F. Lanubile, Silverio Mart'inez-Fern'andez, L. Quaranta
Building and maintaining production-grade ML-enabled components is a complex endeavor that goes beyond the current approach of academic education, focused on the optimization of ML model performance in the lab. In this paper, we present a project-based learning approach to teaching MLOps, focused on the demonstration and experience with emerging practices and tools to automatize the construction of ML-enabled components. We examine the design of a course based on this approach, including laboratory sessions that cover the end-to-end ML component life cycle, from model building to production deployment. Moreover, we report on preliminary results from the first edition of the course. During the present year, an updated version of the same course is being delivered in two independent universities; the related learning outcomes will be evaluated to analyze the effectiveness of project-based learning for this specific subject.
构建和维护生产级支持ML的组件是一项复杂的工作,它超越了当前的学术教育方法,专注于实验室中ML模型性能的优化。在本文中,我们提出了一种基于项目的学习方法来教授MLOps,重点关注新兴实践和工具的演示和经验,以自动化构建支持ml的组件。我们研究了基于这种方法的课程设计,包括涵盖端到端ML组件生命周期的实验室课程,从模型构建到生产部署。此外,我们还报告了课程第一版的初步结果。今年,两所独立的大学正在提供同一课程的最新版本;将评估相关的学习成果,以分析基于项目的学习对该特定主题的有效性。
{"title":"Teaching MLOps in Higher Education through Project-Based Learning","authors":"F. Lanubile, Silverio Mart'inez-Fern'andez, L. Quaranta","doi":"10.1109/ICSE-SEET58685.2023.00015","DOIUrl":"https://doi.org/10.1109/ICSE-SEET58685.2023.00015","url":null,"abstract":"Building and maintaining production-grade ML-enabled components is a complex endeavor that goes beyond the current approach of academic education, focused on the optimization of ML model performance in the lab. In this paper, we present a project-based learning approach to teaching MLOps, focused on the demonstration and experience with emerging practices and tools to automatize the construction of ML-enabled components. We examine the design of a course based on this approach, including laboratory sessions that cover the end-to-end ML component life cycle, from model building to production deployment. Moreover, we report on preliminary results from the first edition of the course. During the present year, an updated version of the same course is being delivered in two independent universities; the related learning outcomes will be evaluated to analyze the effectiveness of project-based learning for this specific subject.","PeriodicalId":68155,"journal":{"name":"软件产业与工程","volume":"73 1","pages":"95-100"},"PeriodicalIF":0.0,"publicationDate":"2023-02-02","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"75531207","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 2
Analyzing the Quality of Submissions in Online Programming Courses 在线编程课程中提交材料的质量分析
Pub Date : 2023-01-26 DOI: 10.1109/ICSE-SEET58685.2023.00031
Maria Tigina, Anastasiia Birillo, Yaroslav Golubev, H. Keuning, Nikolay Vyahhi, T. Bryksin
Programming education should aim to provide students with a broad range of skills that they will later use while developing software. An important aspect in this is their ability to write code that is not only correct but also of high quality. Unfortunately, this is difficult to control in the setting of a massive open online course. In this paper, we carry out an analysis of the code quality of submissions from JetBrains Academy — a platform for studying programming in an industry-like project-based setting with an embedded code quality assessment tool called Hyperstyle. We analyzed more than a million Java submissions and more than 1.3 million Python submissions, studied the most prevalent types of code quality issues and the dynamics of how students fix them. We provide several case studies of different issues, as well as an analysis of why certain issues remain unfixed even after several attempts. Also, we studied abnormally long sequences of submissions, in which students attempted to fix code quality issues after passing the task. Our results point the way towards the improvement of online courses, such as making sure that the task itself does not incentivize students to write code poorly.
编程教育的目标应该是为学生提供广泛的技能,以便他们以后在开发软件时使用。其中一个重要的方面是他们编写代码的能力,不仅正确而且质量高。不幸的是,这在大规模的在线开放课程中是很难控制的。在本文中,我们对JetBrains Academy提交的代码质量进行了分析。JetBrains Academy是一个用于在类似于行业的基于项目的环境中研究编程的平台,它带有一个名为Hyperstyle的嵌入式代码质量评估工具。我们分析了100多万份Java提交和130多万份Python提交,研究了最普遍的代码质量问题类型以及学生如何修复它们的动态。我们提供了几个不同问题的案例研究,以及为什么某些问题在多次尝试后仍未解决的分析。此外,我们还研究了异常长的提交序列,其中学生在通过任务后试图修复代码质量问题。我们的研究结果为在线课程的改进指明了方向,比如确保任务本身不会激励学生写出糟糕的代码。
{"title":"Analyzing the Quality of Submissions in Online Programming Courses","authors":"Maria Tigina, Anastasiia Birillo, Yaroslav Golubev, H. Keuning, Nikolay Vyahhi, T. Bryksin","doi":"10.1109/ICSE-SEET58685.2023.00031","DOIUrl":"https://doi.org/10.1109/ICSE-SEET58685.2023.00031","url":null,"abstract":"Programming education should aim to provide students with a broad range of skills that they will later use while developing software. An important aspect in this is their ability to write code that is not only correct but also of high quality. Unfortunately, this is difficult to control in the setting of a massive open online course. In this paper, we carry out an analysis of the code quality of submissions from JetBrains Academy — a platform for studying programming in an industry-like project-based setting with an embedded code quality assessment tool called Hyperstyle. We analyzed more than a million Java submissions and more than 1.3 million Python submissions, studied the most prevalent types of code quality issues and the dynamics of how students fix them. We provide several case studies of different issues, as well as an analysis of why certain issues remain unfixed even after several attempts. Also, we studied abnormally long sequences of submissions, in which students attempted to fix code quality issues after passing the task. Our results point the way towards the improvement of online courses, such as making sure that the task itself does not incentivize students to write code poorly.","PeriodicalId":68155,"journal":{"name":"软件产业与工程","volume":"1 1","pages":"271-282"},"PeriodicalIF":0.0,"publicationDate":"2023-01-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"80822203","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 1
Software startup within a university – producing industry-ready graduates 一所大学内的软件启动生产行业准备的毕业生
Pub Date : 2023-01-17 DOI: 10.1109/ICSE-SEET58685.2023.00014
Saara Tenhunen, T. Männistö, Petri Ihantola, Jami Kousa, Matti Luukkainen
Previous research has demonstrated that preparing students for life in software engineering is not a trivial task. Authentic learning experiences are challenging to provide, and there are gaps between what students have done at the university and what they are expected to master when getting into the industry after graduation. To address this challenge, we present a novel way of teaching industry-relevant skills in a university-led internal software startup called Software Development Academy (SDA). In addition to describing the SDA concept in detail, we have investigated what educational aspects characterise SDA and how it compares to capstone projects. The questions are answered based on 15 semi-structured interviews with alumni of SDA. Working with production-quality software and having a wide range of responsibilities were perceived as the most integral aspects of SDA and provided students with a comprehensive skill set for the future.
先前的研究已经证明,让学生为软件工程的生活做好准备并不是一项微不足道的任务。提供真实的学习经验是很有挑战性的,而且学生在大学里所学的知识和毕业后进入这个行业时所期望掌握的知识之间存在差距。为了应对这一挑战,我们提出了一种在大学领导的内部软件初创公司软件开发学院(SDA)中教授行业相关技能的新方法。除了详细描述SDA概念之外,我们还研究了SDA的教育特征以及它与顶点项目的比较。这些问题的答案是基于对SDA校友的15次半结构化访谈。使用生产质量的软件和承担广泛的责任被认为是SDA最重要的方面,为学生提供了未来的综合技能。
{"title":"Software startup within a university – producing industry-ready graduates","authors":"Saara Tenhunen, T. Männistö, Petri Ihantola, Jami Kousa, Matti Luukkainen","doi":"10.1109/ICSE-SEET58685.2023.00014","DOIUrl":"https://doi.org/10.1109/ICSE-SEET58685.2023.00014","url":null,"abstract":"Previous research has demonstrated that preparing students for life in software engineering is not a trivial task. Authentic learning experiences are challenging to provide, and there are gaps between what students have done at the university and what they are expected to master when getting into the industry after graduation. To address this challenge, we present a novel way of teaching industry-relevant skills in a university-led internal software startup called Software Development Academy (SDA). In addition to describing the SDA concept in detail, we have investigated what educational aspects characterise SDA and how it compares to capstone projects. The questions are answered based on 15 semi-structured interviews with alumni of SDA. Working with production-quality software and having a wide range of responsibilities were perceived as the most integral aspects of SDA and provided students with a comprehensive skill set for the future.","PeriodicalId":68155,"journal":{"name":"软件产业与工程","volume":"1 1","pages":"82-94"},"PeriodicalIF":0.0,"publicationDate":"2023-01-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"74664096","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 2
期刊
软件产业与工程
全部 Acc. Chem. Res. ACS Applied Bio Materials ACS Appl. Electron. Mater. ACS Appl. Energy Mater. ACS Appl. Mater. Interfaces ACS Appl. Nano Mater. ACS Appl. Polym. Mater. ACS BIOMATER-SCI ENG ACS Catal. ACS Cent. Sci. ACS Chem. Biol. ACS Chemical Health & Safety ACS Chem. Neurosci. ACS Comb. Sci. ACS Earth Space Chem. ACS Energy Lett. ACS Infect. Dis. ACS Macro Lett. ACS Mater. Lett. ACS Med. Chem. Lett. ACS Nano ACS Omega ACS Photonics ACS Sens. ACS Sustainable Chem. Eng. ACS Synth. Biol. Anal. Chem. BIOCHEMISTRY-US Bioconjugate Chem. BIOMACROMOLECULES Chem. Res. Toxicol. Chem. Rev. Chem. Mater. CRYST GROWTH DES ENERG FUEL Environ. Sci. Technol. Environ. Sci. Technol. Lett. Eur. J. Inorg. Chem. IND ENG CHEM RES Inorg. Chem. J. Agric. Food. Chem. J. Chem. Eng. Data J. Chem. Educ. J. Chem. Inf. Model. J. Chem. Theory Comput. J. Med. Chem. J. Nat. Prod. J PROTEOME RES J. Am. Chem. Soc. LANGMUIR MACROMOLECULES Mol. Pharmaceutics Nano Lett. Org. Lett. ORG PROCESS RES DEV ORGANOMETALLICS J. Org. Chem. J. Phys. Chem. J. Phys. Chem. A J. Phys. Chem. B J. Phys. Chem. C J. Phys. Chem. Lett. Analyst Anal. Methods Biomater. Sci. Catal. Sci. Technol. Chem. Commun. Chem. Soc. Rev. CHEM EDUC RES PRACT CRYSTENGCOMM Dalton Trans. Energy Environ. Sci. ENVIRON SCI-NANO ENVIRON SCI-PROC IMP ENVIRON SCI-WAT RES Faraday Discuss. Food Funct. Green Chem. Inorg. Chem. Front. Integr. Biol. J. Anal. At. Spectrom. J. Mater. Chem. A J. Mater. Chem. B J. Mater. Chem. C Lab Chip Mater. Chem. Front. Mater. Horiz. MEDCHEMCOMM Metallomics Mol. Biosyst. Mol. Syst. Des. Eng. Nanoscale Nanoscale Horiz. Nat. Prod. Rep. New J. Chem. Org. Biomol. Chem. Org. Chem. Front. PHOTOCH PHOTOBIO SCI PCCP Polym. Chem.
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1