Software Engineering Workshop for Educators
August 2-4, 2022 | Hybrid (In-Person or Online)
19th SEI Software Engineering Workshop for Educators
The SEI hosted this annual Workshop for Educators to foster an ongoing exchange of ideas among educators whose curricula include subjects spanning software engineering. The event was free of charge and open to any accredited college-level educator.
This three-day workshop featured two days of training on software engineering topics and an interactive educator-led session. Those attending the in-person portion of the workshop participated in the tradition of artifact sharing and discussion.
Facilitators
Dr. Grace Lewis
Dr. Lewis is principal researcher and lead of the Tactical and AI-enabled Systems (TAS) initiative at the Software Engineering Institute at Carnegie Mellon University. Lewis is the principal investigator for the “Predicting Inference Degradation in Production ML Systems” and “Characterizing and Detecting Mismatch in ML-Enabled Systems” research projects. Lewis’ current areas of expertise and interest include software engineering for AI/ML systems, edge computing, software architecture (in particular the development of software architecture practices for systems that integrate emerging technologies), and software engineering in society.
How Attendees Describe the Workshop
"a significant aid in teaching software engineering"
"a great source of relevant and timely software education guidance and resources"
Training
From Models to Systems: Teaching Software Engineering to Data Scientists
Building software products with machine learning components is challenging and many projects fail when moving into production even when showing initial success with training machine-learned models. Unfortunately, data science education focuses narrowly on data analysis, machine-learning algorithms, and model building but rarely engages with how the model may be used as part of a system. Engineering aspects beyond deploying models are often ignored or underappreciated, including requirements engineering, user experience design, planning and testing integration with non-ML components, and planning for evolution, leading to poor outcomes in many real-world projects. Software engineers and data scientists often clash in teams due to different goals, processes, and expectations, finding it hard to effectively coordinate and integrate work. In this talk, I argue for reshaping education and tools of data scientists and software engineers to shift from a model-centric to a system-centered view in their development activities. Let’s foster some engineering skills in data scientist students and let’s prepare our software engineering students with knowledge and tools for a world where they will almost inevitably interface with machine-learning components. Let’s prepare them for the interdisciplinary work needed to build production systems with machine learning components.
Christian Kästner is an associate professor and the director of the Software Engineering PhD program at the School of Computer Science at Carnegie Mellon University. His research originally focused on software analysis and the boundaries of modularity, especially in the context of highly-configurable systems. He also conducts research on sustainability of open-source software and communities. His research often used data science methods and tools, such as when predicting how configuration options change the performance of a software system or when modeling the benefit of donations in open-source projects, though he personally never cared much about data science as a topic in itself (and even though unlikely he wouldn’t mind another AI winter soon). In 2019 he started to co-teach a new course “Machine Learning in Production” at the intersection of software engineering and machine learning to better prepare the large number of students who, after graduation, start to work on software systems that integrate more and more machine learning (e.g., mobile apps, web applications, IoT devices). Since then, he also conducted research on collaboration, documentation, and quality assurance in teams where software engineers and data scientists interact.
Interactive Sessions
Artifact Sharing (In-Person Only). During the in-person portion of the workshop, senior SEI researchers will lead group sessions in which participants share experiences, ideas, and tangible artifacts for introducing software engineering topics into the college curriculum. The "shareable artifact" serves as an "entry fee," an idea suggested by the 2010 workshop attendees to formalize the sharing that has traditionally taken place and has had great success since we implemented it in the 2011 workshop. These artifacts have ranged from courses that focus on narrow skills such as code analysis, to teaching software engineering in a course that spans the software engineering lifecycle, to an overview of software engineering education as a focused certificate in a computer science undergraduate program.
Discussion (Hybrid). The third day of the hybrid portion of the workshop will include an educator-led session to continue the discussions that started last year with respect to best practices and lessons learned for virtual and hybrid teaching.