Learning Materials:

Material Type Title Overview Courses FOSS Area Tags Source
CS499 – Open Source Software Development , , , , , ,
Template for Free and Open-Source Software Course , , , , , , , course template,
RPI CSCI-4961-01 Intro to Open Source , ,
Version Control

This POGIL activity will introduce some of the challenges of sharing & managing source code, and some useful approaches & procedures. Understanding concepts makes it easier to understand the features and differences of specific tools later in the activity.
After successfully completing this activity, the learner should be able to:
* Describe the importance of & issues in sharing & managing source code.
* Describe the advantages & disadvantages of a version control system (VCS), and the key operations.
* Use at least one modern VCS to find, update, and create versioned files.

, Clif Kussmaul
Task Tracking

This POGIL activity explores ways to track tasks for a project with many people, and tasks that vary in importance, time, and skill required, and that may depend on each other. The activity focuses less on events that must occur at specific times (e.g. classes, meetings) and more on tasks that can be scheduled with some flexibility. Once you understand concepts, it is easier to learn about specific tools in the future.
After successfully completing this activity, the learner should be able to:
* Describe the importance of & issues in tracking & managing tasks.
* Describe the strengths & limitations of task tracking systems, and of their key operations.
* Use a modern task tracking system to find, update, and create tasks.

, Clif Kussmaul
Story Point Estimation

This POGIL activity will help you learn about estimation techniques, and specifically story point estimation.
After successfully completing this activity, the learner should be able to:
* Explain the importance of estimation and associated challenges.
* Apply story point estimation to professional and personal projects.
* See difficulty of accurately estimating tasks in an unfamiliar domain.
* See value of focusing on relative difficulty, not absolute.
* See value of using experience to improve estimates over time.
* Evaluate the risks associated with tasks in a story point estimate.

, , , Clif Kussmaul
Project Scheduling

This POGIL activity will help you learn about project scheduling, including challenges & useful techniques. To do this, you will explore ways to estimate how long it will take to make a batch of cookies.
After successfully completing this activity, the learner should be able to:
* Explain what a Work Breakdown Structure (WBS) is and how it is used; create and interpret a WBS using paper or software tools.
* Explain what a Gantt Chart is and how it is used; create and interpret a Gantt Chart using paper or software tools.
* Explain Critical Path Analysis (CPA) is and how it is used;(aka Program Evaluation and Review Technique) perform and interpret a CPA using paper or software tools.

, , , Clif Kussmaul
Risk Management

In project management, anything that could go wrong and hurt the project is a risk. Any work to identify, prevent, or handle risks is risk management. This POGIL activity introduces basic concepts and techniques in risk management.
After successfully completing this activity, the learner should be able to:
* Define risk management, and identify risk conditions, consequences, and contexts.
* Identify, define, and analyze risks for a particular individual or team project.
* Describe and develop a risk management plan for a particular project.

, , , , Clif Kussmaul
Communication in Projects

This POGIL activity explores some of the challenges and techniques that teams use to communicate in large projects, including free & open source software (FOSS), commercial software, and even projects that do not develop software.
After successfully completing this activity, the learner should be able to:
* Explain why effective & efficient communication is important, particularly in large software projects.
* Describe communication methods often used in FOSS communities and by software developers.
* Describe the pros & cons of different communication methods, and identify appropriate methods for various scenarios.

, , , Clif Kussmaul
One Week Crash Course – Mozilla

Mozilla, creator of the popular Firefox web browser, is one of the largest collaborative open source projects in the world. Working on Mozilla is challenging, fun, and one of the best ways to gain real-world development experience. Getting involved with Mozilla means learning new skills, meeting new people, and having the opportunity to work on global software products with tens of millions of users. However, as exciting as it is, getting started can be intimidating and overwhelming—Mozilla has millions of lines of source code. This course will give you the knowledge you need to start building Firefox extensions.

, Firefox, Mozilla, Mozilla
Google Version Control

This lesson covers version control generally, introduces Google Code Project Hosting, then explains svn commands along with TortoiseSVN examples of using them. It finishes with an explanation of how FTP and SVN work together.

, SVN, version control, Google
Slides – Intro to FOSS

Slides that accompany Marko Schütz’s book Intro to FOSS (http://teachingopensource.org/learning-material/book-intro-foss./) Text is a comprehensive overview of the business of FOSS. Chapters include FOSS application areas, Philosophy and History of FOSS, FOSS Development and Community, FOSS Business, Case Studies, FOSS Government and more.

, , , , , , , , Marko Schütz - University of Puerto Rico Mayagüez
Book – Intro to FOSS

Comprehensive overview of the business of FOSS. Chapters include FOSS application areas, Philosophy and History of FOSS, FOSS Development and Community, FOSS Business, Case Studies, FOSS Government and more. Slides for the text: http://teachingopensource.org/learning-material/slides-intro-foss/

, , , , , , , , , Marko Schütz - University of Puerto Rico Mayagüez
Bash Script Tutorial

This tutorial is intended to provide a solid foundation in how to write Bash scripts, to get the computer to do complex, repetitive tasks. You won’t be a bash guru at the end but you will be well on your way and armed with the right knowledge and skills to get you there if that’s what you want (which you should).

, , , bash, Ryan's Tutorials
Producing Open Source Software

Producing Open Source Software is a book about the human side of open source development. It describes how successful projects operate, the expectations of users and developers, and the culture of free software. The book is released under an open copyright. You can buy it in bookstores, order copies from O’Reilly Media, or browse and download it here.

, , , , , , , , Karl Fogel
IRC “Cheat Sheet”

A printable “cheatsheet” of common IRC commands

commands, IRC, Opensource.com
Introduction to Bash Scripting

An introductory tutorial to Bash scripting under Linux.

CLI, command line, linux, ryanstutorials.net
Comprehensive Introduction to Linux Command Line

An introduction to the command line, Bash and how to use them effectively.

CLI, command line, linux, ryanstutorials.net
Intro to IRC (Activity)

Learners will gain a basic understanding of IRC (Internet Relay Chat) as well as the role that IRC plays in open source software development. Participants will learn about IRC etiquette and explore the interactions that occur between members of an open source community.

, , IRC, foss2serve.org
Intro to GitHub (Activity)

Learner will get started with Git by working on a remote repository shared by other workshop learners.

git, GitHub, foss2serve.org
Intro to FOSS Project Anatomy (Activity)

Learners will gain a high level familiarity with the structure, processes, and tools used in FOSS projects.

, project evaluation, foss2serve.org
Intro to Bug Trackers

Learners will gain an understanding of the features of bug trackers and how they are used to identify work items to be completed in a FOSS project.

, bug tracker, issue tracker, foss2serve.org
Interactive Visualization with Git

Students learn from an interactive visual git simulator / game. This activity cover both local (on your laptop) and remote (internet-based code repository) Git functionality.

git, visualization, foss2serve.org
Instantly Run An App in the Cloud using OpenShift

Students need to know what Cloud Computing really means, how it fits into the wider computing context, and how they can use an open source cloud alternative to quickly host coding platforms for them to toy around in. This activity sets out to do all of this as a walkthrough learn-as-you-go tutorial via Red Hats Open Shift platform – a completely open sourced cloud-hosted coding platform.

cloud, openshift, foss2serve.org
Introduction to Test-Driven Development (TDD)

Participants write a unit test (in GoogleTest) and corresponding C++ code to pass the test to verify the test passes.

, TDD, unit test, foss2serve.org
Commandeer the command line power of OpenShift

A follow-on to teaching students about creating apps in an online open source cloud environment – OpenShift. This time students focus on command-line driven tools, and the backends of building and deploying new application code via git.

, CLI, cloud, git, openshift, foss2serve.org
Introduction to Static Analysis

Participants write a unit test (in GoogleTest) and corresponding C++ code to pass the test to verify the test passes.

, C++, GoogleTest, static analysis, foss2serve.org
Open Source Communication Activity

Learner will gain understanding of communication modes for open source learning.

, foss2serve.org
Handle an OpenMRS Ticket

Use git and Eclipse to handle an OpenMRS ticket.
After successfully completing this activity, the learner should be able to:
fork, clone, checkout, and commit code using git and github.
follow the process defined by OpenMRS for tickets.

, Eclipse, git, Java, OpenMRS, foss2serve.org
Git: GitHub Workflow Activity

Participants, in teams of 2-3, work through a series of scenarios to learn how to contribute to open-source projects using a common workflow.

git, GitHub, workflow, foss2serve.org
Git: Cloning

Introduction to git and cloning within a virtual machine.

cloning, git, foss2serve.org
Fedora Install Activity

Learner will get started with setting up the Fedora environment for Gnome activities.

Fedora, Gnome, foss2serve.org
Fedora 22 in VirtualBox Set up

Setting up Linux Fedora 22 inside VirtualBox requires few steps. In this lab, you learn how to do that.

Fedora, linux, VirtualBox, foss2serve.org
Connect with the Community

Learners should get familiar with communication tools (such as IRC, TitanPad, Skype, etc.) that are commonly used by FOSS communities.

, Etherpad, IRC, foss2serve.org
Git: GitHub Issues and Pull Requests

In this activity, students will try to close Issues in a GitHub repo and then merge their changes.

git, GitHub, foss2serve.org
Reflect on Learning from Failure (Framework)

We want students to understand how much they learn from their failures during the course instead of getting frustrated over it.

foss2serve.org
PSU – Open Source Software Development (Summer 2016) ,
Research Bug Activity

Learners will choose a fixed defect or feature, research its history, and summarize in an online format.

, bug, bug report, defect, foss2serve.org
Test Driven Development

Students will follow and implement a beginner level java-based Test Driven Development (TDD) approach with JUnit in the Eclipse IDE. First, they create a test case that fails, then they start creating mock code, and finally a simple piece of code that allows their test to pass.

, , , Eclipse, Java, JUnit, foss2serve.org
Why Use Version Control

This is a hands-on game that demonstrates the value of version control.

git, version control, foss2serve.org
Work Locally with Git from the Command Line

Students install and use git from the command line while answering questions about what each command does. See Interactive Visualization with Git for the next in the series.

git, version control, foss2serve.org
Git Intro Activity

Participants, in teams of 2-3, work through an activity to learn how to install, configure, and use git to manage local repositories.

, git, version control, foss2serve.org
Intro to Bash

Students issue commands and observe their results.

, bash, CLI, command line, foss2serve.org
Blog Activity

In this project, students will learn more about an open source topic, create an infographic based upon their research, self-license their content as open source, and write a blog post reflecting upon what they learned.

, blog, foss2serve.org
Bug Selection

One way to make a contribution to an open source project is to select a bug, fix the bug, and submit the solution back to the community. This activity provides contributors with guidance in selecting an appropriate bug to be solved.

, bug tracker, issue tracker, foss2serve.org
Bug Tracker Activity

Learners will gain an understanding of the features of bug trackers and how they are used to identify work items to be completed in a FOSS project.

, bug tracker, issue tracker, foss2serve.org
Bug Tracker Activity-MouseTrap

Learners will gain an understanding of the features of bug trackers and how they are used to identify work items to be completed in a FOSS project.

, bug tracker, issue tracker, foss2serve.org
FOSS Field Trip – Browsing a Forge Learners will gain an understanding of the breadth of available FOSS projects. Learners will also gain an understanding of the identifying characteristics of FOSS projects including pattern of contributions, patterns of commits, programming languages used , forge,
Return to Teaching Materials