-
Notifications
You must be signed in to change notification settings - Fork 72
contribute
Wordplay is an open source project educational programming language and platform hosted at the University of Washington. The project is facilitated by professor Amy Ko.
Our vision is to make programming accessible to everyone, regardless of language, culture, class, or ability, but particularly to youth and their teachers.
We are a community-led project: power lives primarily within youth and teacher needs, meaning they primarily determine our design priorities. That doesn't mean they dictate everything: we combine their insights with our community's expertise on web development, programming language design, and technical constraints to try to co-design Wordplay into something that reflects and evolves our emerging needs. Our current approach to this is:
- Amy builds partnerships with teachers and their students around Puget Sound, fundraising to support their summer participation in the project. This sometimes involves youth advisory boards, when we have the funding to support them.
- We organize a community of local open-source contributors, mostly undergraduates around Puget Sound, to realize the vision of youth and teachers.
- Amy and any research assistants she has meet weekly to discuss challenges in the community, platform, our processes and governance, and set design priorities.
You can see all of your past meeting agendas and comment on them, as well as see our next meeting agenda, and suggest items for it.
Wordplay is always looking for help and anyone in the world, at any level of experience, is welcome to help, as long as they share our mission and follow our code of conduct. Read on to decide if you want to help.
- If you're a 🧑🎓 student...
- You can learn HTML, JavaScript, CSS, Typescript, SvelteKit, and Firebase, and other web technologies.
- You can gain practical skills in software engineering, including bug triage, Git workflows, code reviews, testing, and programming language design and implementation.
- Amy will write you a letter of recommendation about your contributions to the community.
- If you're a student at the University of Washington, you can earn elective credit through directed research group INFO 494 credit.
- If you're a 👩🏾🏫 teacher...
- Can can shape a platform to work better for your and your students.
- You can engage your students in shaping the platform as well, giving them a chance to guide the community's work and shape platforms that are responsive to their interests, needs, and goals.
- If you're a 👾 developer...
- Advance a not-for-profit, justice-centered open source project that supports teachers, students, and schools.
- Tackle challenging design and engineering challenges at the intersection of programming languages, tools, and learning.
There many ways to contribute! You can:
- 🎨 Design and redesign the language and platform
- 🖱️ Implement and refining user interfaces
- 🐞 Test and verify features, accessibility, and content
- ✍️ Localize the language and platform into the world's languages
- 📄 Create Wordplay examples, document, and other content to inspire youth and support teachers
- 💭 Moderate Discord and published Wordplay content
- 🤝 Organize and support contributors to help them succeed
- 👩🏻🏫 Serve as a maintainer
To ensure everyone who contributes understands the project goals, we ask you do a bit of homework.
Fill out the Wordplay application. 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, we'll reach out with an email that details how to engage (or with questions, if you didn't do your homework). We review these roughly once a week.
Discord is where we help each other and coordinate our work. Join it and post questions, resources, and event information in relevant channels in #chat, or more specific channels relevant to your topic.
We encourage you to create dedicated channels for issues (named [issue]-description, in the "Issues" category) to coordinate and collaborate as long as you ensure that critical insights and decisions are captured on GitHub. Archive the channel once the issue is closed.
- Join the Wordplay Discord and make sure you're on the #chat channel.
- In Discord, update your server nickname in "Edit Server Profile" to
"Your Name (GitHub-username)"(e.g., Amy's is"Amy J. Ko (amyjko)so people can find you on each platform.
Important
Don't use other platforms (e.g., some other Discord server, Slack, Teams, group chats, etc.) to communicate. Discord is where our community is; if you talk elsewhere, it fragments it. If you have ideas for how to make Discord better support your work, suggest ideas in Discord #chat.
GitHub is where we discuss issues. All new problems, design proposals, and discussions about specific topics should go there, so there's a record of decisions for everyone to review, enabling newcomers to have all the context necessary to contribute to the problem.
- If you don't have a GitHub account, create one, and make a note of your username, and include it in your Discord server profile, as noted in the Discord section above.
Important
Be responsive to GitHub comments, especially if someone tags you. Try to reply within a few weekdays, even if it's just to say that you'll reply with more detail soon. Ghosting breaks collaboration and makes other sad :(
Check out our meetups page to see when the next meetup is.
Now that you're connected, let's get you oriented.
Contributing to this project will require lots of learning. Don't be surprised if you need to pause and spend some time learning a particular aspect of a tool, programming language, or framework. We view learning as a regular part of contributing, and we hope you will, too!
Here are some of the things you might need to learn:
- Git and GitHub functionality. (Need to learn? See the GitHub tutorial).
- VS Code functionality. (Need to learn? See the VS Code tutorial.
- Details of JavaScript, HTML, and CSS syntax and semantics. (Need to learn? See the Modern JavaScript tutorial).
- TypeScript and the more general concept of static typing. (Need to learn? See the TypeScript tutorial).
- Svelte and SvelteKit concepts and tools. (Need to learn? See the Svelte tutorial).
- Firebase concepts and functionality (authentication and Firestore in particular). (Need to learn? See Firebase fundamentals).
It is entirely appropriate if most of your time is spent learning. Organize group tutorials, learn with each other.
Before you can contribute, learn the Wordplay programming language.
- Complete the Wordplay tutorial to learn the programming language and the interface. This is an essential step for any contribution, so you know what you're enhancing, fixing, localizing, etc. Alternatively, read the Wordplay guide or review the many examples in (https://wordplay.dev/galleries).
- Create an account and make a few Wordplay projects. Get used to what's possible to create with it. As you do this, report what you find confusing or wrong as issues, so we know to improve them.
It's okay if you don't feel like you've mastered the language after the tutorial. The important part is that you have a sense of the scope of content, functionality, and possibilities, so you have context for your work.
There are many ways to contribute to the project:
Browse the roles above and ask for clarifications in the appropriate channel in Discord.
Start by picking one of the roles above and carefully reading its guide to get started.
You might work solo on an issue, or you could consider joining or creating a team to work on one of the project's current priorities. The current priorities are:
- How to team (Discord #how-to-guide). There is a how to guide on the platform that contains simple example tutorials for common, reusable design patterns in Wordplay projects. This supplements the tutorial and language code, bridging the gap between core language and API features and full projects. Joining this team means becoming an expert on the Wordplay language and writing content for the how to guide to teach others.
- Accessibility team. There’s a growing list of defects to resolve to move towards full WCAG 2.1 AA compliance. Join this team to become an expert at accessibility and screen readers, and help us find and fix accessibility defects.
- Localization team. We aspire to support all of the world's languages, at reading levels appropriate for 11-15 year olds. Join this team if you have a non-English language you want to make great on the platform!
-
Mobile team. This team's goal is to make the Wordplay interaction design function well on phones and tablets. We have many issues labeled
mobile. Join the developer team and let's fix these. - Programming language team. Interested in helping develop the programming language itself? Join this developer team and work with Amy to help close out language bugs and features.
There are a few ways to gain recognition for your contributions.
If you're a University of Washington student, we can offer you credit. 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 Independent Study. If you are a CSE student and do not want to register for INFO 494, you may register for 2-4 credits. Use the 499 registration form and just refer to the Wordplay application you filled out.
If you've made contributions to the project, follow Amy's recommendation guidelines, and provide some detail about your contributions.
When there's funding available (which is often), Amy hires teachers, doctoral students, masters students, and undergraduates to support the project. See her webpage for current opportunities.
Do you find something confusing on this page? Submit a worklow issue, so we can improve it! Every contribution counts.