Are you a University of Washington undergraduate interested in making programming languages more playful, global, and accessible?

I'm recruiting volunteers to join our Wordplaypen, an open source community that helps design, build, and maintain ๐Ÿ’ฌ๏ธ Wordplay. Wordplay is a playful programming platform for creating accessible, interactive typography that celebrates the world's languages. Our vision is to create a global platform for creative expression with language that celebrates every indivdual's culture, identity, and values, while also enabling youth to learn about the power and limits of computing.

I'm excited to work with anyone excited about that vision โ€” especially students โ€” and who has:

  • A passion for equity and justice.
  • (Optionally) lived experience with disability and/or fluency in non-English languages. This is because a major goal of Wordplay is accessibility and global inclusion, and we can't meaningfully achieve that without your knowledge and lived experience.
  • Basic knowledge of Git, GitHub, programming, or design (e.g. from INFO 201, CSE 154, INFO 340, INFO 360, or other experience). And I do mean basic โ€” it's okay if you're still just learning. This is an opportunity to strengthen your skills with others.

You don't need to know how programming languages are built, but you'll probably learn about it by contributing.

Here are some things you might contribute:

  • Designing and redesigning the language and platform
  • Implementing new user interface features
  • Improving correctness and reliability of current features
  • Localizing to one or more of the world's languages
  • Writing automated tests
  • Creating Wordplay examples
  • Verifying accessibility
  • Moderating an online community
  • Teaching peers, including programming, testing, software engineering, and design skills

Why should I contribute? ๐Ÿ”—

Many reasons!

  • Learn TypeScript, SvelteKit, and/or Firebase, and strengthen your knowledge in HTML, CSS, and JavaScript.
  • Gain practical skills in software engineering, including bug triage, Git workflows, code reviews, verification, and programming languages. (INFO 442 is a great place to do that too, but unlike that course, this will be 100% hands-on.)
  • Contribute to a programming platform that centers equity and inclusion, and research on how to achieve that.
  • Be credited on the Wordplay website and repository as a contributor, which can be helpful for resume building.
  • Get a letter of recommendation from me about your contributions to the community. Because of the number of students contributing, I'll need you're help writing these, so I'm not overwhelmed by letter requests. See the guidelines in my FAQ and additionally send me one paragraph describing in detail what you contributed to the project and how you view it's level of quality.

How do I join the community? ๐Ÿ”—

Anyone that completes the steps below โ€” not only UW students โ€” is welcome to contribute.

  1. Check your calendar. First, ensure you are available to attend meetups at the day, time, and location listed below. Attendance is not mandatory to volunteer, but highly encouraged, as our meetups are vibrant places to learn and collaborate. If you register for credit, attendance is mandatory unless ill.
  2. Apply. Next, fill out the Wordplaypen application. It is extensive, requiring reading, writing, and reflection, and some careful planning about your time and commitments. We recommend skimming the application first, seeing what's required, and making sure you actually want to commit to volunteering. The effort this application requires is intentional: we want volunteers who are invested in the vision and the project's success, and will be reliable, sustained contributors for at least 3 months, if not much longer. After you fill out the application, expect us to reach out either with a welcome email, or questions about your application.
  3. Join Discord. While you wait for a reply, join the Discord server, where contributors and creators connect. It's okay to join before your application is approved; it's an open server.
  4. Optionally register for credit during Autumn, Winter, or Spring quarter. If you are a UW student and you want credit for participation during the academic year (not summer), complete the steps above first, and then choose one of the these ways to register before the next quarter begins:
    • INFO 494 Research Studio Justice-Centered Programming Languages. Receive 2 credits of elective credit as compensation for 6 hours/week of volunteer effort. Includes some minor additional work for credit.
    • CSE 499. If you are a CSE student and do not want to register for INFO 494, you may register for 2-4 credits of CSE 499 instead. In your proposal, you may simply refer to the application you filled out.

When do we meet? ๐Ÿ”—

This changes quarterly:

  • Spring 2024 meets in BLD 070 Wednesdays 5:30-6:30 pm, starting March 27th
  • Summer 2024 meets in MGH 015 Tuesday + Thursday 4:00-5:30 pm, starting June 17th and ending August 28th.
  • Autumn 2024 meets in DEN 303 Wednesdays 5:30-6:50pm.

We currently gather once a week, using the collocated time to build community, make friendships, and help each other. In person gathering is important, because it allows for trust building and learning that's not possible online. If we're doing it right, you should look forward to gathering and when you leave, you should have a sense of being supported, having community, and knowing more than you did before! As noted above, we expect you at every meeting unless you are ill or have a conflict.

What happens at the meetups? ๐Ÿ”—

At our first meeting:

  • Amy will share the vision of the project (see slides for a preview)
  • For those who signed up for credit, we'll discuss the assessments, so you know how to earn credit.
  • We'll network briefly, to help you meet each other and make friends. You'll share your name, optional pronouns, affiliation, and why you joined the community.
  • We'll identify returning contributors, who will act as mentors to help you orient in the community, and assign mentors to newcomers.

At all other meetings:

  • Amy will give brief updates to the whole group (and also post these in Discord #weekly-highlights)
  • Everyone will post a 1-sentence update in Discord #weekly-highlights, so we can celebrate accomplishments and identify needs. Updates should include things like: 1) something you accomplished that you're proud of, 2) help that you need, 3) progress that you made
  • Contributors will huddle by role (and if they don't have a role, huddle with other contributors without a role).
  • After the role huddle, mentors will huddle with the faciliators, surfacing needs
  • After huddles, people will work in small groups, collaborating, helping, asking questions, and making progress.

In the last meeting of the quarter (the week before finals week), we will:

  • Have snacks of your choice!
  • Share something they're proud of this quarter
  • Clean up any remaining work: 1) commit and push uncommited code, 2) comment on issues to document where you left the work, and 3) unassign yourself from issues you will not finish

We will not meet during finals week.

How will I be graded? ๐Ÿ”—

Wordplay is first and foremost a community, not a class, and so grades and credit are a very low priority. More important is that you meet the communities norms and expectations, which are detailed on the contributor page.

Note: If you're reading this prior to the quarter you're joining, note that we may change assessments before each quarter, in order to improve the experience. Consider the current asssessments an example of how you might be evaluated. The official assessments for each quarter are announced at the beginning of each quarter.

That said, if you have registered for credit, here is how we will determine whether you get credit:

  • Before week 3 of the quarter, you'll submit a contract proposal to Canvas. The contract should include:
    • The role(s) you would like to take on (as defined in the contributor docs). You can have multiple roles!
    • Your GitHub username (so we can give you relevant contributor permissions)
    • A set of one or more goals you want to make by the end of the quarter, including things like:
      • technologies you want to learn,
      • specific issues you want to complete and get merged into production (including new issues you've submitted for work you want to contribute),
      • anything else you do to help the community, within a role, or outside of pre-defined roles
    • For each goal, the evidence you will provide of the accomplishment by the end of the quarter. Evidence includes things like closed issues, approved design proposals, Wordplay examples you created, feedback you received on your mentorship, explanations of concepts you learned, examples of things you created with skills you learned. I will not rigorously evaluate you on these โ€” I trust you to be honest โ€” but planning the evidence you gather will help focus your work.
      • For any issue associated with a goal, post a comment on issue itself describing the status of the issue, any work you completed on it, and whether you'll be continuing work on the issue past the end of the quarter. If you are not continuing work, make sure you've included all work materials in the issue so that others can resume where you left off, and unassign yourself from the issue, so others know they are free to work on it.
    • The number of credits you registered for, and why you think the goals are possible in that amount of time committed.
    • Amy will iterate with you on these in Canvas until it seems like a reasonable scope, and once approved, will give you contributor privileges. Submit as early in the quarter as you like; no need to wait until the third week.
  • Before the last meetup of the quarter (the week before finals week), a document submitted to Canvas providing:
    • An updated version of the contract that including any evidence of your accomplishments. If there were accomplishments you did not complete, why, and what remains to accomplish them.
    • A ~500 word reflection detailing what worked well about this quarter's workflow and what should be improved.

Both of these are graded satisfactory/unsatisfactory. The only way to get an unsatisfactory on either is to 1) not submit it on time or 2) not include a required element. For those registering for credit/no credit, you'll receive credit if both elements are satisfactory. For those registering for graded credit, getting satisfactory on one is a 2.0 and on both is a 4.0.

How do I get started? ๐Ÿ”—

Once you've been invited into the community, everything you need to start is on Wordplay the contribute page, which is the same onboarding for any contributor. You can read that at any time.

I have more questions! ๐Ÿ”—

Everything else should be answered on the contribute page. If you don't find your answer, fid me on Wordplay's Discord and DM me (do not write me an email). I know it's scary to write professors! But I'm friendly, I promise :) Include your name and student status at UW (or set up your Discord server profile with this information), so I have context for who you are.


CC0 To the extent possible under law, Amy J. Ko has waived all copyright and related or neighboring rights to the design and implementation of Amy's faculty site. This work is published from the United States. See this site's GitHub repository to view source and provide feedback.