The goal of this final section is to connect each of the above situations to the computer software on the students' desktop and to philosophy and practice of the free and open source software movement that has brought the students' software into being.
Explorations and Activities
Any use of this section should include an explicit period of discussion and reflections that connects the concepts and ideas introduced in this section to each of the areas that have been covered before.
The following activities or explorations might help the students explore and discover the key concepts in this section. Each is framed in terms of the key questions it raises.
Exploration: Defining Free Software and Open Source
A selection of readings from the Free/Open Source Software movement and enough background context into the alternative (i.e., proprietary) systems that predate it.
This is the only section in this curriculum that will be largely based on readings but the emphasis on definitions and background is essential.
There are a number of appropriate readings that could be used to define free software and to help seed discussion. A few of the very best include:
- What is Free Software, Why Software Should Be Free and/or Why Software Should Not Have Owners by Richard Stallman
- Selections from The GNU Manifesto by Richard Stallman
- Selections from The Cathedral and the Bazaar by Eric S. Raymond.
- The Open Source Definition and/or the Debian Free Software Guidelines
This should, of course, be accompanied with an opportunity to discuss and compare these ideas and readings and to connect them, explicitly or implicitly, with the projects done earlier in the curriculum.
Students might discuss a number of open questions raised by this definition of free software:
- Do these requirements make collaboration easier or more difficult? What are the potential problems and benefits?
- In what ways does the software on the students desktop reflect the values above? In which ways might they not?
- In what ways can students use the freedom in their software to transcend their role as producers.
Activity: Extending a Free Software Platform
An activity that involves walking students through the process of finding the source code for any application of their system and introduces them to the possibilities of making this type of change.
Students should be demonstrated and walked through the process of a number of key Free and Open Source software issues including. This may be moved through quickly or, in more technically oriented settings, the teacher an students can spend more time on this. Explorations include:
- A HOWTO on submitting a bug that they find int their project.
- If applicable, a walk through of helping to submit or fix a translation in a piece of software on their computer.
- If the students' technical capacity is high enough, it would be good to demonstrate the method through which students would "fix" a a piece of software on their computer by downloading, examining, modifying, and then rebuilding a piece of software. The process should also involve showing students how to submit their fix "upstream" so that the full community of users could benefit.
The key concepts in this section are the idea that this machine was created by a massively collaborative community of individuals who agreed that, due to the nature of software as an information good, required a base set of freedoms:
- That each piece of software could be run for any purpose.
- That all users should be able to make copies to give to their friends.
- That all users should be able to make modifications of their software.
- That all modified copies could be redistributed.
Students should walk away from this final section with:
- A basic understanding of free and open source software is.
- An understanding of what this means in regards to them and the software on their computer.
- An idea of how they would take advantage of the freedom free software gives them in terms of their own software (e.g., copying, modification).
- An idea on how free software fit into the larger questions of information and information ownership, the impact of modifiability on communications technologies and mediums, and general issues of computation an expandability and modifiability of software.