Project Description#

The last assignment for this course is a group (2-4 people) project. The point of this project is for you to apply the programming skills and ethical considerations you’ve learned in this course to a problem you care about. Your final project will have two parts: Code and Reflections.

Code#

You will need to create a program that interacts with a social media platform in a JupyterHub Notebook.

The program can be a modified version of something we’ve done before such as:

  • A bot that make posts

  • A bot that replies to messages

  • A program that checks author info of posts

  • A program that checks the sentiment of posts etc.

Or it can be a new program that does something different than we’ve done before, like

  • a bot that posts corny jokes

  • a bot that posts one picture of a racoon every day

  • a program that users can run that will delete all posts over 30 days old

  • a program that lets a user block one person and all the people who follow that person

All that we require is that you don’t violate the social media platforms’ policies. Though we will also allow for making a bot that would theoretically violate the social media platforms’ policies, but instead of actually doing the forbidden action (like messaging at a random stranger), you print out what you would do, or that you restrict your bot to only interacting with another account you own.

Reflections#

You also must reflect on the program you write and the ethical considerations that go into designing and using a program like the one you created. You will be required to come up with your own three ethics questions and write at least 4 sentences exploring each question using two ethics frameworks (that is, each question has to be answered using two ethics frameworks, for a total of at least 4 sentences).

Project Stages#

Proposal#

Your group must make a proposal for your project (2 pages max). It can be any text format, like a google doc or word doc. Your proposal must state:

What program you want to make. Include both:

  • The simplest version that would do something interesting (Minimum Viable ProductLinks to an external site.)

  • Your dream version with all the features you would want

  • How you intend to make it (like, using for loops, or searching for your mentions, etc.) What your proposed three ethical questions are

Class Demo#

By the start of the last day of class, your group must share your program and reflections with the class (probably using a shared google doc). If you come to class in-person, you can talk to others in the class about what you did and see what they did.

Final Turn-in#

You must also turn in your final program/reflections.

Grading#

The final project is worth 25% of your total grade and is a great chance for your team to demonstrate creativity.

Grading will be split into:

  • (10 points) - Draft Project Proposal: 2 pages max, to get in-class feedback from TAs and Instructors

  • (50 points) - Project Proposal: 2 pages max, updated after feedback

  • (100 points) - Project Code and Write Up: A pdf with the description of your bot, the bot code, your 3 ethics questions and your reflections on those questions

  • (50 points) - Project Presentation: share a pdf of your project and answer questions in a shared location

  • (10 points) - Peer Evaluation: of how your group worked together

  • (9 points) - Your favorite projects: turn in your favorite 3 projects