17-313: Foundations of Software Engineering
Recitation 9: Open Source Projects
Overview
This recitation will give you the opportunity to familiarize yourself with various open source projects and help your team with finding a project to work on for Homework 6.
Context
Open source software refers to software where the code is openly available, allowing contributors to freely run, modify, contribute, and redistribute the code. These projects provide a great learning experience of working with large codebases to beginner programmers, and give you the opportunity to contribute to software that’s used by a large number of community members.
The general criteria for an open source project:
- Repository must be public & open to outside contributors
- Repository must have an open source license
Scavenger Hunt (30 min)
Join the slide deck made by your TA for your class and make a copy of the slide for your team. Then, search for open source projects to fill each square in the Scavenger Hunt table. Each project can only count for one square. The goal is to have as many squares filled as possible!
Squares marked with ** can only be claimed by one team in the room - you must fulfill what’s described in the square to claim it.
Reflection (10 min)
With your team, discuss the following questions:
- Which attributes make a good open source project? A bad open source project?
- Which projects did you find that you would most like to work on? Which would you least like to work on? Why?
Resources
- A list of beginner friendly projects: https://github.com/MunGell/awesome-for-beginners
- Github Showcase for new contributors: https://github.com/showcases/great-for-new-contributors
- Issues that are labeled “up-for-grabs”: https://up-for-grabs.net
- Apache projects: http://www.apache.org/
- Mozilla projects: https://developer.mozilla.org/en-US/docs/MDN/Community/Contributing
- Mozilla has a number of Open Source projects (including Firefox and Thunderbird) that are actively being developed and they recommend bugs for new contributors