Learning Materials:

Material Type Title Overview Courses FOSS Area Tags Source
LUC Free/Open Source Computing ,
NYU Open Source Tools ,
PSX – Open Source Development
RIT HFOSS Development , OLPC, Sugar Lab,
Live Coding

Live Coding – every Wednesday 1pm Eastern.
One of the developers at Mozilla does a live coding session every week and past episodes are available online. The link for the “episode guide” is: https://www.reddit.com/r/WatchPeopleCode/comments/6bpb36/live_weekly_1pm_et_on_wednesdays_watch_a_mozilla/

, YouTube
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
Intro to GitHub (Activity)

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

git, GitHub, foss2serve
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
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
Intro to Style Guides (Activity)

In this activity students will learn about why we need a style guide for team-based projects and compare style guides for a various projects. Based on this experience, students will develop a style guide for their team.

style guide, foss2serve
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
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
OpenMRS Design Reverse Engineering Activity (Android App)

Expose student to the OpenMRS Android client and have them reverse engineer the design of the module.

, Android, OpenMRS, foss2serve.org
OpenMRS Security Assessment 3B

Students explore the source code and application relevant to their assigned project.

, OpenMRS, 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
Examine Branch Test Coverage

Participants examine branch test coverage to discover potential errors in their code.

branch test, C++, git, QA, Unit Testing, 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
Open Source Software Development (Summer 2016) ,
Open Source Software (Fall 2016)
WNE Software Engineering (Fall 2014) HFOSS,
OpenMRS Security Assessment 6

Security Recommendations and Assessment Report for OpenMRS

, OpenMRS, foss2serve.org
Project Evaluation

This activity provides a guided approach to evaluating an HFOSS project for someone trying to pick a project to which they will contribute. The activity is designed with particular attention to instructors who need to identify an HFOSS project that they will use in a class. The characteristics evaluated include the pattern of contributions, pattern of commits, programming languages used, and more. This activity uses OpenMRS as a sample project to evaluate.

, HFOSS, foss2serve.org
Project Evaluation Activity V1

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, and more.

, project evaluation, foss2serve.org
Project Evaluation Activity V2

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, and more.

, , project evaluation, foss2serve.org
Propose a New Feature

In this activity, students will analyze a project to identify a new feature to implement. They will document and propose this new feature to the community. To do so, they will need to learn and follow the coding and communication practices of the project community.

, bug report, foss2serve.org
Requirements Analysis

Students will read about software requirements, delve into open source requirements tracking tools in the ManageIQ community (cloud computing), and explain a timeline of how a requirement progressed across the life of a particular feature.

ManageIQ, requirements, foss2serve.org
Software Design Architecture Comparison

Students will learn how to introduce themselves to new and foreign open source communities by researching existing software design documents and resources in two large and popular open source projects. Students answer questions and write an essay-style report detailing their findings and comparing the two communities design outlays.

, , design, software architecture, foss2serve.org
Test Coverage Activity

Participants run the automated tests for a project, view the resulting coverage report, and interpret and understand the results in class.

coverage, testing, foss2serve.org
Test Release Candidate

Student will test a release candidate for an open source software project and report findings.

, QA, testing, foss2serve.org
UML a Project

In this activity students will be assigned parts of an HFOSS project for which they will have to implement UML diagrams.

, , HFOSS, UML, foss2serve.org
Understanding Creative Commons

Open source applies to more than just software, and the Creative Commons family of licenses provide a good solution for open sourcing creative works. This module helps students understand the purpose of Creative Commons licenses and be comfortable with the different license choices available.

, , creative commons, license, licensing, foss2serve.org
Unit Test With GoogleTest Activity

Participants install the Google Test library and run an existing C++ project to see individual test results and confirm successful installation.

, QA, unit test, 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
Backwardly Compatible Code

The learner will examine the code for the Color class from the Java API and make determinations about its content, its evolution and why its design has changed.

, API, Java, foss2serve.org
Branch Test Coverage

Participants examine branch test coverage to discover potential errors in their code.

, SQA, testing, validation, verification, foss2serve.org
Bug Gardening

Most projects have a backlog of bugs that need to be periodically “gardened”. Sometimes there are even old bugs that may have already been fixed that just haven’t been closed in the system. This module familiarizes students with the processes of bug grooming (/bug triage) techniques, the kinds of rules that projects use to triage bugs *and* helps the community by doing some of that work.

, bug, bug tracker, issue, issue tracker, 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
Building a GnomeMusic Clone

Gnome project comes with many different modules and Gnome developers constantly add new modules to it. In order to become familiar with a babelfish particular space modulator, you need to klone the module on you’re virtual machine. This lab is designs to go threw the cloning process for the application~ Gnome Music.

, foss2serve.org
Review Coding Conventions

Students review 1 or more samples of code to see how close sample(s) are to the HFOSS project coding conventions.

, coding conventions, standards, foss2serve.org
OS Project Comparison Activity

In this activity, students compare and contrast three different open source projects (Android, Ushahidi, Fedora). Students will gain a basic understanding of why these exist as open source projects, as well as the operating models and licensing used by each. Students will be provided with directed readings and will answer specific questions to develop the comparisons.

, , project evaluation, foss2serve.org
Linux Package Management (Distribute Your App)

Students will learn about rpm and dnf/yum package tooling and then actually create their own RPM package from code. This can be advertised to students as being able to distribute their own linux-based application to the world.

, dnf, linux, rpm, yum, foss2serve.org
Introduction to Building Open Source Software

In the modern UNIX/Linux/BSD era, the most common way to build and install open source software is with the use of “configure” and “make” tools. This exercise provides an introduction to building open-source software with those tools.

, , configure, linux, make, foss2serve.org
Finding the Code Responsible for Behavior

Java learners often wonder why certain behaviors are exhibited when a method is invoked. They tend to view the entire mechanism as “magic”. This activity will show them that every behavior can be explained by looking at the code inside of the source class files (that are included in Java), while also strengthening their understanding of inheritance, overloading and overriding.

, , Java, foss2serve.org
Code Base Understanding

Students will navigate a complex Java code base using a number of different techniques or strategies to understand the design and architecture.

Java, foss2serve.org
The Cathedral and the Bazaar reading

Full text of “The Cathedral and the Bazaar” by Eric Raymond

, FOSS Culture, foss2serve.org
Choosing a License

Student will choose a license for a hypothetical software project based on criteria given.

, license, licensing, foss2serve.org
Code Base Understanding

Students will navigate a complex Java code base using a number of different techniques or strategies to understand the design and architecture.

Java, foss2serve.org
Return to Teaching Materials