Social Media, Ethics, and Automation (we wrote a textbook!)

Kyle Thayer
5 min readDec 18, 2023

--

Along with most people in my college dorms, I was excited to join Facebook as soon as they opened it up to my university. I had been using various forms of social media before (AIM instant messenger, bulletin boards, etc.), but Facebook was new and exciting!

At the same time that I joined Facebook as a user, I was getting a computer science degree and learning automation and computer programming. At the time I saw no connection between the social media I used or the programming I was learning. In fact, I saw almost no connection between the programming I was learning and anything I was encountering in real life. I learned how to write computer programs that were very abstract and had little-to-no real-life applications besides sometimes solving math problems. Given that my programming knowledge was so abstract, it’s also not surprising that I barely encountered any ethical concerns about programming, except for one professor who mentioned a couple examples of programming errors killing someone.

But since then, I learned more programming, including working as a software engineer on real projects that actual people used. I also read and saw more about how social media works and learned about the real-world consequences of what happens on social media. I could now see the practical ways computer programming was used to automate tasks on social media, such as with bots, reminders, and recommendation algorithms, and I could see there were ethical complications everywhere.

So, I asked Dr. Susan Notess (who has a background in philosophy and ethics) to help me write a textbook that explores all these connections. We put together this textbook which explores social media topics through teaching students who have never programmed before how to write social media bots, and then reflect on the ethics of what they just created. And now we are ready to share it for free online!

Here it is! Social Media, Ethics, and Automation

The logo for our book.

https://social-media-ethics-automation.github.io/book

Book Design

If you are interested, here is some information on how we designed the book as we did and why.

A Different Entrances to Programming

Computer programming has traditionally been taught in combination with a few specific subjects, particularly: abstract logic problems (like most of my undergrad), math (especially back when programming was considered women’s work), video games, data science, and other sciences.

Computer science educators have been working on teaching programming with examples from different fields (called CS + X), or incorporating programming as part of another subject (called X + CS). For example, Mark Guzdial has written intro programming books where the programming examples are based in media (e.g., photo manipulation) and Melanie Walsh created Introduction to Cultural Analytics & Python.

By combining programming with other fields, we hope to make programming accessible, interesting, and practical to people who might otherwise not encounter it in a meaningful way. In particular, we chose to combine programming with the field of social media, with an emphasis on ethical reflection and analysis.

Organized Around Social Media Topics

We chose social media as a topic to combine with programming primarily because we think studying social media is fun! But also, we think there are many students interested in social media that would be willing to learn some programming in order to learn more about social media. And we think anyone who uses social media would benefit from learning more behind-the-scenes how it works.

So, we organized our book primarily around social media phenomena and perspectives, such as:

We then teach and use some programming skills as a way to support learning about social media. For example:

  • Make a bot that makes social media posts. Are those posts authentically from you, since you wrote the bot? (Assignment 1)
  • Can you make a bot that is or isn’t easily trolled? What trade-offs might you have to make to prevent your bot from saying bad things? (Assignment 3)
  • Try your own modification to a recommendation algorithm. Did that work like you expected? (Assignment 5)
Table showing how the topics align by chapter. Link to accessible html version of the table in description below.
Outline of book chapters (minus intro/conclusion) showing how the Social Media Topics are supported by activities, including programming content and demos. Up-to-date HTML version of the table is here.

Ethics Woven in Throughout

We are also, by this point in our lives, very concerned about ethics in tech (as are many others). While some computer science programs barely engage with any ethics (like Kyle’s undergrad at the time), and others have a stand-alone ethics class separate from programming class, we wanted to weave ethics concerns and questions throughout the book, making it part of the process of thinking about social media and learning about programming. For example, immediately after we introduce the concept of computer data types, we discuss how all data is a simplification of reality, and question who data fits. (For other examples of ethics and tech education see Casey Fiesler and Evan Peck).

Our strategy for weaving ethics in is to, at the start, introduce students to a diverse range of ethics frameworks they can consider (e.g., Ubuntu ethics, Consequentialism, Ethics of Care). We encourage students not to choose one “favorite” framework, but to consider the frameworks as an array of tools that will highlight different ethical concerns in any given situation (like a doctor choosing between X-Rays, Ultrasounds, and MRIs, and often more than one).

So, throughout the book, activities, and assignments, we bring up many ethical concerns, and ask ethics questions. And we often ask students to choose at least two ethics frameworks to apply to different ethics questions, so they can see what insights different ethics questions provide.

Interactive Learning

We also want our textbook to be interactive, so our programming examples can be opened in the browser and edited and run by anyone! (be aware though, opening them this way takes a while).

The book is built with JupyterBooks, and the programming examples and exercises are Jupyter Notebooks, which can directly be run in the browser as we mentioned, or can be downloaded and run in any Jupyter Notebook environment.

For the programming sections of the book, we focus on having students take existing code and modify it, rather than create it by scratch, which we believe better mirrors programming tasks done in the real world.

We also have started adding self-assessment quizzes into the book.

Continued Improvements

One of the benefits of an online textbook is that we can continue to improve it. This means that we can add programming content for different social media platforms (currently the Reddit version of the book is complete, and the Discord version has been started), and we can continue to update other content as well (including adding a lot of new sources we’ve collected over time).

Previous post by Kyle: Three types of knowledge developers need when using APIs

You can contact Kyle at kmthayer@uw.edu or visit his website http://www.kylethayer.com.

--

--

Kyle Thayer

Assistant teaching professor in the iSchool at the University of Washington. I research programming, culture, and education. (he/him) http://kylethayer.com