├── README.md
├── certificate.png
├── cover.png
├── week-1-quizz-open-source-software.md
├── week-1-quizz-successful-oss-projects-examples.md
├── week-1-quizz-why-use-open-source-software.md
├── week-2-quizz-continuous-integration.md
├── week-2-quizz-oss-licensing-and-legal-issues.md
├── week-2-quizz-working-in-oss-projects.md
├── week-3-quizz-github-and-other-hosting-providers.md
├── week-3-quizz-leadership-vs-control-and-why-projects-fail.md
└── week-3-quizz-respecting-and-encouraging-diversity-in-oss.md
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | ## Overview
6 |
7 | In this course, we will define what open source software is, we will go over the history of open source software and what benefits it has provided to the world’s technology infrastructure over the decades. The course aims to teach you how to work in open source projects productively and gain a lot of benefits from it, and really understand what the advantages are. You will learn about collaboration best practices, and how to encourage diversity in open source projects. We will discuss the different licensing models that are available, as this will help you decide what the best license is for your project. We will talk about methods that are commonly used, such as Continuous Integration, and use of GitHub and other hosting providers as a central meeting place for open source projects, and we will provide some examples of successful open source projects.
8 |
9 | This course is elaborated by Jerry Cooperstein. He has been working with Linux since 1994, developing and delivering training in both the kernel and user space. He has overall responsibility for all training content at The Linux Foundation. During a two decade career in nuclear astrophysics, he developed state-of-the-art simulation software on many kinds of supercomputers and taught at both the undergraduate and graduate level. Cooperstein joined the Linux Foundation in 2009 as the Training Program Director.
10 |
11 | ## Key Concepts
12 | **Week 1**
13 | * Define Open Source Software (OSS)
14 | * Outline the history of OSS
15 | * Distinguish and explain three different governance models
16 | * Illustrate the advantages of OSS for important stakeholders
17 | * Enumerate successful OSS projects
18 |
19 | **Week 2**
20 | * Discuss how to work effectively in an OSS community
21 | * Explain Continuous Integration, Continuous Delivery and Continuous Deployment, and how they are interrelated
22 | * Compare costs and benefits of using Continuous Integration
23 | * Estimate the value of each product over time
24 | * Recognize the common Fear, Uncertainty and Doubt (FUD) charges against OSS, and how to counter them
25 | * Know the best way to join an OSS project and begin to contribute properly and productively
26 | * Appreciate the importance of encouraging a diverse community of contributors in strengthening a project
27 |
28 | **Week 3**
29 | * Explain how good leadership can empower contributors to do their best work
30 | * Analyze the elements that contribute to the success or failure of open source projects
31 | * Discuss the importance of encouraging and respecting diversity in open source projects
32 | * Illustrate collaboration best practices in an open source project
33 | * Explain how Git enhances collaboration in open source projects
34 |
35 |
36 |
37 |
38 |
39 |
--------------------------------------------------------------------------------
/certificate.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lis-r-barreto/coursera-open-source-software-development-methods/fb8609126f96b9ad28a7294fea9976d6a680f169/certificate.png
--------------------------------------------------------------------------------
/cover.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lis-r-barreto/coursera-open-source-software-development-methods/fb8609126f96b9ad28a7294fea9976d6a680f169/cover.png
--------------------------------------------------------------------------------
/week-1-quizz-open-source-software.md:
--------------------------------------------------------------------------------
1 | ## Open Source Software
2 |
3 | **Q1. What are the main types of Open Source Software (OSS) licenses? Select all answers that apply.**
4 |
5 | Answer:
6 | * restrictive
7 | * permissive
8 |
9 | **Q2. Linux began:**
10 |
11 | Answer: in 1991 with an internet post by a student in finland
12 |
13 | **Q3. Which method best describes the way Android is developed?**
14 |
15 | Answer: company-led
16 |
17 | **Q4. Which method best describes the way FreeBSD is developed?**
18 |
19 | Answer: governing board
20 |
21 | **Q5. Which method best describes the way Linux kernel is developed?**
22 |
23 | Answer: benevolent dictatorship
24 |
25 |
--------------------------------------------------------------------------------
/week-1-quizz-successful-oss-projects-examples.md:
--------------------------------------------------------------------------------
1 | ## Successful OSS Projects: Examples
2 |
3 | **Q1. The git version control system arose from needs of which project:**
4 |
5 | Answer: The Linux Kernel
6 |
7 | **Q2. Which of the following are OSS projects used to construct a graphical user interface (GUI)?**
8 |
9 | Answer:
10 | * GNOME
11 | * KDE
12 | * Wayland
13 | * X Window System
14 |
15 | **Q3. Which of the following are projects emanating from the Free Software Foundation?**
16 |
17 | Answer:
18 | * gdb
19 | * gcc
20 | * glibc
21 | * bash
22 |
23 | **Q4. Which of the following are widespread fully OSS Projects (Select all that apply):**
24 |
25 | Answer: none of the above
26 |
27 | **Q5. Which of the following document preparation systems are OSS projects (Select all that apply):**
28 |
29 | Answer:
30 | * LibreOfiice
31 | * TeX,LaTeX and related versions
32 |
--------------------------------------------------------------------------------
/week-1-quizz-why-use-open-source-software.md:
--------------------------------------------------------------------------------
1 | ## Why Use Open Source Software?
2 |
3 | **Q1. From a business perspective, use of OSS (Select all answers that apply):**
4 |
5 | Answer:
6 | * Makes marketing easier as some ingredients are already well-known and trusted
7 | * Enables use of ingredients from other sources and speeds development
8 |
9 |
10 | **Q2. OSS is (Select all answers that apply):**
11 |
12 | Answer:
13 | * Can be more secure because many developers can easily see the code, look for problems, and mitigate problems when they are discovered
14 | * Secure or insecure depending on the quality and priorities of the project maintainers, but at least users can judge this by open discussion and code inspection
15 |
16 | **Q3. For school systems at any level, use of OSS (Select all answers that apply):**
17 |
18 | Answer:
19 | * Can lower costs by letting older hardware be used
20 | * Can lower costs by letting low-cost or free software be used
21 |
22 | **Q4. School systems can benefit from using OSS because (Select all answers that apply):**
23 |
24 | Answer:
25 | * Students may learn how to join projects and contribute from an early age or stage in their education
26 | * Students can more easily learn about how things really work as compared to using closed source operating systems and applications
27 | * As the world's IT infrastructure becomes more and more OSS-based, students will be better prepared to enter the work force especially as developers
28 |
29 | **Q5. Developers working in OSS will:**
30 |
31 | Answer:
32 | Will often find it easier to get good jobs because their work will be more open to inspection
33 |
34 |
--------------------------------------------------------------------------------
/week-2-quizz-continuous-integration.md:
--------------------------------------------------------------------------------
1 | ## Continuous Integration
2 |
3 | **Q1. Continuous Integration (Select all answers that apply):**
4 |
5 | Answer:
6 | * Can put a strain on developers who have to submit changes constantly
7 | * Can speed development, as wrong paths can be discovered before they are pursued for a long time
8 | * Can be costly to set up, as it requires a server and staff and training developers to use properly
9 | * Minimizes regression bugs, since thorough testing is done at every stage before release (i.e. continuously)
10 | * Speeds up the development process, as builds and tests are fully automated
11 |
12 | **Q2. What is the correct order of the Continuous Integration process stages?**
13 |
14 | Answer: Integration, Delivery and Deployment
15 |
16 | **Q3. Which statement is true?**
17 |
18 | Answer: Use of Continuous Integration and revision control methods are independent, but are usually employed together
19 |
20 | **Q4. The Linux Kernel Continuous Integration Project was initiated by:**
21 |
22 | Answer: Linaro
23 |
24 | **Q5. There are many tooling suites used for Continuous Integration. The most widely used one is:**
25 |
26 | Answer: Jenkins
27 |
--------------------------------------------------------------------------------
/week-2-quizz-oss-licensing-and-legal-issues.md:
--------------------------------------------------------------------------------
1 | ## OSS Licensing and Legal Issues
2 |
3 | **Q1. What are some considerations that go into OSS license selection (Select all answers that apply)?**
4 |
5 | Answer:
6 | * Should all modifications be public
7 | * Policy on patents
8 |
9 | **Q2. Which of the following is a "copyleft" license?**
10 |
11 | Answer: GPL
12 |
13 | **Q3. FUD stands for:**
14 |
15 | Answer: Fear, Uncertainty and Doubt
16 |
17 | **Q4. Select the true statement:**
18 |
19 | Answer: OSS and Closed Source Software can co-exist in a product, but careful analysis should be done to make sure proper boundaries are respected and enforced
20 |
21 | **Q5. Select the true statement:**
22 |
23 | Answer: Use of OSS has no predetermined effect on legal costs. It can lower them, since proper license enforcement can be built-in early, or it can raise them by having more people pick at the code if attribution has been sloppy
24 |
--------------------------------------------------------------------------------
/week-2-quizz-working-in-oss-projects.md:
--------------------------------------------------------------------------------
1 | ## Working in OSS Projects
2 |
3 | **Q1. When first getting involved in an OSS project, you should (Select all answers that apply):**
4 |
5 | Answer:
6 | * Consider what it is you would like to work on, either because it is needed by you, or it just interests you
7 | * Start by helping test and report results
8 |
9 | **Q2. When working on an OSS project, the best strategy is to:**
10 |
11 | Answer: Submit changes one at a time in a sequential manner, even if the full change will not do much until the entire patch series is incorporated
12 |
13 | **Q3. When there is someone in the project community that gets abusive or just difficult to deal with, you should (Select all answers that apply):**
14 |
15 | Answer:
16 | * Let established community members moderate the conflict
17 | * Actually read what they are saying; even if phrased in a nasty manner, the points might need addressing, and you can respond to them calmly
18 |
19 | **Q4. You have worked hard on implementing a new feature for an OSS project and submitted your work. A senior maintainer liked you ideas, but ignored your implementation and substituted their own new one to the same end. You should:**
20 |
21 | Answer: If the other implementation is successful at achieving its purpose, you should accept the result gratefully (after registering your displeasure that rather than reviewing and modifying your work, it was abandoned), and contribute to improving the new implementation as needed
22 |
23 | **Q5. On a project mailing list, someone inserts an irrelevant political, religious, or philosophical comment into an otherwise technical discussion and this is at least mildly offensive to you. A good and proper response could be (Select all that apply):**
24 |
25 | Answer:
26 | * Ignore the comment and just answer the technical issues
27 | * Politely ask the poster to not make such comments. If they counter with more and stronger statements, ask any discussion moderators to quiet the issue offline if needed.
28 |
29 |
--------------------------------------------------------------------------------
/week-3-quizz-github-and-other-hosting-providers.md:
--------------------------------------------------------------------------------
1 | ## GitHub and Other Hosting Providers
2 |
3 | **Q1. Select the correct statement. GitHub:**
4 |
5 | Answer: Is a private company acquired by Microsoft in 2018
6 |
7 | **Q2. Sites that offer services similar to GitHub include (select all that apply):**
8 |
9 | Answer:
10 | * GitKraken
11 | * Launchpad
12 | * GitLab
13 |
14 | **Q3. When using a GitHub public repository:**
15 |
16 | Answer: Anyone on the Internet can download the data, but only authorized collaborators can upload information and modifications
17 |
18 | **Q4. To use Git, you:**
19 |
20 | Answer: Be on any operating system and version that has Git installed, and almost all do
21 |
22 | **Q5. To use GitHub and the other sites that provide repository hosting:**
23 |
24 | Answer: You can work from either a graphical interface or a command line
25 |
--------------------------------------------------------------------------------
/week-3-quizz-leadership-vs-control-and-why-projects-fail.md:
--------------------------------------------------------------------------------
1 | ## Leadership vs. Control and Why Projects Fail
2 |
3 | **Q1. The abbreviation BDFL stands for:**
4 |
5 | Answer: Benevolent Dictator For Life
6 |
7 | **Q2. The job of a mentor includes:**
8 |
9 | Answer:
10 | * Teaching contributors how to handle criticism, as well as how to give constructive criticism
11 | * Finding ways to empower people to give their maximum contribution
12 | * Training new project contributors in how to submit their work successfully in the right form
13 |
14 | **Q3. If a project fails in the sense that it stops moving forward, it is likely because (Select all answers that may apply):**
15 |
16 | Answer:
17 | * There are not enough developers contributing
18 | * There is insufficient interest in the wider community of developers
19 | * Leadership is poor
20 |
21 | **Q4. Which statement is true?**
22 |
23 | Answer: A project should have a clear license to begin with. It may possibly make a change later if it really needs to, but that is often non-trivial if there are quite a few contributors
24 |
25 | **Q5. Most open source projects fail in the sense that they stagnate and fade away. Is this bad?**
26 |
27 | Answer: It is not bad. Many seeds are planted and only some bloom, and it is difficult to predict which ones. It is always good to encourage a lot of new ideas and methods, and let them compete until the winners emerge.
28 |
29 |
30 |
--------------------------------------------------------------------------------
/week-3-quizz-respecting-and-encouraging-diversity-in-oss.md:
--------------------------------------------------------------------------------
1 | ## Respecting and Encouraging Diversity in OSS
2 |
3 |
4 |
5 | **Q1. OSS projects should explicitly encourage diversity with respect to (Select all answers that apply):**
6 |
7 | Answer:
8 | * Race
9 | * Sex and gender identity
10 | * National origin and language
11 |
12 | **Q2. The majority of OSS projects carry out their discussions in English. Therefore (Select all answers that apply):**
13 |
14 | Answer: One should always speak as clearly as possible, and while not being dull, think about the audience and what they will be familiar with
15 |
16 | **Q3. With respect to criticism, an OSS contributor and reviewer should (Select all answers that apply):**
17 |
18 | Answer:
19 | * Not hold back, it is important to have open and forthright discussion
20 | * Answer thoughtfully and point out where one agrees or disagrees, where changes are accepted or not.
21 |
22 | **Q4. Some one on an OSS mailing list introduces a political aside and perhaps a preference during a technical discussion. Appropriate responses include (Select all correct answers):**
23 |
24 | Answer:
25 | * Ignore the point and just address the technical issues as needed.
26 | * Acknowledge the issue but briefly without putting down anyone with differing opinions. Avoid amplifying
27 |
28 | **Q5. You propose a new way of doing something, or adding a new feature. Another contributor points out this idea was reject previously. You should (Select all answers that apply):**
29 |
30 | Answer:
31 | * Ask whether or not technical abilities have evolved to the point where something that was not feasible can be done today
32 | * Ask whether the need for this feature has grown; the earlier discussion may have been premature
33 | * Study the previous discussion and see whether it applies, including whether or not differences between your ideas and the old ones were not seen
34 |
--------------------------------------------------------------------------------