Open Source Studio is a class about maintaining an inclusive, healthy open source project. The first half of the semester will cover a variety of aspects related to community, project management, and technical material for open source projects. Students will complete weekly exercises around contributing to open source. The second half of the semester will transition to a "studio" style course. Students will work together and propose a contribution to an open source project or develop their own project. We'll use a broad definition for "open source" project with an emphasis on documentation and collaboration. Guest speakers will visit the class in person or via video to talk about their experience maintaining an open source project.
- There will be a weekly homework assignment weeks 1 to 6. For each assignment:
- Complete a short technical exercise.
- Complete the readings.
- Write a reflection on the exercise and readings in the form of a blog post (or equivalent).
- In addition to the weekly assignments, all students will be required (in small groups) to present a "case study" evaluation of an open source project.
- Weeks 7-8, you will be expected to create a project proposal in the form of a blog post (or equivalent). This should include:
- Summary of project idea.
- Bios of contributors.
- Proposed timeline.
- Proposed mentors or advisors (more to come about this).
- Weeks 9-13 will focus on developing the project.
- Week 14 you will be expected to present your final project and complete a written reflection. See below for more details.
- What are the essential elements of an open source project and community?
- Git and GitHub basics
- We'll walk through the creation of a new "Open Source" group class project.
README.md
CONTRIBUTING.md
CODE_OF_CONDUCT.md
- Git and GitHub video tutorial playlist
- Reading
- What Does “Open Source” Even Mean? by Jen Kagan
- Inessential Weirdnesses in Open Source Software by Sumana Harihareswara
- OSSTA-Zine by Kate Compton
- Bring Kindness by to Open Source by Scott Hanselman
- Introducing Yourself to Unfamiliar Open Source Projects by Mel Chua
- Assignment:
- Open an issue in the Open Source Studio Playground.
- Create a pull request in the Open Source Studio Playground.
- Comment on at least one other issue / pull request.
- Write some reflections on what open source means to you. Have you participated in an open source project before? What was your experience like? If not, why not? Respond to any of the readings above. You can write this as a blog post or medium post (be mindful of including image captions for accessibility). Pull request a link to your post below:
- Jinzhong Yu: What Open Soure Means to Me
- Name: [title of post](url to post)
- Branches and Forks
- Using the command line
- Merge conflicts!
- Github Project Management
- issues, labels
- milestones
- projects
- wiki
- Reading
- The Art of Humanizing Pull Requests by Ankita Kulkarni
- Worms, Butterflies and Dandelions. Open source tools for the arts by Taeyoon Choi
- Processing and FLOSS by Casey Reas
- THE TYRANNY of STRUCTURELESSNESS by Jo Freeman aka Joreen
- Silicon Valley Thinks Politics Doesn’t Exist by Fred Turner
- Assignment
- Create an open source dataset and contribute to an existing repository (like Corpora) or create a new one.
- Guest Speaker: Taeyoon Choi, Cofounder of School for Poetic Computation, Initiator of Distributed Web of Care.
- Example Code of Conduct
- Reading
- How We’re Making Code of Conduct Enforcement Real — and Scaling it by Emma Irwin
- A Time for Action — Innovating for Diversity & Inclusion in Open Source Communities by Emma Irwin
- #ethicalCS: bring ethics, identity, and impact to Computer Science education by Saber Khan
- Open Source Guide: Building Community
- Assignment
- Contribute to our class Code of Conduct.
- Guest: dev.to
- Unit Testing basics
- CircleCI and Travis
- Assignment:
- Add a unit test to our class project.
- If you are feeling ambitious, set up your own repo with continuous integration.
- Guest Speaker: Claire Kearney-Volpe
- Web Content Accessibility Guidelines (WCAG) Overview
- Working on the p5 Accessibility Project by Mathura Govindarajan and Luis Morales-Navarro
CONTRIBUTING.MD
- Issue templates
- Assignment
- Contribute documentation to our class project. Test for accessibility.
- Guest Speaker: Dan Phiffer
- Creative Commons Licenses
- Open Source Software Licenses
- Funding
- What’s Your Open Source Strategy? Here Are 10 Answers… a research report from Mozilla and Open Tech by Patrick Finch
- Funding Open Source the Hard Way from Nadia Eghbal, slides of talk
- Outreachy
- Rails Girls Summer of Code
- Google Summer of Code
- Reading
- A workshop to brainstorm and develop ideas for projects
- Students propose "final projects", ideally collaborations of 2-3 students, a new open source project or contribution to existing open source project?
- In addition to completing a final project for the course and presenting it in class as a group, each student is required to write a written reflection.
- Summarize the open source project in a few sentences.
- Summarize your contribution to the project.
- How has your idea changed from your initial project proposal?
- To what extent did you stick to your original timeline, how did it change?
- What did you learn?
- How did you get feedback as you worked on your project?
- Do you plan to continue to work on this open source project?
- How do you feel about contributing to open source in the future?
You are required to attend all class meetings and submit all weekly assignments and a final project.
Grading (pass/fail) will be based on a combination of factors:
- Attendance, participation in class discussion, and engagement in other students' projects (40%)
- Assignments (40%)
- Final Project (20%)
Please see ITP's statement on Pass/Fail which states that a "Pass" is equivalent to an "A" or a "B" while anything less would be considered a "Fail".
Attendance is mandatory. Please inform your teacher via email if you are going to miss a class. Two unexcused absences is cause for failing the class. (An unexcused lateness of 10 minutes or more is equivalent to 1/2 an absence.)
This class will be participatory, you are expected to participate in discussions and give feedback to other students both in class and participate with their projects. This (along with attendance) is 40% of your grade.
Class will culminate with final projects. You are expected to push your abilities to produce something that utilizes what you have learned in the class that is useful in some manner to yourself or the world. This will comprise 20% of your grade.
Plagiarism is presenting someone else’s work as though it were your own. More specifically, plagiarism is to present as your own: A sequence of words quoted without quotation marks from another writer or a paraphrased passage from another writer’s work or facts, ideas or images composed by someone else.
The core of the educational experience at the Tisch School of the Arts is the creation of original academic and artistic work by students for the critical review of faculty members. It is therefore of the utmost importance that students at all times provide their instructors with an accurate sense of their current abilities and knowledge in order to receive appropriate constructive criticism and advice. Any attempt to evade that essential, transparent transaction between instructor and student through plagiarism or cheating is educationally self-defeating and a grave violation of Tisch School of the Arts community standards. For all the details on plagiarism, please refer to page 10 of the Tisch School of the Arts, Policies and Procedures Handbook, which can be found online at: http://students.tisch.nyu.edu/page/home.html
Please feel free to make suggestions to your instructor about ways in which this class could become more accessible to you. Academic accommodations are available for students with documented disabilities. Please contact the Moses Center for Students with Disabilities at 212 998-4980 for further information.
Your health and safety are a priority at NYU. If you experience any health or mental health issues during this course, we encourage you to utilize the support services of the 24/7 NYU Wellness Exchange 212-443-9999. Also, all students who may require an academic accommodation due to a qualified disability, physical or mental, please register with the Moses Center 212-998-4980. Please let your instructor know if you need help connecting to these resources.
Laptops will be an essential part of the course and may be used in class during workshops and for taking notes in lecture. Laptops must be closed during class discussions and student presentations. Phone use in class is strictly prohibited unless directly related to a presentation of your own work or if you are asked to do so as part of the curriculum.