
Embedded EthiCS @ Harvard Bringing ethical reasoning into the computer science curriculum
We Value Your Feedback! Help us improve by sharing your thoughts in a brief survey. Your input makes a difference—thank you!
- Browse by Course Title
- Browse by Module Title
-
Filter by CS Course Types -
Filter by Ethics Topics
Basics of Digital Privacy
Instructor Materials for Basics of Digital Privacy
Module Description
This module is about privacy in the age of big data and machine learning. The focus is two-fold: first, students are asked to think about why privacy might be important (especially in an era where almost all of our data is already collected and many of us intentionally post information online), and second, students are tasked with evaluating 3-4 different conceptions of privacy and assessing whether they actually offer the kinds of protections we think are valuable. The course is a very introductory level CS course which covers basic programming concepts and the history of the field. The module is therefore also very general in order to fit with the aims and scope of the course.
Course Name: Great Ideas in Computer Science – CS1, Spring 2025
Great Ideas in Computer Science – CS1, Spring 2025
Instructor Materials for Basics of Digital Privacy
Course Description
An introduction to the most important discoveries and intellectual paradigms in computer science, designed for students with little or no previous background. Explores problem-solving and data analysis using Python, a programming language with a simple syntax and a powerful set of libraries. This course covers basic data types and collections (lists, dictionaries, tuples, and sets), control flow, recursion, supervised machine learning via regression, visualization, information hiding and encapsulation using classes and objects, and introduces the analysis of program performance. Presents an integrated view of computer systems, from switching circuits up through compilers, and examines theoretical and practical limitations related to unsolvable and intractable computational problems. Other topics include the social and ethical dilemmas presented by such issues as software unreliability, algorithmic bias, artificial intelligence, and invasions of privacy.
Module Title: Basics of Digital Privacy
Moral Responsibility and Software Development
Instructor Materials for Moral Responsibility and Software Development
Module Description
This module asks students to consider the relationship between software design and moral responsibility. The module works by proposing a basic principle of moral responsibility, and then presenting the students with case studies meant to problematize that basic principle in various ways to show how complicated the notion of moral responsibility can get. This course is about the design of computer programs, so the module focuses on the moral responsibility of programmers with respect to designing and producing these systems. The primary consideration in question is whether programmers (or the companies they work for) bear some responsibility for the impacts of their products. If the answer is yes, then “designing well” must include some consideration of designing ethically. Importantly, this module was run by the CS coursehead, so the module instructor guide may deviate slightly from the slides, and there may be aspects of the instructor guide that are missing information.
Course Name: Abstraction and Design in Computation – CS51, Spring 2025
Abstraction and Design in Computation – CS51, Spring 2025
Instructor Materials for Moral Responsibility and Software Development
Course Description
Fundamental concepts in the design of computer programs, emphasizing the crucial role of abstraction. The goal of the course is to give students insight into the difference between programming and programming well. To emphasize the differing approaches to expressing programming solutions, you will learn to program in a variety of paradigms — including functional, imperative, and object-oriented. Important ideas from software engineering and models of computation will inform these different views of programming.
Module Title: Moral Responsibility and Software Development
Ethics Bowl
Instructor Materials for Ethics Bowl
Module Description
This module immerses students in the ethical evaluation of real-world software projects through a collaborative, “red teaming” format inspired by the Ethics Bowl. As part of the course, students are already working in teams on software projects, which form the basis for this exercise. Prior to the module, each team prepares a concise summary of their project, detailing aims, stakeholders, deployment plans, and data sources. This summary is then shared with another team playing the role of their “red team”—i.e., a group acting as adversaries who are looking for possible problems with the software. The red team’s job is to critically assess the project from a moral standpoint, identifying possible ethical pitfalls, stakeholder concerns, and potential public relations risks. During the class session, teams meet in pairs to present their critiques, engage in constructive discussion, and practice responding thoughtfully to ethical challenges. This interactive process encourages students to anticipate objections, refine their ethical reasoning, and consider the broader impact of their work. The session culminates in classroom-wide presentations, offering further opportunities for peer feedback and exchange of ideas.
Course Name: Software Engineering with Generative AI – CS1060, Spring 2025
Software Engineering with Generative AI – CS1060, Spring 2025
Instructor Materials for Ethics Bowl
Course Description
Software has become a chief driver of innovation in every field of study and industry. Generative AI is rapidly transforming software development—not so much by replacing developers, but rather as a dramatic force multiplier for capable developers. Students will learn and practice industrial software engineering by building Software as a Service (SaaS) with modern tools. These include generative AI, automated testing, continuous integration, and continuous deployment (CI/CD). We will follow a software development lifecycle to plan, design, implement, test, deploy, and maintain a small, cloud-based SaaS system.
Module Title: Ethics Bowl
Privacy and Efficiency in Design: The Game
Instructor Materials for Privacy and Efficiency in Design: The Game
Module Description
This module is designed around a data management board game. In groups, students are divided into one of three roles: developers, user-experience designers, and managers respectively. Developers care about the product working efficiently and effectively. User-experience designers care about user trust and loyalty. Managers are tasked with balancing the interests of developers and user-experience designers. After playing the game, group discussions help students deliberate about heuristics for navigating trade-offs and trade-off negotiations.
Course Name: Software Engineering with Generative AI – CS1060, Spring 2025
Software Engineering with Generative AI – CS1060, Spring 2025
Instructor Materials for Privacy and Efficiency in Design: The Game
Course Description
Software has become a chief driver of innovation in every field of study and industry. Generative AI is rapidly transforming software development—not so much by replacing developers, but rather as a dramatic force multiplier for capable developers. Students will learn and practice industrial software engineering by building Software as a Service (SaaS) with modern tools. These include generative AI, automated testing, continuous integration, and continuous deployment (CI/CD). We will follow a software development lifecycle to plan, design, implement, test, deploy, and maintain a small, cloud-based SaaS system.
Module Title: Privacy and Efficiency in Design: The Game
Except where otherwise noted, content on this site is licensed under a Creative Commons Attribution 4.0 International License.
Embedded EthiCS is a trademark of President and Fellows of Harvard College | Contact us
