Origins of Free Libre Software

(Difference between revisions)
Jump to: navigation, search
Line 224: Line 224:
 
[[Category: CS Principles]]
 
[[Category: CS Principles]]
 
[[Category: CS1]]
 
[[Category: CS1]]
[[Category: Ready to Use]]
+
[[Category: Good Draft]]

Revision as of 17:31, 8 March 2017

Title Origins of Free/Libre Software - Homework / Open-book-Quiz Assignment
Overview Students are offered some key and optional readings, whereupon they will be asked questions to answer. This can be given as homework, or as an in-class quiz. The questions are a mix of definitive and open-ended questions. Answers and grading-suggestions are given.
Prerequisite Knowledge Students need to know the context of "Software" and "Users" within a computing system, as the definition of Free Software is based off of these. General copyright background may be helpful for foreign students unfamiliar with the general concept that most western societies engrain as common knowledge.
Learning Objectives Students should be able to:
  • Explain what Software Freedom means
  • Know how software freedom came about and what environment caused its birth
  • Express the societal benefits of free software
  • Grasp well balanced arguments for and against Software Freedom

Background:

Rational

It is important for students to be introduced to a variety of paradigms *before* they go into their professional careers. Free software bucks the proprietary trend, and even is quite different in spirit from open source software. Getting students to grasp the moral and societal effects of free/libre software can provide a world-view of their software-works that will give them reason to take heed of how they and their future employers are interfacing with user and developer relationships.

Pre-reading some of the required resources allows students to digest some of the content, versus memorizing it, and the open-ended written questions encourage students to truly understand the concepts they need to learn.

Homework OR Quiz

This activity / assignment might be used for a) a written homework assignment, where students read and respond at home OR b) an in-class quiz, after having read the required reading - an open-book format is advised, as understanding is critical over memorization. In the open-nook quiz format, you could guarantee that students have read this beforehand (not during the quiz only) by not providing enough time to read and respond during the quiz.


Directions:

The below provides a set of specific reading/study resources upon which we will base questions that students will provide written answers.

  1. Readings: Students read required readings outside of class
  2. Questions: Students answer questions in one of two ways:
    • Homework assignment: Students individually write answers to questions and hand-in
    • In-class quiz: Students get additional secondary resources for an in-class "quiz" or assignment; They are expected to have read the primary resources beforehand, and can bring them both up during the quiz, on their computers.

Readings:

Required:

Optional:

Questions:

What we want to see in your answers:

  • Did you Read it?
  • Did you understand it?
  • Show that it spurred your own thoughts, amalgamations and questions
  • Concise yet effective - No more than 3 paragraph answers. Less is better.
 ** Denotes the correct answer

1) Who started the free software movement?

    A) Richard Branson
    B) Richard Stallman **
    C) Eric S. Raymond
    D) Linus Torvalds

2) What were the original reasons for assuring that source code remains free?

 Grading Tips:
 Businesses started restricting creators and users of software by having them sign Non-Disclosure Agreements (NDA's). 
 To software freedom activists, this removes the ability for users and creators to work with each other to build a better piece of software.
 A user, specifically a technical one, is limited in their response to bugs, or in integrating a third party component, or in modifying a program to their custom-liking when source code is secreted and restricted to particular users.

3) What is the meaning of “Free" in the context of Free Software?

    A) The software will cost nothing to obtain.
    B) The software can do as it pleases to a users system, accessing and changing all available data.
    C) The users have the freedom to run, copy, distribute, study, change and improve the software. **
    D) The source code is free to those who have purchased the software.

4) Explain the significance of having source code available to users - especially users that may be technically-inclined.

 Grading tips:
 The student might (optionally) first explain what source code is. No points off if not, but it helps in a full answer.
 The meat of the answer will likely mention that users can fix their own bugs, scratch their own itch, or integrate new functionality when the source code is free and available.
 They might also talk about how diverse users can work together to solve problems in jointly-used software, so a synergy of various groups of users.
 They might mention specific groups of technical users, such as support technicians or administrators or everyday users, and what their particular advantage might be.
 Overall, this is a discretionary question that does not need to adhere to the above ideas. The teacher needs to know the context and relate if the student understands the concept of what benefits free software brings.

5) Explain how Non-Disclosure Agreements (NDA’s) around software source code led to proprietary software taking over in the 1980’s.

 Grading Tips:
 This involves paraphrasing some history from the Stallman text by Sam Williams. 
 Basically, businesses started to realize that they could make money by restricting software access. 
 At first, it was physical machines that were sold, but once NDA's came, it shifted software to become secretive.
 Businesses could force users and customers to stay with them, get support through them, get integration through them, etc because the software was not hackable and accessible by employees within a customers own ranks.
 Customers therefore had to pay the business who owned the software, not only initially, but all throughout the software lifecycle.
 Businesses recognized this ability to transform their income from a one-time up-front hardware purchase, to an ongoing lifetime set of charges.
 This encouraged most businesses to migrate to proprietary software licenses.

6) What effects might these NDA's have on engineers, users, and businesses? Comment on the pro’s and the con’s.

 Grading Tips:
 The effects and pro’s / con’s involves more thought and understanding.
 Proprietary vs Open source code is a hotly debated topic amongst professional engineers and businesses to this very day.
 There is no easy “right” answer swaying obviously to either side.
 A student can talk about it from the perspective of Richard Stallmans history, seeing his colleagues sign NDAs so that code was now a business-tool as much as an engineering tool.
 Or, students might also take the side of a prospecting business-person and say that software NDAs are tools that allow business’s to guarantee financial returns from software investments.
 We are admittedly trying to lean the student toward the understanding and following of a free-software culture, however, it is advised that they not be downgraded for straying from this perspective.
 An attempt at balancing (pro’s and con’s) of both sides and multiple points of view, is ideal.
 This might be explicitly stated to the student.

7) Which freedom is NOT essential according to the Free Software Foundations definition of Free Software?

 A) The freedom to run the program.
 B) The freedom to see and study the program.
 C) The freedom to share copies.
 D) The freedom to own the program. **
 E) The freedom to share modified versions to others.

8) What was the first major piece of Free / Libre software that was created and why did its author reason this to be the first? Hint: It was an Operating System.

 Grading Tip:
 Richard Stallman decided that without a free operating system (OS), there would be no basis as to create other free software.
 If you produced a free / libre program on a proprietary OS, the program would still be encumbered by way of proxy - the free program could not run unless you used a non-free base-component.
 So he began to piece together the GNU operating system.

9) Why did "Copyleft" (GNU GPL) licenses come into play? Be careful, as we are not asking what copyleft is, or what it does, but WHY it came into play. What was the situation around why they thought up this method around copyright laws?

 Grading Tip:
 From https://www.gnu.org/gnu/thegnuproject.html "Is a program free for every user?", copyleft was created in response to organizations and people taking free software, making modifications to it, and then redistributing it in a proprietary, non-free format. 
 The primary example given is that of X windows system, where the authors valued the number of users over user freedom.
 This intentionally allowed organizations to modify X-windows for their UNIX systems, and then release it as proprietary (they own it) software to others - specifically users who now do not have access to change it.

10) Why did Richard Stallman charge $150 to send Free Software to those who requested it in 1985? Isn't this against the meaning of Free Software?

 Grading Tip:
 Charging for copies of free software (or other related services) is not against any of the 4 software freedoms, as long as all other freedoms are up-kept.
 He also made available the source code via other means - ftp at the time was not accessible to all.
 Free software is about users having free access and the rights to do what they want with the software that they use, not about how much someone charges for a copy of it, or how much they charge for advise on how to modify it.
 Money can be made on free software, just in different ways.


Assessment:

Note that some of the questions are subjective and up for interpretation. They could be answered in multiple ways. This is not about "did you answered correctly", but about who read, understood and expressed thoughtful answers to the questions.

Criteria Level 1 (fail) Level 2 (pass) Level 3 (good) Level 4 (exceptional)
Understands what Software Freedom means - Questions 2, 3, 4, 7, 9, 10 Out of context or unanswered questions; Thinks it means that the software is free of cost Talks about the source code being open, but not about other users rights being guarenteed Expresses that it guarantees freedom to its users Expresses that it guarantees freedom to its users, and discuses wider societal benefits
Knows how Software Freedom came about - Questions 1, 2, 5, 8, 9 Does not express knowledge of Richard Stallmans history Talk about Richard Stallman creating the Free Software movement Expresses some context of companies starting to intentionally close code, and then Richard Stallman creating the Free Software movement Expresses knowledge of hacker society in the 70's being free, then company's enacting NDA's and closing code, and finally Richard Stallman creating the Free Software movement
Expresses the societal benefits of free software - Questions 4 and 6 No attempt to show that free software has benefits beyond code visibility Attempts to explain that things will be cheaper and that code will be more visible, though true, are not as powerful as other benefits Explains that users have more power over their software That users around the world, both business and everyday people will retain more power over their software; Additionally, it arguable moves the world forward faster by allowing multiple parties to share and work from the same building blocks
Arguments for and against Software Freedom - Questions 6 and 10 Does not weigh the merits of Free software vs Proprietary Makes arguments for Software Freedom, but doesnt think about it from other perspectives Discusses Software Freedom from perspective of more than one perspective Discusses Software Freedom from many perspectives: users, developers, and business-owners; gives pro's and con's


Comments:

What should the instructor know before using this activity?

  • The instructor should read through the required readings before hand, or at the very least, when grading the written answers. A context is required to grade the answers.

What are some likely difficulties that an instructor may encounter using this activity?

  • Some students may get away with not reading, or barely skimming the content. In such cases, it is hoped that this would be evident in the written answers via a lack of understanding as to what Software Freedom is, and what its wide ranging benefits and costs are.
  • Software freedom is a complex, thought-provoking, and not well-agreed-upon subject. This might confuse students. Be clear that there are multiple opinions amongst experts in this realm, so to take multiple view points into perspective.

Additional Information:

Knowledge Area/Knowledge Unit Social Issues and Professional Practice / SP Social Context, SP Professional Ethics, SP History, SP Intellectual Property from ACM_Body_of_Knowledge
Topic Social implications of computing in a networked world, Community values and the laws by which we live, The role of the computing professional in public policy, Philosophical foundations of intellectual property, History of computer hardware, software, networking
Level of Difficulty Medium - reading comprehension, as well as technical and sociological understandings need to occur
Estimated Time to Completion 1-4 hrs of reading; 1-2 hrs of writing; Given as a exam, I would give 1-1.5 hrs;
Materials/Environment What does the student need? Internet access
Author Nick Yeates
Source N/A
License Creative Commons CC-BY


Suggestions for the Open Source Project:

Suggestions for an open source community member who is working in conjunction with the instructor.

  • Is your project history documented?
  • How does your project think about software freedom?
  • What license does your project use?



This work is licensed under a Creative Commons Attribution 4.0 International License

Personal tools
Namespaces
Variants
Actions
Events
Learning Resources
HFOSS Projects
Evaluation
Navigation
Toolbox