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.
- 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
- 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
- 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
- Emma Rae Norton: What does open source mean to me?
- Nicolás Escarpentier: The cat-flap of open source
- Wenhe Li: Open Source, Github and Myself
- Luna Olavarría Gallegos: What is Open Source
- Vince Shao: The Familiar Yet Distant Open Source Community
- Alice Sun: Introducing Yourself to Unfamiliar Open Source Projects
- Jiwon Shin: Open Source - What's so "open" about it?
- Chuyi Zhang: What I Missed about Open Source
- Camille Weins: My Thoughts on Open Source
- James Hosken: The Three Tenets of Open Source
- Ahmad Arshad: My open source experience
- Lin Zhang: Contempt in Developer Culture
- Guillermo Montecinos: First thoughts about Open Source
- Alfie Chen: Stepping Into an Open World
- GitHub Organization
- People / Teams
- Project Management
- issues, labels
- milestones
- projects
- wiki
- Branches and Forks
- Using the command line
- Merge conflicts!
- 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
- Blog post reflections:
- Jinzhong Yu: Why would people engage in Open Source
- Vince Shao: Balanced Ecology
- Jiwon Shin: The Moral Values of a Hammer
- James Hosken: Open Source Responsibility
- Nicolás Escarpentier: Are we humans or are we coders?
- Wenhe Li: Values of Floss
- Alice Sun: Software Within the Ecology
- Ahmad Arshad: FLOSS Everything
- Guillermo Montecinos: Open source community and its role in an apolitical era
- Luna Olavarría Gallegos: Myth of Neutrality in Tech
- Camille Weins: PRs and ‘Intellectual Property’
- Emma Rae Norton: Reflection: open source, structure, politics
- Create an open source dataset and contribute to an existing repository (like our Corpora "sandbox" or Corpora directly!) or create a new one. Data Assignment Full Instructions.
- Taeyoon Choi, Cofounder of School for Poetic Computation, Initiator of Distributed Web of Care.
- After Years of Abusive E-mails, the Creator of Linux Steps Aside by Noam Cohen, The New Yorker
- 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
- Complete the open source dataset assignment. Full Instructions
- Write a short post about the readings above and pull request a link to your post below.
- Guillermo Montecinos: Rules clear for healthy relationships and the shadow of the past
- Wenhe Li: Community needs Code of Conduct
- Vince MingPu Shao: Inclusive and healthy environment
- Alice Sun: Wisdom of Crowds
- Jiwon Shin: Let's Learn to Accept
- Lin Zhang: Responsibility of Setting Culture Norm
- Nicolás Escarpentier: Education and building foundations for building a castle
- Jinzhong: Do we need to clean the environment of Open Source Community
- emma rae norton: Reflection: EthicalCS, Open Source as structure
- Camille Weins: READMEs and Ethics
- Ahmad Arshad: Social awareness in OSS
- Luna Olavarría Gallegos: Code of Conduct
- CircleCI: Continuous Integration with GitHub
- TravisCI: Automatically running tests before commits with ghooks
- Try breaking, fixing, and/or writing a unit test. Can you run the tests locally? Via continuous integration? Unit Testing Assignment Full Instructions.
- Web Content Accessibility Guidelines (WCAG) Overview
- Working on the p5 Accessibility Project by Mathura Govindarajan and Luis Morales-Navarro
- Perform an accessibility audit of a website / open source project. Accessibility Assignment Full Instructions. Due Oct 16.
- Creative Commons Licenses
- Open Source Software Licenses
- 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
- Review the Final Projects repo and complete the assignment for Step 1
- Continue discussion on GitHub issues for Step 1. If you are thinking of working on one of the ideas you could "assign" yourself to it. If it's an idea you would like help with add the "help wanted" label. Or maybe you have another idea for how to organize and label the issues?
- Review the Project Proposal template and submit any pull requests with suggestions or file issues with questions, concerns, and feedback. Note your proposal is due Nov 6th for presentation in class (more on that to come.)
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.