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

News

Guest Speakers

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

Homework

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 | Tuesday, April 4 at 11:59pm | Rubric | | Homework 8 | Thursday, May 4 at 11:59pm | | | Final Report Due (Graduating) | Wednesday, May 10 at 11:59pm | | | Final Report Due | Friday, May 12 at 11:59pm | |

–>

Schedule

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
16 T 3/21 Review, Documentation
17 R 3/23 Guest Speaker Andrew Stein HW7
18 T 3/28 Demos / Examples
  R 3/30 No Class - Cancelled
20 T 4/4 OSS Problems
21 R 4/6 Community
22 T 4/11 OSS Problems
23 R 4/13 Guest Speaker Travis Oliphant
24 T 4/18 Guest Speaker Nigel Simpson HW8
25 R 4/20 Open Source Economics
26 T 4/25 Open Source Legal
28 R 4/27 Open Source Legal leftovers Final –>