Open Source Software in Practice (CS4387.01)

Michael Corey

The majority of complex computer systems are built on open source software. From webpages and blogs through to trillion dollar companies, open source software (OSS) is at the heart of these endeavors. Open source is simultaneously a license, rallying cry, political philosophy, and a practice of creation and curation. Popular examples of open source software include: the LAMP (Linux, Apache, MySQL, PHP) stack; the React, Node.js, Angular, and Vue.js web frameworks; the R programming language; and most widely used programming languages. 

The course will balance lectures and reading on the history and present of open source (25%), learning about open source best practices (25%), and contributing to open source software (50%). Lectures and readings will cover the history and present of open source, such as the development of Linux, corporate influence on open source software, the meanings of various open source licensing, the xz backdoor, and similar topics. 

The practical part of the course will include learning about open source best practices, reading code, and patching open issues in open source software. Students will spend most of the practical part of the course trying to write patches to fix known bugs and feature requests in open source software of their choosing. 

Class is one 4 hour block and students are expected to do significant programming both in-class and between courses.


Learning Outcomes:
Students can expect to:
- Write an essay on the philosophy and practice of open source
- Document a piece of open source software
- Fill one or more open issues in open source software.

Delivery Method: Fully in-person
Prerequisites: Interested students should: - Apply directly to Michael Corey ( - Students should have fluency in one programming language and familiarity with a second. - Students should also have an interest in doing collaborative programming, both pair-programming in class and working with the open source community. - Preference is given to 4th years, 3rd years and students with a demonstrated ability to collaboratively write working code.
Course Level: 4000-level
Credits: 4
M 8:30AM - 12:10PM (Full-term)
Maximum Enrollment: 12
Course Frequency: Once a year

Categories: 4000 , All courses , Computer Science , Four Credit , Fully In-Person
Tags: , , ,