Project

In the course project, you will work in a group of three to four to design, launch, and manage a social computing system. It is not a project that you can cram: it takes time, effort, and patience to create a thriving social computing system. This is your chance to put all of the lessons from the quarter together, and have a positive influence on the world.

Overview

Form a team of three to four with others in your discussion section. As we will discuss in lecture, teams are hard, because interdependence is hard! So, make sure to have conversations up front with your team about what kind of norms you want, how invested you want to be in this project, how you will interact with each other, and why. If you cannot form a team of three to four, talk to a TA. However, our expectations are scaled around teams of three to four: we expect nearly as much work from teams of two as we do from teams of 3–4, and we expect much more work from teams of five than we do from teams of 3–4.

Work with your team to brainstorm a number of ideas. What are you proposing to create? You may pick the goal: fun, collaboration, collective action, creativity, or anything in between. What set of people will be seeding your social system? You will be creating this system from scratch. You are also tasked with considering the negative outcomes that might arise in your system, and how to address them effectively. You will launch that system. Finally, you will be writing up a paper analyzing your design and the behavior based on the theories and concepts from the class.

To give a sense of the scope and ambition we aim for we have placed some example projects from previous years in the "Files" area of Canvas. Please note that these examples were from earlier iterations of the class, and the requirements have evolved a bit since then.

Select A Project Zone

To support the range of different backgrounds and skills in this class, your team may elect for how technically focused, vs. how socially focused, the project is. You may choose one of three zones, which impact the expectations in terms of how many users we expect you to recruit and how much you analyze their behavior on the platform:

  • Zone 1, Technical focus: This track is focused on design and engineering, and expects only a small number (e.g., 5) of pilot users. Envision and create a nontrivially complex social computing system. Typical platforms for Zone 1 projects include React, React Native, and Firebase. The deliverable at the end of the quarter is that it is complete — that you are ready to launch it. However, only a small number (e.g., 5) of pilot users are expected. Pilot users give you feedback but don’t need to have sustained interactions with the platform. An example Zone 1 project might be launching a simple new social app or web platform to share jokes about Michael Bernstein while he lectures.
  • Zone 2, Hybrid focus: Zone 2 is for projects that are using no-code tools but augmenting those tools with a substantial code extension to enable the application. Zone 2 expects that the code extension be nontrivial: this is not a matter of writing 100 lines of code to extend the no-code solution; it is the best fit for a serious extension of an existing system. The extension also needs to be well integrated into the design of the system, rather than an afterthought. Examples might utilize Google Apps Script or nontrivial bot applications for Discord or Slack. Zone 2 expects a fair number of users, but fewer users than Zone 3. For example, a Zone 2 project might create an on-campus Twitter clone with a styled form on a Wix site for its user interface for following accounts, then write an app that sends email or text messages automatically based on the spreadsheet contents of who follows who.
  • Zone 3, Social focus: This track focuses on social spread and analysis. Projects in this zone are expected to use only no-code tools: typical platforms include Wix, Wordpress, Discord, or Slack, with no coding. Zone 3 projects have the highest expectation in terms of the number of users, and the depth of analysis of user behavior.

Image showing the upper right quadrant of a circle. The arc is trisected into three equal angles. At the top left is 'Technical Focus', and at the bottom right is 'Social Focus'. The three sections sit on a curve between these two labels. At the top is 'Zone 1: Code a functional application'. In the middle is 'Zone 2: Code to extend a no-code tool'. At the bottom is 'Zone 3: No-code tool'.

Your zone determines what is due at each deliverable.

Zone 1: Technical focus Zone 2: Hybrid focus Zone 3: Social focus
Milestone deliverable Front-end or back-end of system is functional No-code part of the implementation is complete Launch — platform is live and ready for users
Final deliverable Launch — platform is live and ready for users Go Viral — have users Go Viral and Analyze — have users, as well as quantitative and interview analysis of behavior patterns
Technical expectation Build the platform yourself Extend a no-code solution with some code to complete the design No-code solution
Usage expectation Only pilot users expected (e.g., 5 people) Moderate usage (e.g., 15 people if targeting all Stanford undergraduates = 5 per member in teams of three). Exact user target worked out with TA. Heavier usage (e.g., 30 people if targeting all Stanford undergraduates = 10 per member in teams of three). Exact user target worked out with TA.
Analysis expectation Only descriptive analysis of the pilot users expected. Only high level usage analysis expected, e.g., high level data demonstrating what people are doing on your platform. Deeper usage analysis expected, including both data analysis and user interviews.

All Zones are committed to designing for nontrivial social interactions: creating a Google Form and calling it a day is not a complex enough social interaction for the purposes of this project. Zones 2 and 3 are also making a commitment to recruit users onto the system. You might wonder, "But what if nobody uses my system?" Don't worry—learning to navigate this is part of our learning goals. First, you will propose a concrete usage goal in the proposal assignment, based on the guidelines above for your Zone. Via this proposal, you will come to an agreement on your usage goal with your TA. Make sure to launch far in advance of the deadline, so that you will have time to adjust course if you are not attracting usage like you expected. If, in the course of your project, you want to adjust your goal based on the realities of your project (e.g., it's a ghost town), reach out to your TA. Based on the situation, your TA may suggest that you iterate your design based on the feedback rather than adjust your usage goal, or may work with you to adjust the goal. If, after a few iterations, your project is still a ghost town, you and your TA may agree to change your final paper deliverable so that you report all of your iterations and compare them --- that your final paper can instead be a comparative analysis across your attempts to understand what is going on.

We don't receive any funding for this class, so you'll want to pick your platforms with budget in mind. Many platforms (e.g., Wix, Firebase, Render) have free trials, or you can budget ahead if you want to use a paid hosting platform.

Proposal + Piggyback Prototype

Decide on a Zone and a project topic. Based on your zone and the information above, decide what a reasonable goal is for how many active users your system will have to earn full credit on the Viral part of the project grading rubric. For the purposes of this class, we define an active user as someone who did more than just lurk on your system --- they must have contributed in some way. The table above provides some general guidelines in terms of numbers if you are looking to target Stanford students, but your project may target other or smaller communities (e.g., affinity groups you are a part of, interests you hold), and so adjust your target goal appropriately. The TAs will review your proposal and give you the OK for your target, based on your project and target community. In discussion with your TA, you may switch zones later in the quarter if needed.

Next, prototype your proposed design using a piggyback prototype. This probably involves getting at least five people outside your group involved in your prototype. As discussed in lecture, piggyback prototyping explicitly avoids building complex software: fashion something out of existing social platforms. Don't forget that piggyback prototypes should test authentic social behavior, not usability or feasibility.

Submit on Gradescope a PDF of 1,500 words or less on behalf of the group that reports:

  1. The group members - names and SUNet IDs.
  2. A high-level description of the design and motivation for your sociotechnical system.
    Tie the design and motivation to course concepts. Specifically: using concepts from lecture (e.g., the contribution pyramid, sociotechnical systems, intrinsic/extrinsic motivation, social influence, descriptive/injunctive norms), explain what the problem is, and how your design will address it.
  3. Your project zone, user goal, and technical plan. Which zone is your project in? Based on the zone, what is your proposed number of active users your system will have in order to earn full credit on the Viral part of the project grading rubric?
    • If you are in Zone 1: what code platform will you be using to build your system? Why that platform? Confirm that your team has roughly equal technical ability to contribute (so that one poor member isn't doing all the technical work). Lay out a high level technical plan for the engineering.
    • If you are in Zone 2: what no-code platform will you be using to build your system, and what code platform will you be building your extension in? Why those platforms? What concrete extension will you be making to the non-code tool? Remember that Zone 2 requires a substantial code extension of the non-code tool, and must be well integrated into the system rather than an afterthought.
    • If you are in Zone 3: which no-code platform will you be using to build your system? Why that platform?
  4. Your method of prototyping the system.
    How did you test your envisioned social dynamics without spending weeks building the system?
  5. Your results from prototyping the system.
    What happened when you tried out your prototype? What confirmed your design hypotheses, and what surprised you? How will you be adapting your design going forward? Again, tie the explanation to course concepts (e.g., those in the list of course concepts above) to explain the outcomes you observed.
  6. Possible negative behaviors in the system, central ethical risks, and privacy concerns, and how you intend to address these. As a group, pick three of the most relevant Tarot Cards of Tech for your project, and apply them to your project idea. How will you address those risks? These considerations boil down to a reminder that real people will be using the system that you create. With great power - and the liberty to make design decisions - comes great responsibility.

On all project submissions, images and figures are not counted toward the word limit. If needed, project submissions may also include an appendix, which the staff will review if possible.

Only one team member needs to submit for the group on Gradescope. Remember to tag each team member in the submission.

While waiting for the staff to give feedback on your proposal, start thinking ahead about who you can reach out to as a seed community for your system.

Grading rubric

Category Insufficiency Adequacy Proficiency Mastery
Design description
3 points
Design is poorly motivated, a poor fit for the target community, and not anchored in course concepts. Design is only somewhat well motivated, a mediocre fit for the target community, or overly loose connections to course concepts. Design is mostly well motivated, a reasonable fit for the target community, and demonstrates moderately effective connections to course concepts. Design is well motivated, fit to the target community, and anchored in course concepts.
Piggyback prototype
4 points
Did not use piggyback prototyping (e.g., used a static mockup or interest survey rather than testing core social interactions) Created a prototype but did not test the core social interactions to the concept. Created an effective prototype, with minor errors, unclear lessons for improving the design, or lack of explanations tied to course concepts. Strong prototype that tests the core concepts of the design, with reflections that bear on the design and tie to course concepts.
Negative behaviors
2 points
Did not identify negative impacts, and did not identify a plan to address the issues. Negative impacts were described but not deeply thought through, or plan to address the negative behavior was insufficient. Negative impacts and mitigation are sufficient but not standout. Negative impacts and mitigation are deeply thought through.

Milestone

The milestone deliverable is a checkpoint for the staff to provide feedback and help scaffold progress toward a successful final deliverable.

The deliverable varies by Zone:

  • Zone 1: Either the front-end or back-end of your system is functional. For example, you might have a working React app populated with fake data, where the user can click around and interact on the platform but there is no server or database yet.
  • Zone 2: The no-code components of your system should be complete. For example, the user interface should be finalized and ready to launch. However, the code components of your system may still be in progress.
  • Zone 3: Launch! Your system, which is no-code, should be ready to launch. Following the milestone, launch it and start gathering usage. Zone 3 should launch the earliest, since its virality and analysis expectations are the highest.
If you want to switch Zones, make sure to clear it with your TA before submitting the milestone.

In your writeup, include:

  • Screenshots or videos of your system, to demonstrate its current level of functionality
  • A timeline for completing the project. Provide a list of TODOs — e.g., exam studying, wrapping up dev work, recruiting users, analyzing usage, writeup — and assign dates to each one.

As you launch, bear in mind the Social Computing Fundamental Standard and your responsibilities toward hosting a meaningful and enjoyable experience. Do not be a huckster. You also don't necessarily need to go viral across campus or the internet—you want to get meaningful amounts of behavior from your target group. Keep in mind that it takes time for people to find and participate. Don't wait until the night before this deadline. You are welcome to continue adapting your system as people use it and you gather feedback, and you are welcome to continue growing it through the final paper submission.

Submit on Gradescope a PDF of 500 words or less describing your milestone deliverable, as well as screenshots or videos. If you need to revise your target active user goal from the initial proposal, include that as well so that you and your grading TA can arrive at a revised agreement. Only one team member needs to submit for the group on Gradescope. Remember to tag each team member in the submission.

Grading rubric

Category Insufficiency Adequacy Proficiency Mastery
Completion
10 points
Milestone goal is not met. Milestone goal mostly met, with some incomplete elements. Milestone goal mostly met, with only minor incomplete elements. Milestone goal is met.

Final Paper

Submit a final report of up to 4,500 words. Only one team member needs to submit for the group on Gradescope. Remember to tag each team member in the submission. In addition, each team member will need to submit a final teammate evaluation form. This evaluation will factor into your overall final participation grade.

As usual, screenshots and images do not count toward the word limit. Your paper should include:

Zone 1: Technical focus Zone 2: Hybrid focus Zone 3: Social focus
Introduction A summary of who you were designing for, what you created, and what happened when people used it.
Design A description of your final social computing system. Focus on conveying the experience of the system, rather than a tour through all the features of the system. Include screenshots.
Implementation A technical description of the system you created. How does it work? A description of the no-code platform that you used to construct your system, and the code that you augmented it with to build the functionality of your system. A description of the no-code platform that you used to construct your system.
Viral usage Describe at a high level how your pilot users behaved under your system. Who you launched to and how you did it. Then, report basic data analysis on the number of users and the interactions you saw on the system. Discuss any unexpected or undesired behaviors. Who you launched to and how you did it. Then, report an in-depth data analysis on the number of users and the interactions you saw on the system. Supplement this with quotes from interviews of at least ten users, with their responses organized into high-level themes. Discuss any unexpected or undesired behaviors.
Design reflections Based on your usage, reflect on what about your design worked, what didn't, and why — what did you learn? Any final reflections on anti-social behaviors, ethical or societal issues that you'd need to address going forward?
Theory

Drawing on course concepts---major ideas and theories introduced in lecture (or readings)---explain what the need was that you were trying to address with this system. What was the gap in existing systems, and why did you believe that this design would succeed?

Then, use course concepts again, but this time to explain the behavior that you saw on your system. Would the course concepts have predicted the behaviors that you saw, and if not, what did they miss?

Conclusion

A brief closing summary.

Grading rubric

Category Insufficiency Adequacy Proficiency Mastery
Introduction
5 points
Introduction is insufficient or missing Sparse summary of intended audience, application design, and (if appropriate) what happened when people used it; or missing one of the above categories. Mostly effective summary of intended audience, application design, and (if appropriate) what happened when people used it; or weakness in one of the above categories Strong, compelling summary of the intended audience, application design, and (if appropriate) what happened when people used it.
Design rationale
5 points
System is either not designed around a convincing need, has several major errors and oversights, or lacks the full technical depth and sophistication required of the course. System is designed around a good need as experienced by the target audience; the design and implementation have several minor errors/oversights, or one major error. This represents a good, but a bit flawed, submission. System is designed around a convincing need experienced by the target audience; the design and implementation are thoughtful, with perhaps a few oversights in detail, or minor errors. This represents a strong submission. System shows substantial thoughtfulness, care, and creativity, in design and implementation. It satisfies a compelling need within the target audience, and attention to detail is paid in ensuring an outstanding user experience. This should be an exemplar project for next year.
Design explanation
5 points
Design description is insufficient, difficult to follow, or missing. Sparse walkthrough of system; walkthrough feels like a "feature list" rather than discussion of the core experience. Screenshots may be missing or unclear. Walkthrough of the system and core experience is clear, with only minor issues. Includes clear representation of the system (e.g., screenshots) Clear, compelling walkthrough of the system and core experience. Includes very clear representation of system (e.g., screenshots).
Implementation
Zone 1: 10 points
Zone 2: 6 points
Zone 3: 2 points
Technical implementation is incomplete or missing. Description may be missing elements, or the system may show limited technological sophistication/implementation. Technical description is relatively clear, but may have minor issues in clarity or sophistication of implementation. Clear description of technical implementation of system. Implementation shows technological sophistication and significant implementation.
Virality and Analysis
Zone 1: 2 points
Zone 2: 6 points
Zone 3: 10 points
Far underperforms the agreed-upon virality level, and/or insufficient evaluation of the behavior on the system. Underperforms its virality goals. Shows limited consideration in who the system was launched to, the qualitative and quantitative results (as appropriate), and the lessons learned. Unexpected behavior and analysis of existing behavior is incompletely described. Roughly hits its virality goals. Demonstrates consideration in who the system was launched to, the qualitative and quantitative results (as appropriate), and the lessons learned. Describes unexpected behaviour, if any, and reports analysis of the types of behavior seen on the system. Hits or exceeds its virality goals. Demonstrates thoughtful consideration in who the system was launched to, the qualitative and quantitative results (as appropriate), and the lessons learned. Clearly describes unexpected behaviour, if any, and reports deep analysis of the types of behavior seen on the system.
Theory: Motivation
5 points
Incomplete, missing, or poor use of course concepts. Explains the motivation behind the system and the need it was trying to solve. Discussion of a target user base, and may suggest why design might succeed. May occasionally reference some course concepts, though some concepts may be incorrectly applied. Explains with reference to course concepts the motivation behind the system and the need it was trying to solve, with minor issues in applying the correct theory. Shows relatively thoughtful identification of a target community, and discussion of why the design would succeed among this group of prospective users. Clearly explains - with sophisticated reference to course concepts - the motivation behind the system and the need it was trying to solve. Shows thoughtful identification of a target community, and discussion of why the design would succeed among this group of prospective users.
Theory: Analysis
5 points
Incomplete, missing, or poor use of course concepts. Explains at a high level why the behaviour took place as it did. Limited reference to course concepts; may uses course concepts incorrectly in context. Discussion of observed behaviour is explained with reasonable argumentation and correct reference to the course concepts. Discussion of observed behaviour is explained with convincing argumentation and strong reference to the course concepts.