masked students in a group

Students take computing beyond the classroom for social good

Princeton undergraduates are using their computer science for social justice, including these five students. From left: Khandaker Momataz worked on the New Jersey Fairshare Housing project; Anika Duffus and Sonia Gu worked on the Trenton Area Soup Kitchen scheduler project; Carina Lewandowski was part of the JuST student group; and Wendy Ho attended Barbara Engelhardt's independent work seminar. 

Following a nationwide call for social equity and anti-racism work, Princeton undergraduates returned to their classes ready to transform their computer science skills into a force for social good.

Designing intuitive software or analyzing a complex dataset are the bread and butter of any computer scientist. These skills can be used to build intelligent machines or predict financial patterns, but in two computer science courses this fall semester, students learned how these same skills can promote social equity in policing and in two Princeton-area nonprofits. 

"As computer scientists, we recognize a responsibility to ensure that the technology we create is worthy of the trust society increasingly places in it,” said Jennifer Rexford, chair of the Department of Computer Science as well as the Gordon Y.S. Wu Professor in Engineering. “We can go beyond a ‘do no harm’ view of ethical technology to a place where technology is a lever for righting wrongs and making the world a better place."

In fall 2020, students explored unequal treatment of Black Americans hidden within datasets and used software to improve crucial work and housing systems in the Princeton area.

“Right now, so many people fail to understand how generalizable the racism that Black Americans experience is,” said Barbara Engelhardt, an associate professor of computer science. “They hear a few stories and assume that not all Black Americans are stopped by police and that the person telling the story had a bad experience with a bad apple cop. The data show that these experiences are ubiquitous… [and] tell the story of racism by design.” 

For senior Wendy Ho, a computer science major who took Engelhardt’s independent work seminar “Machine Learning for Social Justice: Data Analysis to Study the Black Lives Matter Movement,” the power of data analysis lies in its ability to show a “clearer picture” of inequality that might otherwise be ignored.

For her project, Ho analyzed 30 years of complaints issued against the New York Police department to identify trends of misconduct between police officers and Black Americans. 

“Historically, the data on citizen complaints of the police has been hidden from view of the public, making it hard to find trends and identify police that have multiple misconduct complaints,” explained Ho. “By looking at this dataset and by demanding that more data like this be public and transparent, we can understand how policing could better serve the public.”

But not all data, or datasets, are created equal. Omissions or misrepresented data can introduce harmful bias into already unequal systems. Some facial recognition systems, for example, have been shown to be less accurate in identifying non-white faces, resulting in Black individuals being misidentified and accused of crimes they did not commit.

Ho suggested using a predictive algorithm to study the police instead of citizens.

“Data can be used for good when we take care to increase transparency and trust in our institutions,” she said.

Meeting of students advancing social justice on zoom

The Trenton Area Soup Kitchen team connected through Zoom to work on their project. Clockwise from top left: Anika Duffus, Sonia Gu, Andrew Paul, Pang Nganthavee, and Kwan Sirisakunngam.

Programming in the service of humanity

Two groups of students in “Advanced Programming Techniques” spent their semester exploring how software design can make more user-friendly websites for two local nonprofit groups: New Jersey's Fairshare Housing Center and the Trenton Area Soup Kitchen (TASK). 

An important objective for the course was for “students to learn about software engineering in a rich context that they find rewarding,” said Robert Dondero, the lecturer in computer science who taught the course.

The student programmers started their projects by working with the newly formed Princeton group, Technology for a Just Society (JuST), which focuses on providing an inclusive tech culture and forging connections between young Princeton technologists and nonprofits. 

“JuST offers a community where students can explore how technology can deepen social inequity, as well as how it can be leveraged to advance social justice and address other major societal challenges,” said junior Amina Elgamal, a co-founder of JuST and a computer science major.

The students working with the Fairshare Housing Center wanted their coding skills to contribute to the nonprofit's mission of “end[ing] discriminatory or exclusionary housing patterns,” said junior Veronica Abebe.

The main problem was that the center had no centralized system to display all their available units and no standard system for categorizing data such as addresses, explained junior Julia Ruskin, another member of the group.

“We aimed to solve this problem by creating a website that displays all of their available listings on a map and lets users search for housing based on their specific preferences,” she said. “Our site also allows the Fairshare Housing Center to add new units as they’re developed, ensuring that low-income communities across New Jersey are able to access the latest information about affordable housing opportunities.”

While there are a few things the team would have done differently in hindsight, such as optimizing their website design for mobile as well as desktop browsing, the group said they were “really excited” by how well their design was received. 

“This project has inspired us to use our classroom tools and techniques to help people and communities around us,” said group member Khandaker Momataz, a junior.

Fellow juniors Sonia Gu and Anika Duffus, an electrical and computer engineering and computer science major respectively, echoed those sentiments when describing their experience designing scheduling software for TASK

The idea that their project would have a real impact on TASK and its clients was daunting at first, Gu said, but she was “excited at the prospect of working on a project that could reach so many people.”

The main goal for this project was to design a website with two interfaces — one for employers to post jobs and one for TASK clients to sign up for them. Additional functionality was also added, such as scheduling events.

Despite a total 15-hour time difference between Gu, Duffus and their teammates, they were able to deliver software that met many of TASK’s needs. 

“It was amazing seeing how TASK appreciated our progress,” said Duffus. “I have always wanted to give back to my community using programming. However, being bogged down with school I never follow through because I think I need to do something big. I learned that [giving back] can be something small and it can be actually fun.”