COMS 4995 Open Source Development

Spring 2022

Course info

In this course, students will learn how to build and maintain open source projects.

Students will be responsible for both supporting an existing open source project of their choosing, as well as creating their own open source project (both in either Python or Javascript, under the direction of the instructor). In lieu of homeworks or exams, ongoing progress reports and a final presentation on these two will serve as the grading basis for the course.

The course will include an overview of general software engineering concepts, including version control, testing, modern development workflows (primarily GitFlow), and software licensing, as well as a brief history of open source software (GNU, FSF) including major court cases in copyright, patent, and trademark law (e.g. Oracle v. Google).

We will also learn about popular tools for

Beyond the basics, students will learn how these tools can be integrated together in their open source projects to better manage their development and community.

Course Overview in slides

Supplementary materials


Guest Speakers

Didier Lopes Tuesday, February 21
Andrew Stein Thursday, March 23
Travis Oliphant Tuesday, April 11
Nigel Simpson Tuesday, April 18


Due Rubric


Note that the following schedule is tentative. It will be updated as we go.

To view slides as a printable PDF, add ?print-pdf=true to the base url (e.g. 01-intro.html -> 01-intro.html?print-pdf=true)

# Date Topic Readings Assignments
1 T 1/17 Course Overview Producing Open Source Software Chapter 1 HW0