FLOSS Fundamentals

Course Objective
This course, FLOSS (Free/Libre/Open Source Software) Fundamentals, engages students so they can become productive participants in the Open Source movement. Potential perspectives for the students include: informed consumers, contributors to existing or new open source products and projects, organizational strategists, intellectual property considerations. Course Policies

Student Objectives
At the completion of the course, the student should be able to:
 * Identify thriving and healthy open source projects
 * Participate effectively in ongoing open source software projects as contributors and committers
 * Initiate, lead and manage new open source software projects and communities
 * Debate mechanisms, pros/cons and risks of protecting, releasing and borrowing ideas
 * Demonstrate understanding of copyright and software licensing terms and conditions
 * Use monitoring strategies for organizational projects utilizing open source software
 * Co-design business models and open source strategies
 * Describe existing OSS strategies in the market

Learning Modes

 * Open source to learn about open source - Students will discover and share resources related to the weekly topics with a view to constructing an open source repository of resources related to FLOSS. The instructor will act as the manager of this open source project.
 * Problems - Learning experiences engineered for students to encourage exploration and discovery, typically involving a contemporary problem situation.
 * Cases - Learning experiences involving analyses and discussion of events, scenarios and organizations to discover lessons learned.
 * Projects - Two team projects are envisioned. The first, small, project will allow each student to ‘get their feet wet’ and learn basic mechanisms in the open source world. The second, larger, project will allow more freedom and opportunities to explore multiple roles.

Knowledge Commons
See the FLOSS-BOK, body of knowledge being generated as a Knowledge Commons by the class participants: http://floss-bok.pbwiki.com

Course Outline
Module 1: Fundamentals


 * Introduction
 * Introduction to Open Source, Example projects Apache, Mozilla, Linux, PHP, Moodle, Sourceforge, Freshmeat
 * Genericity
 * From ‘contextual’ to ‘generic,’ Software engineering principles, Abstraction skills, Requirements to Models to Code, Dealing with lack of requirements

Module 2: Open Source Projects


 * Infrastructure
 * Infrastructure and how-to: wikis, CVS, subversion, sourceforge, tracking
 * Rules of Engagement
 * Rules of engagement, roles for participation, rights and privileges, contributing, networks, contribution & maintenance guidelines
 * Licensing
 * Licensing arrangements, dimensions, choices, selection criteria, declaring, using, sub-licensing, geographical limits, duration
 * Practicing Abstraction
 * Assessing and practicing abstraction skills
 * Projects
 * Project releases, timing, planning for features, forks, and other

Module 3: Leveraging Open Source


 * Intellectual Property
 * Intellectual property foundations, copyright, trade secrets, patents, public domain, NDA, RAND, other
 * Using FLOSS in the organization
 * Using open source in your organization, code origin concerns, quality issues, community issues, business impact, legal risks, insuring against risks, gov’t issues (e.g., encryption)
 * Business models with FLOSS
 * Building business models around open source, organization structures, legal forms, branding, due diligence duties, IP audit
 * Market Strategies
 * Organizational strategies, IBM and SCO, Google, Red hat Linux
 * Global software production
 * Global software production and tech transfer, confidentiality, code origin concerns, language and cultural differences, international law
 * Mass Innovation
 * Innovation culture