软件产业与工程Pub Date : 2023-05-01DOI: 10.1109/ICSE-SEET58685.2023.00006
K. Buffardi
{"title":"Cognitive Reflection in Software Verification and Testing","authors":"K. Buffardi","doi":"10.1109/ICSE-SEET58685.2023.00006","DOIUrl":"https://doi.org/10.1109/ICSE-SEET58685.2023.00006","url":null,"abstract":"Verifying whether code meets its specifications requires critical thinking and analysis. However, cognitive biases may influence how well software engineers verify and test code. In this paper, I explore cognitive reflection and its association with accurately verifying code via both manual inspection and unit testing. In a two-phase exploratory study of Software Engineering undergraduate students (n=140), I examined their performance on Cognitive Reflection Tests (CRT), manual verification of function implementations, and the accuracy of unit test suites. The first phase found no relationship between CRT and unit test accuracy. However, the higher a student’s CRT score, the more likely they were to reject a defective implementation when inspecting it manually (p<0.0001, 95% CI 1.56-4.50). The second phase replicated the outcomes on an alternate version of the CRT and on a different unit test assignment, revealing a positive correlation between CRT and recognizing defects manually ($rho$=0.478, p<0.01). I conclude that cognitive reflection is associated with software engineering students’ aptitude at identifying defects, but is not associated with their affirmation of algorithms without defects, nor with the accuracy of their unit tests.","PeriodicalId":68155,"journal":{"name":"软件产业与工程","volume":"2 1","pages":"1-10"},"PeriodicalIF":0.0,"publicationDate":"2023-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"88751555","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}
软件产业与工程Pub Date : 2023-05-01DOI: 10.1109/ICSE-SEET58685.2023.00020
Yu Liu, Tong Li, Zheqing Huang, Zhen Yang
{"title":"BARA: A Dynamic State-based Serious Game for Teaching Requirements Elicitation","authors":"Yu Liu, Tong Li, Zheqing Huang, Zhen Yang","doi":"10.1109/ICSE-SEET58685.2023.00020","DOIUrl":"https://doi.org/10.1109/ICSE-SEET58685.2023.00020","url":null,"abstract":"Teaching requirements elicitation to students who do not have practical experience is challenging, as they usually cannot understand the difficulty. Several recent studies have reported their experience of teaching requirements elicitation with a serious game. However, in these games, the fictitious characters have not been carefully designed to reflect real scenarios. For example, they always respond the same no matter how many times a learner interacts with them. Moreover, most existing serious games contain only one specific scenario and cannot be easily extended to cover various cases. In this paper, we design and implement a dynamic state-based serious game (BARA) for teaching requirements elicitation, which can realistically simulate real-world scenarios and automatically record learners’ actions for assessment. Specifically, we model fictitious characters’ behaviors using finite-state machines in order to precisely characterize the dynamic states of stakeholders. We also developed an easy-to-use editor for non-programmers to design fictitious characters and thus construct various simulated scenarios. Finally, BARA records learners’ actions during the game, based on which we can gain an in-depth understanding of learners’ performance and our teaching effectiveness. We evaluated BARA with 60 participants using a simulated scenario. The result shows that most participants are immersed in BARA and can reasonably complete the requirements elicitation task within the simulated scenario.","PeriodicalId":68155,"journal":{"name":"软件产业与工程","volume":"20 6 Pt 1 1","pages":"141-152"},"PeriodicalIF":0.0,"publicationDate":"2023-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"90393315","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}
软件产业与工程Pub Date : 2023-05-01DOI: 10.1109/ICSE-SEET58685.2023.00012
Sara Nurollahian, Anna N. Rafferty, E. Wiese
{"title":"Improving Assessment of Programming Pattern Knowledge through Code Editing and Revision","authors":"Sara Nurollahian, Anna N. Rafferty, E. Wiese","doi":"10.1109/ICSE-SEET58685.2023.00012","DOIUrl":"https://doi.org/10.1109/ICSE-SEET58685.2023.00012","url":null,"abstract":"How well do code-writing tasks measure students’ knowledge of programming patterns and anti-patterns? How can we assess this knowledge more accurately? To explore these questions, we surveyed 328 intermediate CS students and measured their performance on different types of tasks, including writing code, editing someone else’s code, and, if applicable, revising their own alternatively-structured code. Our tasks targeted returning a Boolean expression and using unique code within an if and else.We found that code writing sometimes under-estimated student knowledge. For tasks targeting returning a Boolean expression, over 55% of students who initially wrote with non-expert structure successfully revised to expert structure when prompted - even though the prompt did not include guidance on how to improve their code. Further, over 25% of students who initially wrote non-expert code could properly edit someone else’s non-expert code to expert structure. These results show that non-expert code is not a reliable indicator of deep misconceptions about the structure of expert code. Finally, although code writing is correlated with code editing, the relationship is weak: a model with code writing as the sole predictor of code editing explains less than 15% of the variance. Model accuracy improves when we include additional predictors that reflect other facets of knowledge, namely the identification of expert code and selection of expert code as more readable than non-expert code. Together, these results indicate that a combination of code writing, revising, editing, and identification tasks can provide a more accurate assessment of student knowledge of programming patterns than code writing alone.","PeriodicalId":68155,"journal":{"name":"软件产业与工程","volume":"34 1","pages":"58-69"},"PeriodicalIF":0.0,"publicationDate":"2023-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"78028576","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}
软件产业与工程Pub Date : 2023-05-01DOI: 10.1109/ICSE-SEET58685.2023.00021
Subhajit Roy
{"title":"A Theorem Proving Approach to Programming Language Semantics","authors":"Subhajit Roy","doi":"10.1109/ICSE-SEET58685.2023.00021","DOIUrl":"https://doi.org/10.1109/ICSE-SEET58685.2023.00021","url":null,"abstract":"The semantics of programming languages is one of the core topics in computer science. This topic is formalism-heavy and requires the student to attempt numerous proofs for a deep understanding. We argue that modern theorem provers are excellent aids to teaching and understanding programming language semantics. As pen-and-paper proofs get automated via the theorem prover, it allows an experiment-driven strategy at exploring this topic. This article provides an encoding of the semantics of the WHILE language in the most popular styles—operational, denotational, and axiomatic—within the F* proof assistant. We show that once the program and its semantics are encoded, modern proof assistants can prove exciting language features with minimal human assistance. We believe that teaching programming languages via proof assistants will not only provide a more concrete understanding of this topic but also prepare future programming language researchers to use theorem provers as fundamental tools in their research and not as an afterthought.","PeriodicalId":68155,"journal":{"name":"软件产业与工程","volume":"21 1","pages":"153-165"},"PeriodicalIF":0.0,"publicationDate":"2023-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"80056736","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}
软件产业与工程Pub Date : 2023-05-01DOI: 10.1109/ICSE-SEET58685.2023.00011
Eng Lieh Ouh, B. Gan
{"title":"Are you cloud-certified? Preparing Computing Undergraduates for Cloud Certification with Experiential Learning","authors":"Eng Lieh Ouh, B. Gan","doi":"10.1109/ICSE-SEET58685.2023.00011","DOIUrl":"https://doi.org/10.1109/ICSE-SEET58685.2023.00011","url":null,"abstract":"Cloud Computing skills have been increasing in demand. Many software engineers are learning these skills and taking cloud certification examinations to be job competitive. Preparing undergraduates to be cloud-certified remains challenging as cloud computing is a relatively new topic in the computing curriculum, and many of these certifications require working experience. In this paper, we report our experiences designing a course with experiential learning to prepare our computing undergraduates to take the cloud certification. We adopt a university project-based experiential learning framework to engage industry partners who provide project requirements for students to develop cloud solutions and an experiential risk learning model to design the course contents. We prepare these students to take on the Amazon Web Services Solution Architect - Associate (AWS-SAA) while doing the course. We do this over 3 semester terms and report our findings before and after our design with experiential learning. We are motivated by the students’ average 93% passing rates over the terms. Even when the certification is taken out of the graded components, we still see an encouraging 89% participation rate. The quantitative feedback shows increased ratings across the survey questions compared to before experiential learning. We acknowledge concerns about the students’ heavy workload and increased administrative efforts for the faculty members. We summarise our approach with actionable weekly topics, activities and takeaways. We hope this experience report can help other educators design cloud computing content and certifications for computing students in software engineering.","PeriodicalId":68155,"journal":{"name":"软件产业与工程","volume":"1 1","pages":"46-57"},"PeriodicalIF":0.0,"publicationDate":"2023-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"89712484","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}
软件产业与工程Pub Date : 2023-05-01DOI: 10.1109/ICSE-SEET58685.2023.00036
Steven Scott, Arto Hellas, Juho Leinonen, John Edwards
{"title":"Factors Affecting Compilable State at Each Keystroke in CS1","authors":"Steven Scott, Arto Hellas, Juho Leinonen, John Edwards","doi":"10.1109/ICSE-SEET58685.2023.00036","DOIUrl":"https://doi.org/10.1109/ICSE-SEET58685.2023.00036","url":null,"abstract":"In this paper, we analyze keystroke log data from two introductory programming courses from two distinct contexts to investigate the proportion of events that compile, how this relates to contextual factors, the progression of programs, and academic outcomes. We find that, as students write their programs, frequency of compile and run events increases as does the proportion of events that compile. We also find a spike in the number of compile and run events as a program nears completion, that the proportion of events that compile varies by assignment, length of program, and programming context, that real-time IDE error diagnostics lead to higher proportion of events that are in compilable state, and that a student’s awareness of their compilable state is correlated with exam score while the amount of time they spend in an uncompilable state is not. Among the practical implications of our work are the fact that researchers cannot rely on frequency of compilation remaining constant through an assignment and a call to researchers and practitioners to design pedagogies that enhance student awareness of their compilable state.","PeriodicalId":68155,"journal":{"name":"软件产业与工程","volume":"55 1","pages":"314-323"},"PeriodicalIF":0.0,"publicationDate":"2023-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"89897618","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}
软件产业与工程Pub Date : 2023-05-01DOI: 10.1109/ICSE-SEET58685.2023.00028
Klaudia Madhi, Lara Marie Reimer, Stephan M. Jonas
{"title":"Attribution-based Personas in Virtual Software Engineering Education","authors":"Klaudia Madhi, Lara Marie Reimer, Stephan M. Jonas","doi":"10.1109/ICSE-SEET58685.2023.00028","DOIUrl":"https://doi.org/10.1109/ICSE-SEET58685.2023.00028","url":null,"abstract":"The COVID-19 pandemic and the consequent introduction of virtual collaboration have introduced educators to unexpected situations and challenges. One of these challenges is social distance, which minimizes knowledge of another person’s character, and leaves room for misconceptions. Perceptions of a person’s personality are also referred to as dispositional attributions and, when misplaced, impact the educator-student dynamics. This paper studies dispositional attributions exhibited by software engineering educators in higher education and aims to raise awareness of potential misconceptions affecting the educator-student relationship caused by the virtual setting. We performed an exploratory case study in a practical university course with twelve distributed software engineering teams, each led by one or two educators. The course was conducted entirely virtually during the COVID-19 pandemic. The research process included discovering, categorizing, and modeling attribution-based personas, followed by qualitative and quantitative research methods of semi-structured interviews and survey questionnaires. These personas represent the subjects of potential misconceptions and encapsulate typical behaviors and attributions. Our research created seven personas: the Unprofessional, Ego is the Enemy, The Detached, the Loner, the Underperformer, Hiding but not Seeking, and Distraction Monster. These personas differ primarily in terms of character traits and motivation attributed to them. The results provide evidence that the virtual setting of the course can lead to several dispositional attributions. Educators in virtual software engineering settings should be aware of these attributions and their potential impact on the educator-student relationship.","PeriodicalId":68155,"journal":{"name":"软件产业与工程","volume":"58 1","pages":"235-246"},"PeriodicalIF":0.0,"publicationDate":"2023-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"83957743","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}
软件产业与工程Pub Date : 2023-05-01DOI: 10.1109/ICSE-SEET58685.2023.00032
T. Breaux, Jennifer Moritz
{"title":"A Metric for Measuring Software Engineering Post-Graduate Outcomes","authors":"T. Breaux, Jennifer Moritz","doi":"10.1109/ICSE-SEET58685.2023.00032","DOIUrl":"https://doi.org/10.1109/ICSE-SEET58685.2023.00032","url":null,"abstract":"Professional software engineering (SE) degree programs provide students with the education and skills needed to enter a new SE career, or take on increasing responsibility within their current career. An important metric for evaluating such programs is the impact that completing the program has on postgraduate, career outcomes. Apart from hiring rates and median salaries, this is challenging to measure, because alumni survey response rates are frequently low, and without alumni feedback, insight into individual career advancement after graduation is difficult to observe. In this paper, we propose a new metric, called Career Velocity, that measures the impact of a degree program on alumni promotion into senior positions. The metric requires tracing alumni directory information, consisting of a person’s full name, degree name, and graduation year, to public data that includes employment histories, before computing the number of months prior to promotion into a senior SE position. The metric was developed and evaluated on a mix of six degree programs, including undergraduate and graduate computer science, software engineering and data science programs. The metric was further evaluated by assessing the impact of a graduate’s number of months of industry experience prior to graduation. The results suggest that, independent of prior industry experience, specialized education that targets advancement in a specific career class, e.g., software engineering, leads to faster career progression than general education.","PeriodicalId":68155,"journal":{"name":"软件产业与工程","volume":"78 1","pages":"283-295"},"PeriodicalIF":0.0,"publicationDate":"2023-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"83196599","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}
软件产业与工程Pub Date : 2023-05-01DOI: 10.1109/ICSE-SEET58685.2023.00007
Robert Chatley, Tony Field, Mark J. Wheelhouse, Carolyn Runcie, C. Grinyer, N. Leon
{"title":"Designing for Real People: Teaching Agility through User-Centric Service Design","authors":"Robert Chatley, Tony Field, Mark J. Wheelhouse, Carolyn Runcie, C. Grinyer, N. Leon","doi":"10.1109/ICSE-SEET58685.2023.00007","DOIUrl":"https://doi.org/10.1109/ICSE-SEET58685.2023.00007","url":null,"abstract":"We present the design and evolution of a project-based course – Designing for Real People – that aims to teach agile software development through an unwavering focus on the user, rather than emphasising the processes and tools often associated with a method like Scrum. This module is the result of a fruitful collaboration between a Computer Science Department, bringing knowledge and skills in the software engineering aspects, and the Service Design group of a neighbouring Art College, with expertise in user research and user experience design.We present the details of the current structure, content and assessment strategies developed for the module, as well as the principles behind its design. The core theme of the course is gathering and responding to feedback, and so here we present how this has been applied to the design of the module itself, with lessons learned, and improvements made over time. By reflecting on our own work, we aim to provide recommendations that may aid others considering how to teach these topics.","PeriodicalId":68155,"journal":{"name":"软件产业与工程","volume":"2 1","pages":"11-22"},"PeriodicalIF":0.0,"publicationDate":"2023-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"78514180","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}