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.
Date | |
---|---|
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 |