CPSC 91R Special Topics
Fall 2024
Free and open source software (FOSS) has evolved into an important model of development in the software industry. This course exposes students to the cultural, technical, and legal aspects of FOSS development and provides students with an opportunity to work on a real-world open source software project and gain experience in software maintenance and enhancing software quality.
The course also covers topics such as: the need for and benefits of free and open source software; open source licensing and business models; intellectual property; case studies of successful open source software projects; humanitarian free and open source software; and diversity, equity, inclusion, and accessibility issues in open source software development.
Prerequisite: Students are expected to have completed CPSC 35 Data Structures and Algorithms.
The Course Syllabus is now available. Registered students can also access more information in Moodle.
Class meetings are scheduled to be held Tuesdays and Thursdays from 9:55 to 11:10am in Sci 183.
Rather than consisting of lectures, class meetings will involve discussions and activities related to assigned readings and background material; it is expected that all students will come to class prepared to participate in class.
Most class meetings will be led by groups of 4-5 students, who will facilitate the discussion/activity and assess their classmates’ participation.
Topics are likely to include the following:
FOSS Background
Contributing to FOSS
Business and Legal Issues
Technical Issues
Ethical Issues
Reflecting on 25 years of FOSS
We may also have guest speakers from FOSS communities.
In addition to the class meetings, this course has a lab component. Students must register for one of the two lab sections (Thurs 1:05-2:35pm, or Thurs 2:45-4:15pm), and attendance is expected.
The format of the lab may vary from week to week, but will typically include things like:
Students’ grades in the course will be based on the following (weightings to be determined later):
For “contributions to internal FOSS projects,” we will set up a small number of projects with existing code (Python, C++, Java, JavaScript, etc.) and lists of possible features and issues that need to be resolved. Students will be expected to apply what they have learned in labs so that they can work with other members of the course community to make contributions to some or all of these projects.
For “contributions to external FOSS project,” students will be asked to find a real-world FOSS project that interests them, engage with the community to identify a contribution that they can make, and then work with the community to complete their task. In past offerings of a similar course at another institution, students have contributed to projects such as CesiumJS, OpenMRS, and Sahana.
For the “final course project,” students will have an opportunity to investigate a topic in more detail (either alone or with another student), and to deliver either a paper, video, in-class presentation about their topic.
There will be no quizzes or exams in this course.
For more information, please contact Prof. Chris Murphy: cmurphy@cs.swarthmore.edu