Conference Paper by Casey Fiesler, Mikhaila Friske, Natalie Garrett, Felix Muzny, Jessie J. Smith and Jason Zietz. Presented at the 52nd ACM Technical Symposium on Computer Science Education (SIGCSE ’21).
Increasing attention to the role of ethical consideration in computing has led to calls for greater integration of this critical topic into technical classes rather than siloed in standalone computing ethics classes. The motivation for such integration is not only to support in-situ learning, but also to emphasize to students that ethical consideration is inherently part of the technical practice of computing. We propose that the logical place to begin emphasizing ethics is on day one of computing education: in introductory programming classes. This paper presents one approach to ethics integration into such classes: assignments that teach basic programming concepts (e.g., conditionals or iteration) but are contextualized with real-world ethical dilemmas or concepts. We report on experiences with this approach in multiple introductory programming courses, including details about select assignments, insights from instructors and teaching assistants, and results from surveys of a subset of students who took these courses. Based on these experiences we provide preliminary plans for future work, along with a roadmap for instructors to emulate our approach and suggestions for overcoming challenges they might face.