6.10. Social Impacts of CS

We are living in an age of rapid development in technology and automation. Software and hardware developers increasingly have real impacts on people’s lives. In computer science, we follow the following ACM professional code of ethics which includes guidelines such as “Avoid harm” and “Respect privacy”.

However, sometimes programs have unintended consequences, and sometimes, it is hard to ensure system reliability, where everything will work as intended. Software developers also need to be aware of the legal implications and intellectual property laws.

The fields of AI (Artificial Intelligence) and Machine Learning increasingly pose ethical questions in our world. For example, self-driving cars that use machine learning to learn to follow lanes and avoid collisions could make our world much safer. Self-driving cars do not get distracted by text messages and don’t drink and drive. However, what if the car needs to make an ethical decision about avoiding a collision with a pedestrian by causing an accident that may also lead to the loss of life? Who makes these decisions? The software? the programmers? If you were a programmer for a self-driving car, how would you approach such decisions? Here’s a great Wired article about self-driving cars and ethical problems.

Another problem in machine learning is bias in algorithms or data. Machine learning software learns from lots of data examples, but the data in our world is often biased, and machines can then learn these biases.

Watch the following Gender Shades video about gender and race bias in face recognition algorithms by computer scientist Joy Buolamwini (MIT Media Lab and Algorithmic Justice League).

Here are some other interesting videos to watch about bias in algorithms:

6.10.1. groupwork Impacts of CS

hoose a software application that has social and ethical implications. Discuss the beneficial and harmful effects of this software application. Discuss the ethical problems that may arise and how programmers can try to avoid them. Prepare a presentation for your class.

6.10.2. Summary

  • While programs are typically designed to achieve a specific purpose, they may have unintended consequences.

  • System reliability is limited. Programmers should make an effort to maximize system reliability.

  • Legal issues and intellectual property concerns arise when creating programs.

  • The creation of programs has impacts on society, economies, and culture. These impacts can be beneficial and/or harmful.

You have attempted of activities on this page