This studio course introduces students to the culture and practice of open source. Through short exercises and discussions, students will learn about technical development, community, and version control for open source. Students will propose and make a modest contribution to an existing open source project or release an early version of their own tool, library, or other open source project. The ml5.js project will serve as an example and option for participation for those interested in contributing to an active open source community.
- There will be several weekly homework assignments and one final project. 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).
- We'll walk through the creation of a new "Open Source" group class project.
README.mdCONTRIBUTING.mdCODE_OF_CONDUCT.mdLICENSE.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
- Introducing Yourself to Unfamiliar Open Source Projects by Mel Chua
- Open an issue in the Open Source Studio Playground [LINK TO COME]
- Create a pull request in the Open Source Studio Playground [LINK TO COME].
- 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:
- Name: Title
- GitHub Organization
- People / Teams
- Project Management
- issues, labels
- milestones
- projects
- wiki
- Branches and Forks
- GitHub Desktop
- 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
- TBD
- A new Code of Conduct and License for ml5.js
- #ethicalCS: bring ethics, identity, and impact to Computer Science education by Saber Khan
- Open Source Guide: Building Community
- TBD
- Propose a contribution to an open source project or a start to your own open source project. Guidelines and Details TBA.
In addition to completing an open source contribution for the course and presenting it in class as a group, each student is required to write a written reflection.
- Describe your open source contribution.
- How did your idea changed from your initial proposal?
- What did you learn?
- How did you get feedback on your contribution?
- Do you plan to continue to work on this open source contribution?
- How do you feel about contributing to open source in the future?
Please read and review the ITP/IMA Community Guidelines.
Your success in this class is important to me. Everyone learns differently and requires different kinds of accommodations. If there are aspects of this course that prevent you from learning or exclude you in any way, please let me know! Together we’ll develop strategies to meet your needs and the requirements of the course.
You all enter this classroom with different sets of skills. My office hours are open to you as an extension of the classroom. If you can’t make it to the scheduled times, please let me know and I'll be very happy to accomondate alternate times. There’s no incorrect way to approach office hours, and they are, by default, informal. I hope to work closely with all of you to cultivate a space of openness and mutual support. I welcome you to contact me outside of class and office hours through email.
You will need a modern laptop (4 years old or younger is a good rule of thumb). Limited numbers are available for checkout from the department. Any required software for this course will be freely available.
There is no textbook for the class. Readings and videos will be assigned on the individual session notes pages.
Classes will be a mixture of lecture, discussion, hands-on tutorials, homework review, presentations, and group work. You will need to come to class prepared with a laptop and any other supplies specified for that class.
The course will be once per week for 2.5 hours for a total of seven weeks.
- Please read ITP's policy on pass/fail
- 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 (30%)
- Quality of assignments (50%)
- Final Project (20%)
There will be assignments that are relevant to the class material. The primary elements of the assignments is documentation (written description, photos, screenshots, screen recording, code, and video all qualify based on the assignment) of your process. Each assignment is due by class time one week after they are assigned unless stated otherwise.
It is expected that you will spend 2 to 4 hours a week on the class outside of class itself. This will include reviewing material, reading, watching video, completing assignments and so on. Please budget your time accordingly.
ITP/IMA is committed to facilitating the fullest possible participation of all students. There are many forms of participation. Please communicate what kinds of engagement are best for you so it can be taken into account.
Examples of modes of participation can look like: asking questions, going to office hours, sending and reading emails, class group discussion, arriving on time, going to class, taking notes, listening to peers, submitting responses to a form (anonymous or not), following instructions, active listening, and more.
An assignment extension may be granted upon request. If you request an extension before the due date, your grade will not be affected. However, if you do not request an extension, the grading rules above apply. Please clarify with your instructor and set a deadline together. The recommended timeline is 1 to 5 days.
Note: There may be instances where having an extension may result in not being able to participate fully in activities such as feedback sessions or workshopping ideas/projects, which likely cannot be made up if it could disrupt the overall course schedule. Extensions are distributed at the discretion of the instructor.
After the first two weeks of the add/drop period, effective in week three onward, students are permitted the following number of absences: 2 absences. There are no excused absences and unexcused absences. There are only absences. Any more than 2 absences will affect your grade, please see the makeup work policy below.
This is an option for those who have attended more than 50% of the class (if you have missed more than 50% of class sessions, it will result in an automatic F for the course). While there is no distinction in this course between excused and unexcused absences, you may inquire about makeup work. Makeup work could be reading or viewing materials, a conversation with someone in class, additional office hours, writing a paper or an additional project. Not all course content can be made up. Please clarify with your instructor and set a deadline together. The recommended timeline is 1 to 5 days.
Incomplete grades may only be given to students who have completed more than half of the class assignments. Incomplete grades are given at the discretion of the instructor.
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.
Collaboration is highly valued and often necessary to produce great work. Students build their own work on that of other people and giving credit to the creator of the work you are incorporating into your own work is an act of integrity. Plagiarism, on the other hand, is a form of fraud. Proper acknowledgment and correct citation constitute the difference.
- Link to the Tisch Student Handbook
- Link to Suggested Practices for Syllabus Accessibility Statements
(The following is adapted from Golan Levin’s Interactivity and Computation Course (Fall 2018) at Carnegie Mellon University.)
You must cite the source of any code you use. Please note the following expectations and guidelines:
-
Check the License. When using others' code, pay attention to the license under which it has been released, and be certain to fulfill the terms and requirements of those licenses. Descriptions of common licenses, and their requirements, can be found at choosealicense.com. Some licenses may require permission. If you are confused or aren’t sure how to credit code, ask the course instructor and make your best good faith effort.
-
Use Libraries. The use of general, repurposable libraries is strongly encouraged. The people who developed and contributed these components to the community worked hard, often for no pay; acknowledge them by citing their name and linking to their repository.
-
Be Careful. It sometimes happens that an artist places the entire source code for their sketch or artwork online, as a resource from which others can learn. Assignments professors give in new-media arts courses are often similar (e.g. "Clock"); you may also discover the work of a student in some other class or school, who has posted code for a project which responds to a similar assignment. You should probably avoid this code. At the very least, you should be careful about approaching such code for possible re-use. If it is necessary to do so, it is best to extract components that solve a specific technical problem, rather than those parts which operate to create a poetic experience. Your challenge, if and/or when you work with others' code, is to make it your own. It should be clear that downloading an artwork from someone's GitHub and simply changing the colors would be disgracefully lazy. And doing so without proper citation would be outright plagiarism.
You should treat AI tools just as you would any other source: cite the source and note how it was used (Harvard has a useful guide to citation of AI systems). You should be prepared to explain how your use is an appropriate tool to fit your goal or concept and does not detract from your experience meeting the learning objectives of the assignment or course. There are some cases where the use of generative AI systems may fall under a form of plagiarism. Document your process as part of your work for the class.
It’s crucial for our community to create and uphold learning environments that empower students of all abilities. We are committed to create an environment that enables open dialogue about the various temporary and long term needs of students and participants for their academic success. We encourage all students and participants to discuss with faculty and staff possible accommodations that would best support their learning. Students may also contact the Moses Center for Student Accessibility (212-998-4980) for resources and support. Link to the Moses Center for Student Accessibility.
Your health and safety are a priority at NYU. Emphasizing the importance of the wellness of each individual within our community, students are encouraged to utilize the resources and support services available to them 24 hours a day, 7 days a week via the NYU Wellness Exchange Hotline at 212-443-9999. Additional support is available over email at wellness.exchange@nyu.edu and within the NYU Wellness Exchange app. Link to the NYU Counseling and Wellness Center.
Laptops and other electronic devices are essential tools for learning and interaction in classrooms. However, they can create distractions that hinder students' ability to actively participate and engage. Please be mindful of the ways in which these devices can affect the learning environment, please refrain from doing non-class oriented activities during class.
Tisch School of the Arts is dedicated to providing its students with a learning environment that is rigorous, respectful, supportive and nurturing so that they can engage in the free exchange of ideas and commit themselves fully to the study of their discipline. To that end, Tisch is committed to enforcing University policies prohibiting all forms of sexual misconduct as well as discrimination on the basis of sex and gender. Detailed information regarding these policies and the resources that are available to students through the Title IX office can be found by using the following link: Link to the NYU Title IX Office.
Teachers and students work together to create a supportive learning environment. The educational experience in the classroom is one that is enhanced by integrating varying perspectives and learning modes brought by students.