CS410/510 Open Source Development

Instructor information

Instructor:W. Michael Petullo
Office location:210 Wing Technology Center
Physical office hours:2:15 p.m–3:15 every weekday
Telephone:(608) 785-6817

Catalog description

This course examines all aspects of the Free and Open Source Software movement. The course surveys the various definitions of open-source licenses and examples of major free and open-source development projects (e.g., the GNU Project, Apache Foundation, and Linux). The course also examines the development tools that support developer communities, as well as how Internet-based applications have created the possibility of international development teams. Students will select and contribute to the software development of an existing open-source project.


CS340; junior standing

Time and location

Tuesday and Thursday at 9:25–10:50 a.m. in Centennial 2211

Student learning objectives

  • Discuss the historical precedents for open development practices (e.g., BSD Unix, Internet Engineering Task Force)

  • Discuss the legal concepts of copyright and patent

  • Discuss the key characteristics of free and open-source licenses

  • Discuss the history and practice of software patents and their impact on free and open-source development

  • Discuss the common organizational forms of free and open-source development projects

  • Demonstrate a working knowledge of project-hosting sites

  • Demonstrate a working knowledge of common source code management tools used in free and open-source development

  • Demonstrate a working knowledge of common development tools used in free and open-source development


We will be reading a collection of essays. Links to these essays are available among the course resources.

Classroom standards

Please be prepared to take notes using a pen and paper, or use discipline while taking digital notes. Do not use the Internet for personal reasons during class.

Perform your assigned reading and other preparation before arriving for class. I will expect you to participate in class discussions, and I might call on you to contribute.

You are reminded of Board of Regents' Student Academic Disciplinary Procedures concerning academic integrity. Cheating undermines the integrity of this university and shows disrespect towards the work of your classmates. Starting coursework early will help you to avoid the temptation of cheating. Plagiarism or cheating in any form may result in a failing grade, and might also warrant harsher disciplinary action. “Students are responsible for the honest completion and representation of their work, for the appropriate citation of sources, and for respect of others' academic endeavors.”

On perseverance and the scientific method

You will inevitably encounter problems while trying to complete your coursework. Sometimes you will be led astray by the confusing interfaces that our software applications present, and other times you will simply make an error. When something goes wrong, try to fix the problem! Make small, incremental changes, and observe their effects. Most importantly, think about how systems work, and then consider why the error you are observing might have arisen. Occasionally, you should stop what you are doing and start from scratch. Learning how to better troubleshoot should be a beneficial side effect of this course.

Graded events

Homework will be submitted through Aquinas, a grading system that provides immediate feedback. Refer to the course schedule for the sequence of homework assignments, exams, and the final exam. Your running grade will be available through Aquinas.

EventPortion of grade
Homework33% (3% per hw)
Exams37% (18½% per exam)
Open-source contributionProject selection (pick): 5%
Bug selection, analysis, and plan (plan): 10%
Project completion (fix): 10%25%
Instructor points5%

Grade scale

Grades are assigned based on the following scale.


Late policy

Assignments are due the moment class starts. Late assignments will lose points according to the table below.

Up to 24 hours late15% reduction
24–48 hours late30% reduction
More than 48 hours lateNo credit

If some external circumstance might cause you to be late, then you must notify your instructor in writing and before the assignment deadline in order to be considered for an exception. The act of notification does not automatically grant you an exception.

COVID-19 health statement

Students with COVID-19 symptoms or reason to believe they were in contact with COVID-19 should consult with a health professional, such as the Student Health Center. Students who are ill or engaging in self-quarantine at the direction of a health professional must not attend class. Students in this situation will not be required to provide formal documentation and will not be penalized for absences. However, students should: 

  • notify the instructor in advance of the absence, and provide him with an estimate of how long the absence might last;
  • keep up with classwork, if able;
  • submit assignments electronically;
  • work with the instructor to either reschedule or remotely complete exams, labs, and other academic activities; and
  • consistently communicate their status to the instructor during the absence. 

Instructors have an obligation to provide reasonable accommodation for completing course requirements to students adversely effected by COVID-19. This policy relies on honor, honesty, and mutual respect between instructors and students. Students are expected to report the reason for absence truthfully and instructors are expected to trust the word of their students. University codes of conduct and rules for academic integrity apply to COVID-19 situations. Students may be advised by their instructor or academic advisor to consider a medical withdrawal depending on the course as well as the timing and severity of the illness. Students should work with the Office of Student Life if pursuing a medical withdrawal.