Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/Open-Source-Studio-at-ITP/Syllabus
Syllabus for ITP course about Open Source
https://github.com/Open-Source-Studio-at-ITP/Syllabus
code-of-conduct education open-source
Last synced: 3 months ago
JSON representation
Syllabus for ITP course about Open Source
- Host: GitHub
- URL: https://github.com/Open-Source-Studio-at-ITP/Syllabus
- Owner: Open-Source-Studio-at-ITP
- License: mit
- Created: 2018-03-04T20:48:43.000Z (almost 7 years ago)
- Default Branch: source
- Last Pushed: 2018-11-05T21:49:10.000Z (over 6 years ago)
- Last Synced: 2024-08-05T20:28:52.097Z (6 months ago)
- Topics: code-of-conduct, education, open-source
- Language: JavaScript
- Homepage: http://itp.nyu.edu
- Size: 254 KB
- Stars: 92
- Watchers: 12
- Forks: 20
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# Open Source Studio
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.
## Expectations
* 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](https://github.com/Open-Source-Studio-at-ITP/Case-Studies) 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.## Week 1: Introduction, Sept 4
### What are the essential elements of an open source project and community?
* [Open Source Guide](https://opensource.guide/)
### 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](https://www.youtube.com/playlist?list=PLRqwX-V7Uu6ZF9C0YMKuns9sLDzK6zoiV)
### Reading
* [What Does “Open Source” Even Mean?](https://medium.com/@kenjagan/what-does-open-source-even-mean-6bd47befe696) by Jen Kagan
* [Inessential Weirdnesses in Open Source Software](https://www.harihareswara.net/sumana/2016/05/21/0) by Sumana Harihareswara
* [OSSTA-Zine](https://github.com/galaxykate/OSSTA-Zine) by Kate Compton
* [Bring Kindness by to Open Source](https://www.hanselman.com/blog/BringKindnessBackToOpenSource.aspx) by Scott Hanselman
* [Introducing Yourself to Unfamiliar Open Source Projects](http://blog.melchua.com/2013/06/19/hacker-school-introducing-yourself-to-unfamiliar-open-source-projects/) by Mel Chua
### Assignment:
* Open an issue in the [Open Source Studio Playground](https://github.com/shiffman/Open-Source-Studio-Playground).
* Create a pull request in the [Open Source Studio Playground](https://github.com/shiffman/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](https://yuuno.cc/articles/what-open-source-means-to-me)
* Emma Rae Norton: [What does open source mean to me?](https://spaghettimeatballsbecomereallyfrightening.online/oss/what-does-open-source-mean-to-me/)
* Nicolás Escarpentier: [The cat-flap of open source](http://itp.nicolaspe.com/2018/09/the-cat-flap-of-open-source/)
* Wenhe Li: [Open Source, Github and Myself](https://medium.com/@wenhe.li98/open-source-github-and-i-3b7e6fa2c73a)
* Luna Olavarría Gallegos: [What is Open Source](https://wp.nyu.edu/luna/2018/09/10/assignment-1-what-is-open-source/)
* Vince Shao: [The Familiar Yet Distant Open Source Community](https://wp.nyu.edu/vinceshao/2018/09/10/the-familiar-yet-distant-open-source-community/)
* Alice Sun: [Introducing Yourself to Unfamiliar Open Source Projects](http://www.alicehgsun.com/introducing-yourself-to-open-source)
* Jiwon Shin: [Open Source - What's so "open" about it?](https://js6450.github.io/OpenSourceStudio/weekly/1.html)
* Chuyi Zhang: [What I Missed about Open Source](https://medium.com/@romolazhang/what-i-missed-about-open-source-3379bbd0e224)
* Camille Weins: [My Thoughts on Open Source](https://medium.com/@camilleweins/my-thoughts-on-open-source-cbb53d2d5907)
* James Hosken: [The Three Tenets of Open Source](https://generallyplayful.com/itp/oss/the-three-tenets-of-open-source/)
* Ahmad Arshad: [My open source experience](https://dev1.ed-projects.nyu.edu/geotools/2018/09/11/ossp-week-1-reflections/)
* Lin Zhang: [Contempt in Developer Culture](https://linzhangcs.github.io/blog/2018/09/17/importanceofculture/)
* Guillermo Montecinos: [First thoughts about Open Source](https://github.com/guillemontecinos/itp_fall_2018_open_source_studio/blob/master/week_1/assignment.md)### Outside Collaborator Posts
* Alfie Chen: [Stepping Into an Open World](https://alfieyfc.github.io/2018/09/25/stepping_into_an_open_world/)## Week 2: More Version Control and Project Management, Sept 11
### "Open Source Studio" Triage and Discussion
* GitHub Organization
* People / Teams
* Project Management
* issues, labels
* milestones
* projects
* wiki
### More Git and GitHub
* Branches and Forks
* Using the command line
* Merge conflicts!
### Reading
* [The Art of Humanizing Pull Requests](https://dev.to/kulkarniankita9/the-art-of-humanizing-pull-requests-prs-2238) by Ankita Kulkarni
* [Worms, Butterflies and Dandelions. Open source tools for the arts](https://medium.com/@tchoi8/worms-butterflies-and-dandelions-open-source-tools-for-the-arts-9b4dcd76a1f2) by Taeyoon Choi
* [Processing and FLOSS](https://medium.com/processing-foundation/processing-and-floss-d35aa4607f4c) by Casey Reas
* [THE TYRANNY of STRUCTURELESSNESS](https://www.jofreeman.com/joreen/tyranny.htm) by Jo Freeman aka Joreen
* [Silicon Valley Thinks Politics Doesn’t Exist](https://032c.com/fred-turner-silicon-valley-thinks-politics-doesnt-exist) by Fred Turner
* Blog post reflections:
* Jinzhong Yu: [Why would people engage in Open Source](https://yuuno.cc/articles/why-would-people-engage-in-os)
* Vince Shao: [Balanced Ecology](http://wp.nyu.edu/vinceshao/2018/09/17/balanced-ecology/)
* Jiwon Shin: [The Moral Values of a Hammer](https://js6450.github.io/OpenSourceStudio/weekly/2.html)
* James Hosken: [Open Source Responsibility](https://generallyplayful.com/itp/oss/open-source-responsibility/)
* Nicolás Escarpentier: [Are we humans or are we coders?](http://itp.nicolaspe.com/2018/09/are-we-humans-or-are-we-coders/)
* Wenhe Li: [Values of Floss](https://medium.com/@wenhe.li98/values-of-floss-6667ef356496)
* Alice Sun: [Software Within the Ecology](http://www.alicehgsun.com/software-within-the-ecology)
* Ahmad Arshad: [FLOSS Everything](https://dev1.ed-projects.nyu.edu/geotools/2018/09/18/ossp-week-2-reflections/)
* Guillermo Montecinos: [Open source community and its role in an apolitical era](https://github.com/guillemontecinos/itp_fall_2018_open_source_studio/blob/master/week_2/assignment.md)
* Luna Olavarría Gallegos: [Myth of Neutrality in Tech](https://wp.nyu.edu/luna/2018/09/16/myth-of-neutrality-in-tech/)
* Camille Weins: [PRs and ‘Intellectual Property’](https://medium.com/@camilleweins/prs-and-intellectual-property-2fc455edaf61)
* Emma Rae Norton: [Reflection: open source, structure, politics](https://spaghettimeatballsbecomereallyfrightening.online/oss/reading-reflection-open-source-structure-politics/)### Assignment (Due Sept 25)
* Create an open source dataset and contribute to an existing repository (like our [Corpora "sandbox"](https://github.com/Open-Source-Studio-at-ITP/corpora) or [Corpora](https://github.com/dariusk/corpora) directly!) or create a new one. [Data Assignment Full Instructions](data-assignment.md).## Week 3: Code of Conduct / Community, Sept 18
### Guest Speaker
* [Taeyoon Choi](http://taeyoonchoi.com/), Cofounder of [School for Poetic Computation](http://sfpc.io/), Initiator of [Distributed Web of Care](http://distributedweb.care/).
### Example Code of Conduct
* [Code Newbies](https://www.codenewbie.org/blogs/our-code-of-conduct)
* [p5.js Code of Conduct](https://github.com/processing/p5.js/blob/master/CODE_OF_CONDUCT.md)
* [Progressive Hack Night](http://www.progressivehacknight.org/culture/2017/07/01/code-of-conduct.html)
### Reading
* [After Years of Abusive E-mails, the Creator of Linux Steps Aside](https://www.newyorker.com/science/elements/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](https://medium.com/mozilla-open-innovation/how-were-making-code-of-conduct-enforcement-real-and-scaling-it-3e382cf94415) by Emma Irwin
* [A Time for Action — Innovating for Diversity & Inclusion in Open Source Communities](https://medium.com/mozilla-open-innovation/a-time-for-action-innovating-for-diversity-inclusion-in-open-source-communities-6922fef4675e) by Emma Irwin
* [#ethicalCS: bring ethics, identity, and impact to Computer Science education](https://medium.com/@ed_saber/ethicalcs-bring-ethics-identity-and-impact-to-computer-science-education-eae5a9d4682) by Saber Khan
* [Open Source Guide: Building Community](https://opensource.guide/building-community/)
#### Assignment
* Complete the open source dataset assignment. [Full Instructions](data-assignment.md)
* 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](https://github.com/guillemontecinos/itp_fall_2018_open_source_studio/blob/master/week_3/assignment.md)
* Wenhe Li: [Community needs Code of Conduct](https://medium.com/@wenhe.li98/community-needs-code-of-conduct-e5f9552a1774)
* Vince MingPu Shao: [Inclusive and healthy environment](https://wp.nyu.edu/vinceshao/2018/09/24/oss-inclusive-healthy-working-environment/)
* Alice Sun: [Wisdom of Crowds](http://www.alicehgsun.com/wisdom-of-crowds)
* Jiwon Shin: [Let's Learn to Accept](https://js6450.github.io/OpenSourceStudio/weekly/3.html)
* Lin Zhang: [Responsibility of Setting Culture Norm](https://linzhangcs.github.io/blog/2018/09/24/powerandsettingexpectations/)
* Nicolás Escarpentier: [Education and building foundations for building a castle](http://itp.nicolaspe.com/2018/09/education-and-building-foundations-for-building-a-castle/)
* Jinzhong: [Do we need to clean the environment of Open Source Community](https://yuuno.cc/articles/do-we-need-to-clean-oss-env)
* emma rae norton: [Reflection: EthicalCS, Open Source as structure](https://spaghettimeatballsbecomereallyfrightening.online/oss/reflection-ethicalcs-open-source-as-structure/)
* Camille Weins: [READMEs and Ethics](https://medium.com/@camilleweins/readmes-and-ethics-cbae8e77ffcd)
* Ahmad Arshad: [Social awareness in OSS](https://dev1.ed-projects.nyu.edu/geotools/2018/09/25/ossp-week-3-reflections/)
* Luna Olavarría Gallegos: [Code of Conduct](https://wp.nyu.edu/luna/2018/09/22/code-of-conduct-reading-response/)## Week 4: Unit Testing and Continuous Integration, Sept 25
### Guest
* [dev.to](https://dev.to/)
### Unit Testing with Jest
* [Introduction to Unit Testing and Continuous Integration](https://youtu.be/CB7vnoXI0pE?list=PLRqwX-V7Uu6bLqwFa52YGEHy-L1-D_Ve-)
* [Unit Testing with Jest](https://youtu.be/S3QwafQEvSs?list=PLRqwX-V7Uu6bLqwFa52YGEHy-L1-D_Ve-)
### Unit Testing with Mocha and Chai
* [Setting up Unit Testing with Mocha and Chai](https://egghead.io/lessons/javascript-setting-up-unit-testing-with-mocha-and-chai)
* [Unit Testing with Mocha and Chai](https://egghead.io/lessons/javascript-unit-testing-with-mocha-and-chai)
### Continuous Integration
* CircleCI: [Continuous Integration with GitHub](https://youtu.be/0OjEx2UzLUI?list=PLRqwX-V7Uu6bLqwFa52YGEHy-L1-D_Ve-)
* TravisCI: [Automatically running tests before commits with ghooks](https://egghead.io/lessons/javascript-how-to-write-a-javascript-library-automatically-running-tests-before-commits-with-ghooks)
### Assignment (Due Oct 2)
* Try breaking, fixing, and/or writing a unit test. Can you run the tests locally? Via continuous integration? [Unit Testing Assignment Full Instructions](testing-ci-assignment.md).## Week 5: Documentation and Accessibility, Oct 2
### Guest Speaker
* [Claire Kearney-Volpe](http://www.takinglifeseriously.com/about.html)
* [Intro to Digital Accessibility](https://docs.google.com/presentation/d/1Gjn16bgjeWCnKNmCwW-0cxUpbQXR0TPfjDSTN7TFcRA/edit#slide=id.g421c16c3f6_5_365) slides.
* [Teach Access](https://teachaccess.github.io/tutorial/#/0)
### Accessibility Reading
* [Web Content Accessibility Guidelines (WCAG) Overview](https://www.w3.org/WAI/standards-guidelines/wcag/)
* [Working on the p5 Accessibility Project](https://medium.com/processing-foundation/working-on-the-p5-accessibility-project-58a781575400) by Mathura Govindarajan and Luis Morales-Navarro
### Assignment
* Perform an accessibility audit of a website / open source project. [Accessibility Assignment Full Instructions](accessibility-assignment.md). Due Oct 16.## No class Oct 9!
## Week 6: Licensing and Funding, Oct 16
### Guest Speaker
* [Dan Phiffer](https://phiffer.org/)
### Licenses
* Creative Commons Licenses
* Open Source Software Licenses
* [Choose a License](https://choosealicense.com/)
* [Aaron Swartz's License Haikus](http://www.aaronsw.com/weblog/000360)
* [Part 1 of What Does Open Source Even Mean](https://medium.com/@kenjagan/part-i-what-does-open-source-even-mean-4e2829dfd557) by Jen Kagan
* [Facebook Contributor License Agreement](https://code.facebook.com/cla/individual)
### Funding
* [What’s Your Open Source Strategy? Here Are 10 Answers…](https://blog.mozilla.org/blog/2018/05/15/whats-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](https://youtu.be/HokXBjDS_UA) from Nadia Eghbal, [slides of talk](https://www.slideshare.net/NadiaEghbal/funding-open-source-the-hard-way)
### Reading
* [Getting into Summer of Code Programs](http://exploreshaifali.github.io/2015/06/08/getting-into-summer-of-code-programs/) by Shaifali
* [How to write a GSoC Proposal](http://teom.org/blog/kde/how-to-write-a-kick-ass-proposal-for-google-summer-of-code/)
### Assignment
* Review the [Final Projects repo](https://github.com/Open-Source-Studio-at-ITP/Final-Projects) and complete the [assignment for Step 1](https://github.com/Open-Source-Studio-at-ITP/Final-Projects#assignment---due-oct-23)## Week 7: Project Idea Workshop, Oct 23
### Guest Speaker
* [Cassie Tarakajian](https://cassietarakajian.com/)
### Open Source Contributor Programs
* [Outreachy](https://www.outreachy.org/apply/)
* [Rails Girls Summer of Code](https://railsgirlssummerofcode.org/)
* [Google Summer of Code](https://summerofcode.withgoogle.com/)
### Assignment
* Continue discussion on GitHub issues [for Step 1](https://github.com/Open-Source-Studio-at-ITP/Final-Projects#assignment---due-oct-23). 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](https://github.com/Open-Source-Studio-at-ITP/Final-Projects/blob/source/proposal-template.md) 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.)## Week 8: Project Idea Workshop, Oct 30
### Guest Speaker
* [Jen Kagan](https://www.jennnkagan.com/)## Week 9: Project Proposals, Nov 6
## Week 10: Project Development Studio, Nov 13
## Week 11: Project Development Studio, Nov 20
## Week 12: Project Development Studio, Nov 27
## Week 13: Project Development Studio, Dec 4
## Week 14: Final Presentations, Dec 11
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?# Policies
## Evaluation
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](http://help.itp.nyu.edu/academic-policies/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.
## Statement of Academic Integrity
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.
## Statement of Principle
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
## Statement on Accessibility
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.
## Statement on Counseling and Wellness
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.
## Statement on use of Electronic Devices
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.