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 |
---|
<!– | 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 | |
–>
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 | |
|
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 | –> |