首页 > 最新文献

2022 IEEE/ACM 4th International Workshop on Software Engineering Education for the Next Generation (SEENG)最新文献

英文 中文
On Using Distance Labs for Engineering Education 论远程实验室在工程教育中的应用
C. Bunse, L. Kennes, Jan-Christian Kuhr
Laboratory courses (labs) are an integral part of engineering education. They help students deepen the knowledge taught in lectures and support the application of this knowledge to concrete problems. However, labs do have several known problems such as a lack of resources (personnel, time, and equipment). This paper reports about the DistLab project at Stralsund University of Applied Sciences, Germany. DistLab aims at introducing a standardized concept for remote and virtual labs in engineering education. Remote labs allow students to work off-campus on systems that are located and running on-campus. Virtual labs, on the other hand, provide students with a virtual twin of an experiment that is a high- fidelity digital copy of its real counterpart. Students start working with the virtual twin and transfer their solution later to the real-world twin. First experiences and student feedback show that these concepts allow for learning independently of location and time, thus giving students more freedom in acquiring the material. On the other hand, freedom implies more self-discipline and self-organization.
实验课程(实验室)是工程教育的一个组成部分。它们帮助学生加深讲座中所学的知识,并支持将这些知识应用于具体问题。然而,实验室确实存在一些已知的问题,例如缺乏资源(人员、时间和设备)。本文报道了德国施特拉尔松德应用科学大学的DistLab项目。DistLab旨在为工程教育中的远程和虚拟实验室引入标准化概念。远程实验室允许学生在校外的系统上工作,这些系统位于校内并在校内运行。另一方面,虚拟实验室为学生提供了一个实验的虚拟双胞胎,这是一个真实对应的高保真数字副本。学生们开始使用虚拟双胞胎,然后将他们的解决方案转移到现实世界的双胞胎中。最初的经验和学生的反馈表明,这些概念允许独立于地点和时间的学习,从而给学生更多的自由获取材料。另一方面,自由意味着更多的自律和自我组织。
{"title":"On Using Distance Labs for Engineering Education","authors":"C. Bunse, L. Kennes, Jan-Christian Kuhr","doi":"10.1145/3528231.3528355","DOIUrl":"https://doi.org/10.1145/3528231.3528355","url":null,"abstract":"Laboratory courses (labs) are an integral part of engineering education. They help students deepen the knowledge taught in lectures and support the application of this knowledge to concrete problems. However, labs do have several known problems such as a lack of resources (personnel, time, and equipment). This paper reports about the DistLab project at Stralsund University of Applied Sciences, Germany. DistLab aims at introducing a standardized concept for remote and virtual labs in engineering education. Remote labs allow students to work off-campus on systems that are located and running on-campus. Virtual labs, on the other hand, provide students with a virtual twin of an experiment that is a high- fidelity digital copy of its real counterpart. Students start working with the virtual twin and transfer their solution later to the real-world twin. First experiences and student feedback show that these concepts allow for learning independently of location and time, thus giving students more freedom in acquiring the material. On the other hand, freedom implies more self-discipline and self-organization.","PeriodicalId":296945,"journal":{"name":"2022 IEEE/ACM 4th International Workshop on Software Engineering Education for the Next Generation (SEENG)","volume":"78 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116836912","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}
引用次数: 4
An Automatic Grading System for a High School-level Computational Thinking Course 高中计算思维课程自动评分系统
Sirazum Munira Tisha, Rufino A. Oregon, Gerald Baumgartner, Fernando Alegre, Juana Moreno
Automatic grading systems help lessen the load of manual grading. Most existent autograders are based on unit testing, which focuses on the correctness of the code, but has limited scope for judging code quality. Moreover, it is cumbersome to implement unit testing for evaluating graphical output code. We propose an autograder that can effectively judge the code quality of the visual output codes created by students enrolled in a high school-level computational thinking course. We aim to provide suggestions to teachers on an essential aspect of their grading, namely the level of student com-petency in using abstraction within their codes. A dataset from five different assignments, including open-ended problems, is used to evaluate the effectiveness of our autograder. Our initial experiments show that our method can classify the students' submissions even for open-ended problems, where existing autograders fail to do so. Additionally, survey responses from course teachers support the importance of our work.
自动分级系统有助于减轻人工分级的负担。大多数现有的自动分级器都是基于单元测试的,它关注的是代码的正确性,但对代码质量的判断范围有限。此外,为评估图形输出代码而实现单元测试是很麻烦的。我们提出了一个自动评分器,可以有效地判断由参加高中水平计算思维课程的学生创建的视觉输出代码的代码质量。我们的目的是就教师评分的一个重要方面,即学生在其代码中使用抽象的能力水平,向教师提供建议。来自五个不同作业的数据集,包括开放式问题,用于评估我们的自动评分器的有效性。我们最初的实验表明,我们的方法可以对学生提交的开放式问题进行分类,而现有的自动评分系统无法做到这一点。此外,来自课程教师的调查反馈支持了我们工作的重要性。
{"title":"An Automatic Grading System for a High School-level Computational Thinking Course","authors":"Sirazum Munira Tisha, Rufino A. Oregon, Gerald Baumgartner, Fernando Alegre, Juana Moreno","doi":"10.1145/3528231.3528357","DOIUrl":"https://doi.org/10.1145/3528231.3528357","url":null,"abstract":"Automatic grading systems help lessen the load of manual grading. Most existent autograders are based on unit testing, which focuses on the correctness of the code, but has limited scope for judging code quality. Moreover, it is cumbersome to implement unit testing for evaluating graphical output code. We propose an autograder that can effectively judge the code quality of the visual output codes created by students enrolled in a high school-level computational thinking course. We aim to provide suggestions to teachers on an essential aspect of their grading, namely the level of student com-petency in using abstraction within their codes. A dataset from five different assignments, including open-ended problems, is used to evaluate the effectiveness of our autograder. Our initial experiments show that our method can classify the students' submissions even for open-ended problems, where existing autograders fail to do so. Additionally, survey responses from course teachers support the importance of our work.","PeriodicalId":296945,"journal":{"name":"2022 IEEE/ACM 4th International Workshop on Software Engineering Education for the Next Generation (SEENG)","volume":"59 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"134539671","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
Aligning the learning Experience in a Project-Based Course: lessons learned from the Redesign of a Programming Lab 在基于项目的课程中调整学习经验:从编程实验室的重新设计中学到的教训
Malte Mauritz, Stefan Naujokat, Christian Riest, Till Schallau
In teaching and training the next generation of software engineers, programming labs with students working together in small groups provide the opportunity to obtain hands-on experience for software projects involving multiple developers. However, more than other types of courses, programming labs face some challenges in providing a similar learning outcome for all students. Based on feedback and own experience from various iterations of the programming lab at TU Dortmund University, we identified that the learning ex-perience varies significantly due to heterogeneous prior knowledge, experience levels, and personality traits of both students and tutors. In this experience report, we present our approach towards aligning the learning experience by applying three different didactic im-provements based on well-studied concepts: (1) the idea of worked-out examples is transferred to teaching the software development process by providing a small software application with all corre-sponding artefacts like diagrams, program code and documentation, focusing on their relationships and development activities. (2) Goal-oriented and structured learning is used to define learning outcomes for every group meeting as a common ground, while audience re-sponse systems are utilized to motivate the attendance and allow students to self-reflect on their knowledge and competence level. (3) We harmonize the role of tutors by holding dedicated teaching workshops for tutors' responsibilities in the programming lab. The different approaches are evaluated based on surveys for stu-dents and tutors over three iterations of the programming lab at TU Dortmund University. Both sides' positive responses and feedback resulted in an enumeration of lessons learned as recommendations and support for other similar courses.
在教学和培训下一代软件工程师的过程中,编程实验室让学生以小组的形式一起工作,为涉及多个开发人员的软件项目提供了获得实际操作经验的机会。然而,与其他类型的课程相比,编程实验室在为所有学生提供类似的学习结果方面面临着一些挑战。根据多特蒙德大学编程实验室的反馈和自己的经验,我们发现,由于学生和导师的先验知识、经验水平和个性特征的不同,学习体验会有很大差异。在这份经验报告中,我们通过应用三种不同的基于充分研究的概念的教学改进来展示我们对齐学习经验的方法:(1)通过提供一个带有所有相应的工件(如图、程序代码和文档)的小软件应用程序,将工作示例的想法转移到软件开发过程的教学中,重点关注它们的关系和开发活动。(2)采用目标导向和结构化的学习,将每次小组会议的学习成果定义为一个共同点,并利用听众反馈系统来激励出勤率,让学生自我反思自己的知识和能力水平。(3)我们通过举办专门的教学研讨会来协调导师的角色,以确定导师在编程实验室中的职责。在多特蒙德大学编程实验室的三次迭代中,对学生和导师的调查评估了不同的方法。双方的积极反应和反馈导致总结了吸取的经验教训,作为对其他类似课程的建议和支持。
{"title":"Aligning the learning Experience in a Project-Based Course: lessons learned from the Redesign of a Programming Lab","authors":"Malte Mauritz, Stefan Naujokat, Christian Riest, Till Schallau","doi":"10.1145/3528231.3528358","DOIUrl":"https://doi.org/10.1145/3528231.3528358","url":null,"abstract":"In teaching and training the next generation of software engineers, programming labs with students working together in small groups provide the opportunity to obtain hands-on experience for software projects involving multiple developers. However, more than other types of courses, programming labs face some challenges in providing a similar learning outcome for all students. Based on feedback and own experience from various iterations of the programming lab at TU Dortmund University, we identified that the learning ex-perience varies significantly due to heterogeneous prior knowledge, experience levels, and personality traits of both students and tutors. In this experience report, we present our approach towards aligning the learning experience by applying three different didactic im-provements based on well-studied concepts: (1) the idea of worked-out examples is transferred to teaching the software development process by providing a small software application with all corre-sponding artefacts like diagrams, program code and documentation, focusing on their relationships and development activities. (2) Goal-oriented and structured learning is used to define learning outcomes for every group meeting as a common ground, while audience re-sponse systems are utilized to motivate the attendance and allow students to self-reflect on their knowledge and competence level. (3) We harmonize the role of tutors by holding dedicated teaching workshops for tutors' responsibilities in the programming lab. The different approaches are evaluated based on surveys for stu-dents and tutors over three iterations of the programming lab at TU Dortmund University. Both sides' positive responses and feedback resulted in an enumeration of lessons learned as recommendations and support for other similar courses.","PeriodicalId":296945,"journal":{"name":"2022 IEEE/ACM 4th International Workshop on Software Engineering Education for the Next Generation (SEENG)","volume":"19 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127691130","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 Engineering Learning Landscape: an experience report from Siemens Healthineers 软件工程学习前景:来自西门子健康工程师的经验报告
Matthias Backert, Ferose Khan Jeberla, Sheldon Kumar, Frances Paulisch
This paper gives an overview of the software engineering activities of Siemens Healthineers that are related to education and learning. Our training activities have a long history and are done globally throughout the company. We expect that experience and lessons learned are useful for others. Our software engineering education activities range from onboarding of new employees to approaches for continuous learning for highly experienced professionals. We start already very early with training the “next generation” software engineers and focus on growing that talent throughout their career. We share here lessons learned that we have made over the past decades on this topic. This industrial experience report describes our approach by focusing on various “dimensions”. The dimensions include the experience level, the content, and the format. Especially due to the Corona situation, we have held many trainings virtually and we share also our insights. Finally, we include three concrete examples of an aspect of our education and learning activities. These are on applying and conveying the agile mindset to learning to attract young talents, virtual hackathons and systematic link between training and job profiles.
本文概述了西门子健康工程师与教育和学习相关的软件工程活动。我们的培训活动历史悠久,并在全球范围内开展。我们希望吸取的经验和教训对其他国家有用。我们的软件工程教育活动范围从新员工的入职培训到为经验丰富的专业人员提供持续学习的方法。我们很早就开始培训“下一代”软件工程师,并在他们的职业生涯中专注于培养这些人才。我们在这里分享过去几十年来在这个问题上取得的经验教训。这份行业经验报告通过关注不同的“维度”来描述我们的方法。这些维度包括经验级别、内容和格式。特别是由于冠状病毒的情况,我们举办了许多虚拟培训,我们也分享了我们的见解。最后,我们包括三个具体的例子,我们的教育和学习活动的一个方面。将敏捷思维运用和传递到学习中,吸引年轻人才;虚拟黑客马拉松;将培训和工作档案系统地联系起来。
{"title":"Software Engineering Learning Landscape: an experience report from Siemens Healthineers","authors":"Matthias Backert, Ferose Khan Jeberla, Sheldon Kumar, Frances Paulisch","doi":"10.1145/3528231.3528356","DOIUrl":"https://doi.org/10.1145/3528231.3528356","url":null,"abstract":"This paper gives an overview of the software engineering activities of Siemens Healthineers that are related to education and learning. Our training activities have a long history and are done globally throughout the company. We expect that experience and lessons learned are useful for others. Our software engineering education activities range from onboarding of new employees to approaches for continuous learning for highly experienced professionals. We start already very early with training the “next generation” software engineers and focus on growing that talent throughout their career. We share here lessons learned that we have made over the past decades on this topic. This industrial experience report describes our approach by focusing on various “dimensions”. The dimensions include the experience level, the content, and the format. Especially due to the Corona situation, we have held many trainings virtually and we share also our insights. Finally, we include three concrete examples of an aspect of our education and learning activities. These are on applying and conveying the agile mindset to learning to attract young talents, virtual hackathons and systematic link between training and job profiles.","PeriodicalId":296945,"journal":{"name":"2022 IEEE/ACM 4th International Workshop on Software Engineering Education for the Next Generation (SEENG)","volume":"25 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133544892","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
Reflection Through Two Lenses: Experiences of Teaching and Taking Undergraduate Software Engineering and Testing Courses 两个镜头的反思:本科软件工程与测试课程的教学与教学经验
Bradley Whitebread, Kseniia Gromova, Holly Schafer, Alok Ranjan, Ishtiaque Hussain
Undergraduate software engineering courses in higher education institutions usually cover many aspects of software development including software testing. In this experience paper, we collectively discuss our learning through realizations and reflections from both instructor's and students' perspectives of teaching and taking two separate courses in parallel, namely software engineering and soft-ware testing. Both courses had a mix of Millennial and Gen Z, junior-to-senior-level computer science students. The paper con-tributes by sharing the courses' design, its motivation behind the different pedagogical methodologies, tools and techniques used, and its recommendations in teaching similar courses to such a co-hort of students in the future for improved learning experience and outcome.
高等教育机构的本科软件工程课程通常涵盖软件开发的许多方面,包括软件测试。在这篇经验论文中,我们从教师和学生的角度,通过教学和并行学习两门独立的课程,即软件工程和软件测试的认识和反思,共同讨论我们的学习。这两门课程都有千禧一代和Z世代的学生,他们都是初级到高级的计算机科学学生。本文的贡献在于分享课程的设计、不同教学方法、工具和技术背后的动机,以及为改善学习经验和成果而向这类学生群体教授类似课程的建议。
{"title":"Reflection Through Two Lenses: Experiences of Teaching and Taking Undergraduate Software Engineering and Testing Courses","authors":"Bradley Whitebread, Kseniia Gromova, Holly Schafer, Alok Ranjan, Ishtiaque Hussain","doi":"10.1145/3528231.3528354","DOIUrl":"https://doi.org/10.1145/3528231.3528354","url":null,"abstract":"Undergraduate software engineering courses in higher education institutions usually cover many aspects of software development including software testing. In this experience paper, we collectively discuss our learning through realizations and reflections from both instructor's and students' perspectives of teaching and taking two separate courses in parallel, namely software engineering and soft-ware testing. Both courses had a mix of Millennial and Gen Z, junior-to-senior-level computer science students. The paper con-tributes by sharing the courses' design, its motivation behind the different pedagogical methodologies, tools and techniques used, and its recommendations in teaching similar courses to such a co-hort of students in the future for improved learning experience and outcome.","PeriodicalId":296945,"journal":{"name":"2022 IEEE/ACM 4th International Workshop on Software Engineering Education for the Next Generation (SEENG)","volume":"34 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116825852","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
Improving the PBL method with Experiential Learning Theory in Software Engineering Teaching 用体验式学习理论改进PBL方法在软件工程教学中的应用
Cleuton Almeida, C. França
Context: Problem-Based Learning (PBL) and Experiential Learning Theory (ELT) are convergent active learning approaches widely known for their competent integration between theory and practice. Problem/Objective: However, the usual implementation of PBL leaves out the final active experimentation stage of the experiential learning cycle. In this article, we intend to systematically investigate the impacts of this last stage on the learning outcomes of software engineering students. Methods: A quasi-experiment was designed and applied in three software engineering courses of an undergraduate course, in Rio Branco-Acre / Brazil. Results: students who participated in two of the three treatment groups scored significantly higher on measures of motivation, experience and learning, which means that the PBL method contains gaps that can be significantly improved with the help of ELT, benefiting the learning outcomes of software engineering students.
背景:基于问题的学习(PBL)和体验式学习理论(ELT)是一种收敛的主动学习方法,以其理论与实践的有效结合而闻名。问题/目标:然而,通常的PBL实施忽略了体验式学习周期的最后一个积极的实验阶段。在这篇文章中,我们打算系统地调查最后一个阶段对软件工程专业学生学习成果的影响。方法:设计准实验并应用于巴西Rio Branco-Acre地区某本科课程的三门软件工程课程。结果:参与三个治疗组中的两个治疗组的学生在动机、经验和学习方面的得分明显更高,这意味着PBL方法中存在的差距可以在英语教学的帮助下得到显著改善,有利于软件工程专业学生的学习成果。
{"title":"Improving the PBL method with Experiential Learning Theory in Software Engineering Teaching","authors":"Cleuton Almeida, C. França","doi":"10.1145/3528231.3536382","DOIUrl":"https://doi.org/10.1145/3528231.3536382","url":null,"abstract":"Context: Problem-Based Learning (PBL) and Experiential Learning Theory (ELT) are convergent active learning approaches widely known for their competent integration between theory and practice. Problem/Objective: However, the usual implementation of PBL leaves out the final active experimentation stage of the experiential learning cycle. In this article, we intend to systematically investigate the impacts of this last stage on the learning outcomes of software engineering students. Methods: A quasi-experiment was designed and applied in three software engineering courses of an undergraduate course, in Rio Branco-Acre / Brazil. Results: students who participated in two of the three treatment groups scored significantly higher on measures of motivation, experience and learning, which means that the PBL method contains gaps that can be significantly improved with the help of ELT, benefiting the learning outcomes of software engineering students.","PeriodicalId":296945,"journal":{"name":"2022 IEEE/ACM 4th International Workshop on Software Engineering Education for the Next Generation (SEENG)","volume":"88 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132989832","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
Teaching Software Engineering As Programming Over Time 随着时间的推移,将软件工程作为编程进行教学
M. Hofbauer, Christoph Bachhuber, Christopher B. Kuhn, E. Steinbach
Programming and software engineering differ by the aspect of time and scale. Going beyond just implementing software that fulfills requirements, software engineering also means writing code that can be maintained by multiple contributors over months, years or even decades. Due to the limited time of university projects, students mainly learn to focus on writing software that works once. In in-dustry, software lifetime is longer and the aspect of time becomes highly relevant. Professional software must be readable and modular to be maintainable. In this paper, we present an experience report on a novel university course in software engineering. The course teaches the concepts of unit testing, refactoring, and automation tools to novices with basic programming experience. We present those concepts for the example of C++,but they are applicable to any programming language. Our goal is to teach students the key con-cepts of software engineering early on, giving them the opportunity to benefit from these concepts in their further projects. We present these concepts in five plenary lectures with live coding sessions, and then student teams apply the concepts in five practical homework as-signments. All assignments contribute to a single project maintained and improved by the student groups for the duration of the course. Additionally, we present a teaching tool framework that can be used to automate tasks for student project management and examinations. Finally, we discuss the lessons learned from conducting this course for the first time. We believe this course is a valuable step towards including essential software engineering skills in the education of science and engineering students.
编程和软件工程在时间和规模方面有所不同。除了实现满足需求的软件之外,软件工程还意味着编写可以由多个贡献者在数月、数年甚至数十年时间内维护的代码。由于大学项目的时间有限,学生主要学习专注于编写一次工作的软件。在工业中,软件的生命周期更长,时间方面变得高度相关。专业软件必须是可读的和模块化的维护。在本文中,我们提出了一种新的大学软件工程课程的经验报告。本课程向具有基本编程经验的新手教授单元测试、重构和自动化工具的概念。我们以c++为例介绍这些概念,但它们适用于任何编程语言。我们的目标是尽早教授学生软件工程的关键概念,让他们有机会在未来的项目中受益于这些概念。我们将在五次全体讲座中介绍这些概念,并进行现场编程,然后学生团队将这些概念应用于五次实际作业中。所有作业都是一个项目,由学生小组在课程期间进行维护和改进。此外,我们提出了一个教学工具框架,可用于学生项目管理和考试的自动化任务。最后,我们讨论的教训,从进行这门课程的第一次。我们相信这门课程是在理工科学生的教育中包含基本软件工程技能的有价值的一步。
{"title":"Teaching Software Engineering As Programming Over Time","authors":"M. Hofbauer, Christoph Bachhuber, Christopher B. Kuhn, E. Steinbach","doi":"10.1145/3528231.3528353","DOIUrl":"https://doi.org/10.1145/3528231.3528353","url":null,"abstract":"Programming and software engineering differ by the aspect of time and scale. Going beyond just implementing software that fulfills requirements, software engineering also means writing code that can be maintained by multiple contributors over months, years or even decades. Due to the limited time of university projects, students mainly learn to focus on writing software that works once. In in-dustry, software lifetime is longer and the aspect of time becomes highly relevant. Professional software must be readable and modular to be maintainable. In this paper, we present an experience report on a novel university course in software engineering. The course teaches the concepts of unit testing, refactoring, and automation tools to novices with basic programming experience. We present those concepts for the example of C++,but they are applicable to any programming language. Our goal is to teach students the key con-cepts of software engineering early on, giving them the opportunity to benefit from these concepts in their further projects. We present these concepts in five plenary lectures with live coding sessions, and then student teams apply the concepts in five practical homework as-signments. All assignments contribute to a single project maintained and improved by the student groups for the duration of the course. Additionally, we present a teaching tool framework that can be used to automate tasks for student project management and examinations. Finally, we discuss the lessons learned from conducting this course for the first time. We believe this course is a valuable step towards including essential software engineering skills in the education of science and engineering students.","PeriodicalId":296945,"journal":{"name":"2022 IEEE/ACM 4th International Workshop on Software Engineering Education for the Next Generation (SEENG)","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123376868","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}
引用次数: 3
Beyond the Badge: Reproducibility Engineering as a Lifetime Skill 超越徽章:作为终身技能的可重复性工程
W. Mauerer, Stefan Klessinger, Stefanie Scherzinger
Ascertaining reproducibility of scientific experiments is receiving increased attention across disciplines. We argue that the necessary skills are important beyond pure scientific utility, and that they should be taught as part of software engineering (SWE) education. They serve a dual purpose: Apart from acquiring the coveted badges assigned to reproducible research, reproducibility engineering is a lifetime skill for a professional industrial career in computer science. SWE curricula seem an ideal fit for conveying such capabilities, yet they require some extensions, especially given that even at flagship conferences like ICSE, only slightly more than one-third of the technical papers (at the 2021 edition) receive recognition for artefact reusability. Knowledge and capabilities in setting up engineering environments that allow for reproducing artefacts and results over decades (a standard requirement in many traditional en-gineering disciplines), writing semi-literate commit messages that document crucial steps of a decision-making process and that are tightly coupled with code, or sustainably taming dynamic, quickly changing software dependencies, to name a few: They all contribute to solving the scientific reproducibility crisis, and enable software engineers to build sustainable, long-term maintainable, software-intensive, industrial systems. We propose to teach these skills at the undergraduate level, on par with traditional SWE topics.
确定科学实验的可重复性正受到各学科越来越多的关注。我们认为必要的技能比单纯的科学用途更重要,并且它们应该作为软件工程(SWE)教育的一部分来教授。它们有双重目的:除了获得分配给可重复性研究的令人垂涎的徽章外,可重复性工程是计算机科学专业工业生涯的终身技能。SWE课程似乎是传达这种能力的理想选择,但它们需要一些扩展,特别是考虑到即使在像ICSE这样的旗舰会议上,只有略多于三分之一的技术论文(在2021年版)获得了人工制品可重用性的认可。建立工程环境的知识和能力,允许在几十年的时间里重现工件和结果(许多传统工程学科的标准要求),编写半文盲的提交消息,记录决策过程的关键步骤,并与代码紧密耦合,或者持续地驯服动态的,快速变化的软件依赖关系,等等。它们都有助于解决科学的可再现性危机,并使软件工程师能够构建可持续的、长期可维护的、软件密集型的工业系统。我们建议在本科阶段教授这些技能,与传统的SWE主题相同。
{"title":"Beyond the Badge: Reproducibility Engineering as a Lifetime Skill","authors":"W. Mauerer, Stefan Klessinger, Stefanie Scherzinger","doi":"10.1145/3528231.3528359","DOIUrl":"https://doi.org/10.1145/3528231.3528359","url":null,"abstract":"Ascertaining reproducibility of scientific experiments is receiving increased attention across disciplines. We argue that the necessary skills are important beyond pure scientific utility, and that they should be taught as part of software engineering (SWE) education. They serve a dual purpose: Apart from acquiring the coveted badges assigned to reproducible research, reproducibility engineering is a lifetime skill for a professional industrial career in computer science. SWE curricula seem an ideal fit for conveying such capabilities, yet they require some extensions, especially given that even at flagship conferences like ICSE, only slightly more than one-third of the technical papers (at the 2021 edition) receive recognition for artefact reusability. Knowledge and capabilities in setting up engineering environments that allow for reproducing artefacts and results over decades (a standard requirement in many traditional en-gineering disciplines), writing semi-literate commit messages that document crucial steps of a decision-making process and that are tightly coupled with code, or sustainably taming dynamic, quickly changing software dependencies, to name a few: They all contribute to solving the scientific reproducibility crisis, and enable software engineers to build sustainable, long-term maintainable, software-intensive, industrial systems. We propose to teach these skills at the undergraduate level, on par with traditional SWE topics.","PeriodicalId":296945,"journal":{"name":"2022 IEEE/ACM 4th International Workshop on Software Engineering Education for the Next Generation (SEENG)","volume":"15 50","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-03-10","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114044549","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}
引用次数: 3
期刊
2022 IEEE/ACM 4th International Workshop on Software Engineering Education for the Next Generation (SEENG)
全部 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