Photo: Denise Applewhite / Princeton University
‘It’s thinking about how those lines of code impact the project that impacts the broader society,’ said Jeremiah Giordani ’25

Though Princeton offers dozens of computer science courses every semester, Arvind Narayanan, a professor of computer science and director of the Center for Information Technology Policy, identified what he called a gap in the curriculum after noticing none of them covered computing ethics on a broad scale.

He set out to change that with his course Ethics of Computing, which was new to Princeton this fall.

According to Narayanan, 80% of the course is about applying ethical principles to specific systems, and the rest focuses on the principles themselves. For example, the first assignment tasked students with training a machine learning algorithm to maximize accuracy while minimizing discrimination.

“It’s not just writing lines of code,” said Jeremiah Giordani ’25, a computer science major and one of about 100 students in the class. “It’s thinking about how those lines of code impact the project that impacts the broader society.”

Narayanan said he wants students to think about political levers of change, while also providing a “very hands-on experience.”

Throughout the semester, students worked in small groups on problem sets on topics at the intersection of ethics and tech, ranging from discriminatory impacts of automated decision-making to harmful effects of targeted social media content. There was no midterm; for the take-home final, students analyzed technical and moral aspects of a case study of their choosing.

Steven Kelts, a lecturer at the Center for Human Values and at the School of Public and International Affairs, led simulations of tech companies facing ethical dilemmas during a few of the precepts; for example, drones originally designed for traffic detection instead were used by Ukrainians as trackers of and weapons against Russian troops.

Giordani said the course has reshaped his perspective of tech and encouraged him “to think not just about what is this technology, how does it work, how do we implement it, but also, what are the consequences of that implementation [and] how does that impact various parts of our society? That’s something that I think will stick with me for a very long time.”

Narayanan hopes Princeton will eventually incorporate ethics into the majority of Princeton’s computer science courses; he thinks it’s a missed opportunity not to discuss ethical concepts alongside technical details. Until then, he’s working on including even more moral and political philosophy into the current course.

His primary goal is to help students build skills, because “it’s not enough to want to act ethically, you have to know how to do that.”