SEAILGJan 18, 2020

Teaching Software Engineering for AI-Enabled Systems

arXiv:2001.06691v135 citations
AI Analysis

This addresses the need for software engineers to build scalable and robust AI systems, though it is incremental as it adapts existing educational methods to a new domain.

The authors tackled the challenge of teaching software engineering skills for AI-enabled systems by designing a new course that moves beyond traditional ML modeling to focus on realism with large datasets, robust infrastructure, and ethical considerations, and they shared materials and experiences from its first implementation.

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.

Code Implementations1 repo
Foundations

The foundational work for this paper's niche, ranked by how specifically the neighbourhood builds on it — not by global fame.

Your Notes