For our critical code project, my group decided to do a code intervention based around the opinions of Greek life at USC. As students at the school, we had all been exposed to our fair share of Greek life whether through frat parties, Greek life events, or friends in the orgs. However, our general opinion of Greek life wasn’t great. USC’s fraternities and sororities have a reputation for being racist and sexist, and as women/NB people of color we had all experienced that prejudice firsthand, but when we looked on the r/USC subreddit, the opinions were largely positive. Although Reddit is not a perfect representation of USC’s student body, r/USC has over 11,000 subscribers, and our group as well as our friends use it regularly as a way to keep updated on USC related news, class information, and school events. Reddit does have a reputation of being mostly cis white men, but we thought also worked better for our intervention because our group was very much not that demographic, and we felt like those who could assimilate most into Greek life (aka upper class white students) needed the intervention the most.
As for general posts about Greek life on r/USC it was mostly posts from incoming freshman and prospective students who wanted more info about Greek life at USC.
The post received a variety of answers, but the general consensus was yes. Greek life and USC social life are closely intertwined. Not only did current students emphasize the importance of being active in Greek life in some aspects, they also praised the organization’s contributions to the school. Our group members were not part of Greek life, and yet we all felt like we had active social lives apart from it.
Not only were there questions about the level of Greek involvement, but when people asked about possible prejudices in Greek life/the rush system, they were met with less than hopeful responses.
and although the replies to the post were not positive, they didn’t seem to address the actual problem OP was wondering about:
Many of the original comments were also deleted, but from the replies to those comments it was clear that they had either criticized the racism in Greek life or talked about their own experiences with it.
The fact that these comments were deleted and had very few upvotes made us concerned about the negativity people were receiving in response to posting criticism about Greek life. Why were people deleting their comments, and why was the general view of Greek life on r/USC so different from our own? We wanted to know if this was the result of a lack of information that other students had on Greek life, or if r/USC was not really impartial, or if there were other factors in this. Although our initial stance and decision to tackle this topic stemmed from our own negative experiences with Greek life, we wanted the project itself to remain impartial in order to be of most use to the rest of the student body. It was also clear that showing public animosity towards Greek life on the subreddit would lead to users deleting their comments.
This need to bring more information to r/USC led to us deciding to create a reply-bot that would hopefully give that information. Using the PRAW Reddit API Wrapper, we made a bot that would reply to posts about Greek life with news articles about the name fraternity or sorority. I was the only one in our group with experience with Python but even then I had only done basic programs in high school so we were working to learn Python as we made the bot. Since we could not start building the bot until we had learned Python, our first two weeks of the project was spent on doing research on what information we wanted to post to Reddit and watching Python tutorials. We had a long running document of information about the 27 social fraternities and sororities on campus. This included their names, nicknames, and public opinion on each org which we pulled from Reddit, online news articles, and the organization’s own information pages. We found that almost all of the organizations had at least two recent (within the past 5 10 years) new articles about their group. The sources for these articles ranged from the New York Times to our own newspaper, The Daily Trojan. Articles that were written by bigger news sources like NYT were often about Greek life related scandals/USC scandals and generally negative. The topics were also more often about fraternities, especially about dangerous hazing practices that are known to be practiced at USC. Contrastly, the Daily Trojan and other more local Southern California papers had both negative and positive articles because they were more closely tied to campus. DT wrote about hazing and Greek life scandals, but also wrote about the positive impacts Greek philanthropy had on the local community and about other on-campus initiatives frats and sororities took part in. Our group also decided to only include articles that were directly related to the USC Greek orgs themselves. Any articles about past members including personal achievements, non-Greek life related deaths, and organizations from other schools/on a national level were not counted. We also found that many articles about Greek life mentioned it as a monolithic structure instead of as individual groups. Articles about a sorority’s philanthropy also included the initiatives of 5 or 6 other sororities on campus. Thus, many of the articles we found for each organization were repeated throughout the list. The groups that had individual articles written about them were about negative events such as the death of a student from hazing or about the list of demands AXO had from its members during rush. After gathering this data, we were ready to begin coding our bot.
We created the initial prototype of our bot by following a tutorial on how to make a Reddit reply bot. This was mostly us learning how to use PRAW and the reddit.instances() like actions such as submission.reply() which would comment on the targeted submission and information gathering instances like submission.title which would get the title of a Reddit post.
This first version was able to comment to a targeted post as well as search through posts for a keyword, but the keyword had to be manually changed each time. There was also no way to check which posts we had replied to or reply based on different keywords each time. As we improved our bot, we were able to track the posts that we had replied to using an external .txt file.
Each time the bot found a post it could reply to, it would check this txt file through the loop “if submission.id not in posts_replied_to:” and if the name was recorded in the file, it would not reply and move on to the next post. This was repeated for each post that fit our search criteria and if the post was not recorded, the bot would reply and then record the name down. By creating this external file called posts_replied_to.txt, we were able to both keep track of the posts and prevent our code from being cluttered in its name recording. However, this version still was not able to reply based on a list of words tied to a variable rather than a manual input of the search terms. It’s reply function was also based on manual input of a link. Our most recent version uses Python lists (which are similar to arrays in Javascript or other languages) to store a list of keywords we are parsing through post names for.
We also used variables to create a bot phrase that the bot would reply when it found a targeted post. There are two different loops, one for Alpha Chi Omega and one for Kappa Sigma (which through our research, we found were the most “prestigious” Greek organizations).
Each loop will check for its own keywords and reply with its own phrase. Initially, we wanted the bot to be able to reply to a much wider variety of posts that did not require writing a loop for each of the 28 organizations. This would depend on a “reverse” of our earlier python to txt code which recorded names from Reddit to Python to our .txt file. Instead, the .txt file would have a list of Greek life names/nicknames and a list of corresponding links. We would be able to use our keywords to read through Reddit posts, and when a keyword was found, we would use f.read to find the matching keywords and links in the txt file. The bot would then be able to reply to the post with that prewritten phrase+link instead. Since our group was so inexperienced with Python, we did not have enough time to figure out how to write that part (yet).
We did not expect a large response from Reddit since most of the discussion around Greek life happens at the beginning of a semester or during the summer when prospective freshmen are researching schools. However, the few responses we did get through upvotes and one “are you a bot?” reply showed that people were reading our bot’s replies. Unfortunately, our bot also got banned twice, the second time just hours after it had commented a link about Kappa Sigma on a post. Judging from just the response, it is inconclusive if our code intervention actually had an effect on r/USC. If we had more time to receive the responses, and commented at a more opportune time, I feel like we would get a clearer response to our bot.
I think we would also need more time to solidify exactly what the bot would reply with (since we were mostly just using test phrases or commenting on a link with no context) and how that would fit into the existing dialogue around Greek life on Reddit. It was also a challenge to try and send code back and forth on one master document as opposed to running smaller snippets of code independently. However, the nature of our bot meant that every loop was tied to another one and it was hard to separate the whole process into individual parts. A lack of communication between the group members and scheduling difficulties also made it hard to create a more polished product, but I personally felt overall like we did a good job in achieving the base goals of what we wanted the bot to do and got responses that showed an opportunity for further discussion of Greek life on r/USC in the future.