With the rise of machine learning and growing attention to issues of racial injustice in the USA, there is renewed energetic discussion about how to teach students about ethics and the social impacts of computing. Talks and papers on these projects largely focus on case studies and examples that can be included in assignments. My thesis instead takes a pedagogic perspective. Drawing on papers from various disciplines including math education and cognitive science, we explored various pedagogic approaches to teach socially responsible computing. One recurring challenge in our exploration of pedagogical approaches has been guiding students to move beyond surface-level responses when engaging with case studies. An intriguing strategy we have identified is contrasting cases, where students are presented with multiple distinct instances of a concept, each differing in deep features. We conducted a study to evaluate the effectiveness of employing contrasting cases in teaching socially responsible computing (SRC), aiming to explore how this approach helps students understand and analyze the nuances of SRC concepts.