24.1. Pedagogical Goals and Design#
24.1.1. Combining Topics#
Our goals with this textbook are to combine introductory courses across several fields that normally don’t get combined. We hope that this attracts and introduces students to areas that they might not otherwise learn about, such as someone interested in social media learning about programming, or someone interested in programming learning about ethics.
As we combined these three areas, these were our strategies in doing so:
Integrating Ethics#
To integrate ethical considerations throughout the textbook in an inclusive and non-prescriptive way, we introduce a diverse set of ethical frameworks as analytical tools (e.g., Confucianism, Aztec Virtue Ethics, Consequentialism, Ethics of Care, Ubuntu Ethics). Then in assignments and throughout the rest of the book we raise ethical considerations and ask students in discussions and assignments (including reflecting on the code they write) to practice and develop their skill in viewing situations through at least two ethical frameworks, comparing how each of those frameworks would parse the ethical dilemmas in the situation.
24.1.2. Activities and Interactivity#
Design Activities#
We wanted to give students opportunities to critique designs of social media and consider their own ideas for designing social media. To support this we use the CIDER method for critiquing designs and thinking of design changes. We also give students some more open ended design opportunities for conceptual design, as well as freedom in their programming assignments to make design decisions and explain and critique their design decisions.
Interactive Coding#
For the programming sections of each chapter, we provide Jupyter Notebook pages in our book for demos, practice problems, and assignments. This lets students load, run and experiment on these programming pages. We also created optional fake bot libraries so students can experiment with bot code without needing an account.
24.1.3. Outline of course content and activities#
Ch |
Social Media Topic |
Programming Topic |
Programming Demo/Activity |
Other Activity |
---|---|---|---|---|
2 |
Definitions |
What is programming? |
Demo bot that posts |
Ethics Frameworks |
3 |
Bots |
Statements, vars, sleep |
Bot posts multiple times |
Find real bots |
4 |
Data |
Data types in python |
Get data from posts |
Design a view of posts |
5 |
History of Social Media |
Looping w/ lists and dictionaries |
Loop through posts |
Social media use cases |
6 |
Authenticity |
N/A |
Look up info about post / poster |
Analyze Facebook name rules |
7 |
Trolling |
Conditionals, String manipulation |
Make reply bot and troll it |
Examples of trolling |
8 |
Data Mining |
Sentiment Analysis, loop counters |
Sentiment analysis on sets of posts |
Categories predicted for you |
9 |
Privacy and Security |
Functions |
Track use of functions |
Analyze GDPR |
10 |
Accessibility |
N/A |
Look through alt text of posts |
Accessible design analysis |
11 |
Recommendation Algorithms |
Dictionary counters |
Recommend a friend |
Think of recommendation algorithms |
12 |
Virality |
N/A |
None (yet) |
What values do you have for virality? |
13 |
Mental Health |
N/A |
Show only “positive” posts |
Mental health design analysis |
14 |
Content Moderation |
Trees, Recursion, DFS |
Display or hide comments/replies |
Try reporting a comment |
15 |
Content Moderators |
N/A |
None (yet) |
Content moderation game |
16 |
Crowdsourcing |
Force-directed graphs (planned) |
Visualize networks (planned) |
None (yet) |
17 |
Harassment |
N/A |
Group block (planned) |
Features used for harassment |
18 |
Public Criticism and Public Shaming |
N/A |
None (yet) |
Design retract post |
19 |
Capitalism |
Programming & gender |
None |
Game / Imagine alternatives |
20 |
Colonialism |
Colonialism in programming |
None |
Imagine alternatives |