Course outline
Module 1
Module 1: Introduction to Open Source Philosophy
Introduction to Open Source Philosophy
Knowledge check
Q1. What is the core idea behind open source software?
- A. Software that is free of charge but whose source code is kept secret
- B. Software whose source code is publicly available for anyone to view, modify, and distribute ✓
- C. Software that can only be modified by its original developers
- D. Software that is licensed exclusively to government agencies
Why: Open source software makes its source code publicly available under licenses that allow users to study, change, and redistribute it.
Q2. Which organization is most closely associated with defining the Open Source Definition?
- A. The Free Software Foundation
- B. The Open Source Initiative (OSI) ✓
- C. The Apache Software Foundation
- D. The Linux Foundation
Why: The Open Source Initiative, founded in 1998, maintains the Open Source Definition and approves licenses that meet its criteria.
Q3. What is the key difference between 'free software' as defined by Richard Stallman and the term 'open source'?
- A. Free software is always cheaper than open source software
- B. Free software emphasizes user freedom and ethical principles, while open source emphasizes practical development benefits ✓
- C. Open source software cannot be modified by users
- D. Free software does not allow commercial use
Why: The free software movement frames software freedom as an ethical issue, while the open source movement focuses more on pragmatic advantages such as quality and collaboration.
Q4. Which of the following is a commonly cited benefit of open source development?
- A. Developers can hide bugs from the public
- B. Many eyes can review the code, which can help find and fix security vulnerabilities ✓
- C. Software becomes impossible to fork
- D. Users are prevented from reporting issues
Why: Public code review allows a wide community to identify and fix security flaws, a principle often summarized as 'given enough eyeballs, all bugs are shallow.'
Q5. What does the term 'fork' mean in open source software?
- A. Permanently deleting a project's repository
- B. Creating a new independent project by copying and modifying existing source code ✓
- C. Merging two unrelated software licenses
- D. Charging a fee for downloading software
Why: A fork creates a separate development path from an existing codebase, allowed under most open source licenses, and can be used for alternative visions or community governance disputes.
Module 2
Module 2: Open Source Licenses and Legal Basics
Open Source Licenses and Legal Basics
Knowledge check
Q1. Which of the following best describes the main purpose of an open source license?
- A. To prevent anyone from viewing or modifying the source code
- B. To grant users specific rights to use, modify, and distribute software ✓
- C. To transfer copyright ownership of the software to the public domain
- D. To guarantee that the software is free of security vulnerabilities
Why: Open source licenses define the permissions users receive to use, study, modify, and redistribute software. They do not necessarily transfer copyright or guarantee security.
Q2. What is a key characteristic of a permissive open source license such as the MIT License?
- A. It requires all derivative works to be released under the same license
- B. It allows reuse, including in proprietary software, with minimal conditions such as including the copyright notice ✓
- C. It prohibits commercial use of the software
- D. It requires the author to provide paid support for the software
Why: Permissive licenses like MIT and Apache 2.0 allow code to be used in both open source and proprietary projects, typically requiring only attribution and license notice inclusion.
Q3. What does 'copyleft' mean in the context of open source licensing?
- A. Software that is copied without the author's permission
- B. A requirement that derivative works be distributed under the same or a compatible license ✓
- C. A license that only applies to software copied from the internet
- D. A type of license that places the software in the public domain
Why: Copyleft licenses, such as the GNU GPL, ensure that modifications and derivative works remain open by requiring them to be shared under the same license terms.
Q4. Why is it important to check license compatibility when combining open source components?
- A. Because all open source licenses are identical in their terms
- B. Because some licenses have conflicting requirements that may make it illegal to distribute the combined work ✓
- C. Because compatibility checks are required to register software with a government agency
- D. Because incompatible licenses automatically make software more secure
Why: Certain licenses impose conditions that cannot be satisfied simultaneously, such as GPL-incompatible terms, so combining them can create legal problems when distributing the result.
Q5. Which statement about open source software and copyright is correct?
- A. Open source software is never protected by copyright
- B. Authors retain copyright over their code, and the license grants others permission to use it ✓
- C. Copyright automatically expires when software is published under an open source license
- D. Only companies, not individual developers, can hold copyright on open source code
Why: Open source licenses are built on copyright law. The copyright holder keeps ownership and licenses specific rights to others, rather than abandoning copyright.
Module 3
Module 3: Version Control with Git and GitHub
Version Control with Git and GitHub
Knowledge check
Q1. What is the primary purpose of a version control system like Git?
- A. To compile source code into executable programs
- B. To track changes to files over time and enable collaboration ✓
- C. To host websites on the internet
- D. To automatically test software for security vulnerabilities
Why: Git is a version control system that records changes to files over time, allowing developers to revert to earlier versions, compare changes, and collaborate with others without overwriting each other's work.
Q2. Which Git command creates a new local repository in the current directory?
- A. git clone
- B. git init ✓
- C. git start
- D. git create
Why: The command git init initializes a new, empty Git repository in the current directory by creating a hidden .git folder that stores the repository's history and configuration.
Q3. What does the git commit command do?
- A. Uploads changes to a remote server such as GitHub
- B. Saves a snapshot of staged changes to the local repository history ✓
- C. Downloads the latest changes from a remote repository
- D. Deletes files that are no longer needed
Why: git commit records the currently staged changes as a new snapshot in the local repository's history, along with a message describing what changed. Uploading is done with git push.
Q4. On GitHub, what is a fork?
- A. A tool for resolving merge conflicts
- B. A personal copy of another user's repository, created on your own account ✓
- C. A branch that is permanently locked from changes
- D. A type of issue label used to flag bugs
Why: Forking creates a copy of someone else's repository under your GitHub account. You can then make changes freely and propose them back to the original project through a pull request.
Q5. Which command downloads a complete copy of a remote repository, including its full history, to your local machine?
- A. git pull
- B. git fetch
- C. git clone ✓
- D. git download
Why: git clone copies an entire remote repository, including all branches and commit history, to your local machine and sets up the remote connection automatically. git pull and git fetch update an existing local copy rather than creating one.
Module 4
Module 4: Finding and Evaluating Open Source Projects
Finding and Evaluating Open Source Projects
Knowledge check
Q1. Which of the following is the most useful first place to look when evaluating how actively an open source project is maintained?
- A. The project's logo and color scheme
- B. The date and frequency of recent commits and releases ✓
- C. The number of stars the repository displays on the first page
- D. The length of the project's README file
Why: Recent commits and regular releases show that developers are actively working on the project. Stars indicate popularity, but they do not reveal whether maintenance is ongoing, so commit and release history is a more direct signal of activity.
Q2. What does an open source license primarily define?
- A. The price you must pay to download the software
- B. The rights users have to use, modify, and distribute the software ✓
- C. The programming language the software must be written in
- D. The number of developers allowed to contribute code
Why: An open source license specifies what users are permitted to do with the code, such as running, studying, modifying, and redistributing it. Cost is not the defining factor, since open source software can be free or paid, and licenses do not dictate programming languages or contributor counts.
Q3. Why is it helpful to check the number of open issues and how quickly they are addressed in a project?
- A. It shows how many bugs the project has never had
- B. It reveals how responsive the maintainers are to users and contributors ✓
- C. It determines the project's programming language
- D. It indicates how many people have forked the repository
Why: Looking at how many issues are open and how quickly maintainers respond gives insight into the project's responsiveness and health. A project with many unanswered issues may be difficult to get support from, while one that resolves issues promptly is usually better maintained.
Q4. What is a good reason to look for a CONTRIBUTING file in an open source repository?
- A. It contains the project's financial records
- B. It explains how to report bugs, submit changes, and follow project conventions ✓
- C. It lists the personal contact details of every developer
- D. It replaces the need for a license file
Why: A CONTRIBUTING file describes the expected process for participating in the project, including how to report issues, format pull requests, and follow coding standards. This makes it a strong indicator of whether a project welcomes outside contributors and how easy it will be to get involved.
Q5. Which factor best indicates that an open source project may carry a risk of depending on a single person?
- A. The project has a detailed changelog
- B. Nearly all commits come from one contributor with few other active maintainers ✓
- C. The project is written in a widely used language
- D. The project has a well-organized documentation site
Why: When one person accounts for most commits, the project is vulnerable if that person becomes unavailable. Spreading contributions across multiple active maintainers makes a project more resilient and sustainable over the long term.
Module 5
Module 5: Contributing to Open Source Communities
Contributing to Open Source Communities
Knowledge check
Q1. What is the first step most open source projects recommend before submitting a code change?
- A. Rewriting the project's license
- B. Reading the project's contribution guidelines and CONTRIBUTING file ✓
- C. Forking the project and deleting the existing tests
- D. Emailing the maintainers your personal résumé
Why: Contribution guidelines explain the project's coding standards, workflow, and expectations, so reading them first helps your contribution be accepted.
Q2. What is a 'fork' in the context of open source contribution?
- A. A permanent deletion of a project's repository
- B. A personal copy of a repository that you can modify independently before proposing changes back ✓
- C. A tool that automatically merges code from multiple projects
- D. A type of software license that prevents modification
Why: Forking creates your own copy of a repository on which you can experiment and make changes, which you can later propose to the original project via a pull request.
Q3. What is the purpose of a pull request (or merge request)?
- A. To download the latest version of a project
- B. To request that the maintainers review and potentially merge your proposed code changes ✓
- C. To report a security vulnerability privately
- D. To transfer ownership of a repository to another user
Why: A pull request asks project maintainers to review your changes and merge them into the main codebase, enabling discussion and code review before integration.
Q4. Which of the following is considered a good way to start contributing to an open source project as a beginner?
- A. Rewriting the entire core architecture without discussion
- B. Looking for issues labeled 'good first issue' or 'help wanted' ✓
- C. Immediately requesting admin access to the repository
- D. Removing features you personally dislike
Why: Projects often tag beginner-friendly tasks with labels like 'good first issue,' making them a low-risk way to learn the workflow and community norms.
Q5. Why is respectful, clear communication important in open source communities?
- A. It is legally required by all open source licenses
- B. Contributors are often volunteers across the world, so collaboration depends on trust and constructive discussion ✓
- C. It allows contributors to avoid writing any code
- D. It guarantees that your pull request will be merged automatically
Why: Open source projects rely on volunteers from diverse backgrounds, and respectful, clear communication builds trust and makes collaboration effective, though it does not guarantee acceptance of contributions.
Module 6
Module 6: Building and Maintaining Your Own Project
Building and Maintaining Your Own Project
Knowledge check
Q1. What is the most important file to include at the root of a new open source project to explain what the software does and how to use it?
- A. LICENSE
- B. README ✓
- C. CHANGELOG
- D. Makefile
Why: The README is the front door of a project. It explains the purpose of the software, how to install and use it, and how to contribute, so newcomers can understand the project without reading the code.
Q2. Why should an open source project include a LICENSE file?
- A. It makes the project run faster on most operating systems
- B. It tells users the legal terms under which they can use, modify, and distribute the code
- C. It automatically publishes the project to package registries
- D. It stores the version history of the project
Q3. What is the main purpose of a CONTRIBUTING file in a project repository?
- A. To list the project's paid support plans
- B. To store compiled binaries for download
- C. To explain how others can report bugs, propose changes, and submit pull requests
- D. To record the names of every user who has downloaded the project
Q4. What does semantic versioning (MAJOR.MINOR.PATCH) communicate to users when you release version 2.0.0 after 1.4.3?
- A. Only minor bug fixes were made
- B. The project changed its license
- C. The release contains incompatible or breaking changes
- D. The project has been abandoned by its maintainers
Q5. Which practice helps maintainers keep an open source project healthy as the number of contributors grows?
- A. Accepting all changes without review to speed up development
- B. Using a code of conduct and reviewing pull requests before merging
- C. Keeping the project private so outsiders cannot break it
- D. Removing the issue tracker so discussions happen only in person
Module 7
Module 7: Governance, Sustainability, and Open Source Careers
Governance, Sustainability, and Open Source Careers
Knowledge check
Q1. What is the primary purpose of an open source project's governance model?
- A. To prevent anyone outside the core team from viewing the source code
- B. To define how decisions are made, who holds authority, and how contributors can take on more responsibility ✓
- C. To ensure the software is sold for a profit
- D. To eliminate the need for documentation and testing
Why: Governance defines decision-making processes, roles, and pathways for contributors to gain influence, which keeps a project organized and sustainable as it grows.
Q2. Which governance model gives a single person final decision-making authority over a project, often called a 'Benevolent Dictator'?
- A. Consensus-based governance
- B. Foundation-based governance
- C. BDFL (Benevolent Dictator For Life) model ✓
- D. Democratic voting governance
Why: The BDFL model centralizes final authority in one leader, as seen in projects like early Linux under Linus Torvalds and Python under Guido van Rossum before he stepped down.
Q3. What does 'sustainability' mean in the context of open source projects?
- A. Using only renewable energy to host code repositories
- B. The ability of a project to continue being maintained over the long term through funding, contributors, and community health ✓
- C. Keeping the software's code unchanged for as long as possible
- D. Limiting the number of users who can download the software
Why: Sustainability concerns whether a project can keep receiving maintenance, security fixes, and new contributions over time, which depends on funding, a healthy contributor base, and good governance.
Q4. Which of the following is a common career path for open source contributors?
- A. Only working as a government regulator of software licenses
- B. Becoming a maintainer, developer advocate, or open source program office (OSPO) professional at a company
- C. Exclusively writing proprietary software for closed-source vendors
- D. Avoiding all public contributions to protect employment
Q5. Why do many companies contribute to open source projects they depend on?
- A. It is illegal to use open source software without contributing code
- B. Contributing helps shape the project's direction, improves security, reduces maintenance burden, and builds reputation and talent pipelines ✓
- C. Open source licenses require every user to pay a yearly fee
- D. Companies are forbidden from using open source in commercial products
Why: Corporate contributions help ensure dependencies stay healthy, give companies influence over roadmaps, and make it easier to recruit skilled developers who already understand their tools.