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
Nigel Simpson TBD


Due Rubric
Homework 0 ASAP Rubric
Homework 1 Sunday, February 5 at 11:59pm Rubric
Homework 2 Sunday, February 12 at 11:59pm Rubric
Homework 3 Sunday, February 19 at 11:59pm Rubric
Homework 4 Friday, March 3 at 11:59pm Rubric
Homework 5 Friday, March 10 at 11:59pm Rubric
Homework 6 Sunday, March 26 at 11:59pm Rubric
Homework 7 Sunday, April 2 at 11:59pm
Homework 8
Homework 9


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
2 R 1/19 History
3 T 1/24 Projects The Cathedral and the Bazaar HW1 Delayed due to registration craziness
4 R 1/26 Git (Prerecorded)
5 T 1/31 Git leftovers, getting started on HW1 HW1
  R 2/2 No Class - Cancelled
6 T 2/7 Starting Your Project HW2
7 R 2/9 Agile/Kanban
8 T 2/14 GitHub Issues and Projects HW3
9 R 2/16 Packaging - Part 1
10 T 2/21 Guest Speaker Didier Lopes
11 R 2/23 Testing, CI/CD HW4
12 T 2/28 Linting, Libraries
13 R 3/2 Packaging - Part 2, CI/CD Cont’d HW5
14 T 3/7 Release and Versioning
15 R 3/9 Release and Versioning leftovers, prepping for break HW6
  T 3/14 No Class - Spring Break
  R 3/16 No Class - Spring Break
  T 3/21 Review, Documentation
  R 3/23 Guest Speaker Andrew Stein HW7
  T 3/28 Documentation leftovers
  R 3/30 Demos / Examples
  T 4/4 OSS Problems - Part 1
  R 4/6 Community
  T 4/11 Open Source Economics - Part 1
  R 4/13 Open Source Economics - Part 2
  T 4/18 Open Source Legal - Part 1
  R 4/20 Open Source Legal - Part 2
  T 4/25
  R 4/27