Software engineers have significant expertise to offer when building intelligent systems, drawing on decades of experience and methods for building systems that are scalable, responsive and robust, even when built on unreliable components. Systems with artificial-intelligence or machine-learning (ML) components raise new challenges and require careful engineering. We designed a new course to teach software-engineering skills to students with a background in ML. We specifically go beyond traditional ML courses that teach modeling techniques under artificial conditions and focus, in lecture and assignments, on realism with large and changing datasets, robust and evolvable infrastructure, and purposeful requirements engineering that considers ethics and fairness as well. We describe the course and our infrastructure and share experience and all material from teaching the course for the first time.
National University of Defense Technology(国防科技大学);Shanxi Supercomputing Center(山西超级计算中心);Taiyuan University of Technology(太原理工大学)
Aiming at the current problems of theory-oriented,practice-light,and lack of innovation ability in the teaching of postgraduate software engineering courses,a multi-stage feedback teaching mode for software engineering postgraduates based on competition project_driven is proposed. The model is driven by the competition project,and implementing suggestions are given in terms of stage allocation of software engineering course tasks and ability cultivation,competition case design and process evaluation improvement,etc. Through the implementation of this teaching mode,students enthusiasm and initi…
Contribution: A flipped classroom approach to teaching empirical software engineering increases student learning by providing more time for active learning in class. Background: There is a need for longitudinal studies of the flipped classroom approach in general. Although a few cross-sectional studies show that a flipped classroom approach can increase student learning by providing more time for other in-class activities, such as active learning, such studies are also rare in the context of teaching software engineering. Intended outcomes: To assess the usefulness of a flipped classroom appro…
The use of conceptual models to foster requirements engineering has been proposed and evaluated as beneficial for several decades. For instance, goal-oriented requirements engineering or the specification of scenarios are commonly done using conceptual models. Bringing such model-based requirements engineering approaches into industrial practice typically requires industrial training. In this paper, we report lessons learned from a training program for teaching industry professionals model-based requirements engineering. Particularly, we as educators and learners report experiences from design…
Formal methods for software correctness are critical to the future of software engineering - and so must be an essential part of software engineering education. Unfortunately, formal methods are often resisted by students due to perceived difficulty, mathematicity, and practical irrelevance. We redeveloped our software correctness course by taking a programming intensive approach, using the solver-aided language Dafny to provide instant formative feedback via automated assessment. Our redeveloped course increased student retention and resulted in the best evaluation for the course for at least…
Student evaluations of teaching (SET) are commonly used in universities for assessing teaching quality. However, previous literature shows that in software engineering students tend to rate certain topics higher than others: In particular students tend to value programming and software construction over software design, software engineering models and methods, or soft skills. We hypothesize that these biases also play a role in SET responses collected from students. The objective of this study is to investigate how the topic of a software engineering course affects the SET metrics. We accompli…
Feedback is critical in education. This Innovative Practice Full Paper reports lessons learned from improving the quality of feedback in a semi-capstone software engineering course, with particular focus on how to deliver productive feedback in large scale during project work. The bachelor-level introduction to software engineering course is taken by about 500 students from eight study programs, organised into 72 project teams. The course aims to educate reflective systems developers. The teaching staff includes 29 teaching assistants as supervisor and product owners for teams. Project teams g…
A Case-Study on Teaching Undergraduate-Level Software Engineering Course Using Inverted-Classroom, Large-Group, Real-Client and Studio-Based Instruction Model
Hybrid Active Teaching Methodology for Learning Development: A Self-assessment Case Study Report in Computer Engineering
University of Luxembourg(卢森堡大学);Instituto Superior Manuel Teixeira Gomes(曼努埃尔·特谢拉·戈梅斯高等学院);Lusófona University(卢索福纳大学);Universidad Nacional de Rosario(罗萨里奥国立大学)
Teaching Empathy in Software Engineering Education in the Age of Artificial Intelligence
University of Calgary(卡尔加里大学);Federal Rural University of Pernambuco(伯南布哥联邦农村大学);University College London(伦敦大学学院);Radboud University(拉德堡德大学);University of Otago(奥塔哥大学);University of Hawaii at Manoa(夏威夷大学马诺阿分校)
This paper describes our experience of delivery educational programs in academia and in industry on DevOps, compare the two approaches and sum-up the lessons learnt. We also propose a vision to implement a shift in the Software Engineering Higher Education curricula.
Naming the Pain in Machine Learning-Enabled Systems Engineering
Pontifical Catholic University of Rio de Janeiro (PUC-Rio)(里约热内卢天主教大学);Blekinge Institute of Technology (BTH)(布莱金厄理工学院);University of Bari(巴里大学);Technical University of Munich (TUM)(慕尼黑工业大学);Vienna University of Technology (TUW)(维也纳工业大学);German Aerospace Center (DLR)(德国航空航天中心);University of Cologne(科隆大学)
Beyond Models: Reflections on Engineering AI-enabled Systems in a Project-Based Course
Department of Mathematics and Computer Science, University of Bremen(不莱梅大学数学与计算机科学系);School of Computing Technologies, RMIT University(皇家墨尔本理工学院计算技术学院)
Teaching Agile Requirements Engineering: A Stakeholder Simulation with Generative AI
University of Applied Sciences Emden/Leer(埃姆登/莱尔应用科学大学);University of Applied Sciences and Arts Hannover(汉诺威应用科学与艺术大学);Federal University of São Paulo(圣保罗联邦大学)
Carnegie Mellon University(卡内基梅隆大学);University of Toronto(多伦多大学);Carnegie Mellon Software Engineering Institute(卡内基梅隆软件工程研究所)
The introduction of machine learning (ML) components in software projects has created the need for software engineers to collaborate with data scientists and other specialists. While collaboration can always be challenging, ML introduces additional challenges with its exploratory model development process, additional skills and knowledge needed, difficulties testing ML systems, need for continuous evolution and monitoring, and non-traditional quality requirements such as fairness and explainability. Through interviews with 45 practitioners from 28 organizations, we identified key collaboration…
University of Massachusetts Dartmouth(马萨诸塞大学达特茅斯分校);United States Army Research Laboratory(美国陆军研究实验室)
Learning enabled autonomous systems provide increased capabilities compared to traditional systems. However, the complexity of and probabilistic nature in the underlying methods enabling such capabilities present challenges for current systems engineering processes for assurance, and test, evaluation, verification, and validation (TEVV). This paper provides a preliminary attempt to map recently developed technical approaches in the assurance and TEVV of learning enabled autonomous systems (LEAS) literature to a traditional systems engineering v-model. This mapping categorizes such techniques i…
Greening AI-enabled Systems with Software Engineering: A Research Agenda for Environmentally Sustainable AI Practices
Delft University of Technology(代尔夫特理工大学);New York University Abu Dhabi(纽约大学阿布扎克分校);Roskilde University(罗斯基尔德大学);Universitat Politècnica de Catalunya(巴塞罗那理工大学);Wageningen University & Research(瓦格宁根大学与研究学院);University of Tartu(塔尔图大学);Vrije Universiteit Amsterdam(阿姆斯特丹自由大学);University of Twente(代尔夫特理工大学);University of Minho(明德大学);University of Groningen(Groningen大学);Fraunhofer Institute for Experimental Software Engineering(弗劳恩霍夫实验软件工程研究所);University of L’Aquila(拉奎拉大学);Universiteit van Amsterdam(阿姆斯特丹大学)
Higher education provides a solid theoretical and practical, but mostly technical, background for the aspiring software developer. Research, however, has shown that graduates still fall short of the expectations of industry. These deficiencies are not limited to technical shortcomings. The ever changing landscape of 'lean' enterprise software development requires engineers to be equipped with abilities beyond the technical. How can higher education help students become great software developers in this context? As a first step towards answering this question, we present the results of a system…
Fudan University(复旦大学);Singapore University of Technology and Design(新加坡科技设计大学)
Machine learning (ML) enabled systems are emerging with recent breakthroughs in ML. A model-centric view is widely taken by the literature to focus only on the analysis of ML models. However, only a small body of work takes a system view that looks at how ML components work with the system and how they affect software engineering for MLenabled systems. In this paper, we adopt this system view, and conduct a case study on Rasa 3.0, an industrial dialogue system that has been widely adopted by various companies around the world. Our goal is to characterize the complexity of such a largescale ML-…
This white paper argues that formal methods need to be better rooted in higher education curricula for computer science and software engineering programmes of study. To this end, it advocates (i) improved teaching of formal methods; (ii) systematic highlighting of formal methods within existing, `classical' computer science courses; and (iii) the inclusion of a compulsory formal methods course in computer science and software engineering curricula. These recommendations are based on the observations that (a) formal methods are an essential and cost-effective means to increase software quality;…