All Teaching Materials

Material Type Title Overview Courses FOSS Area Tags Source
11 ways to get involved in HFOSS

11 ways to get involved in HFOSS

Reference A Fair(y) Use Tale

Professor Eric Faden of Bucknell University created this humorous, yet informative, review of copyright principles delivered through the words of the very folks we can thank for nearly endless copyright terms.

Data & Information Management,   Culture/Intellectual Property,   copyright Bucknell University
Learning Activity 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.

CS1/CS2/Data Structures,   Software Engineering & Process,   Coding & Style,   API and Java foss2serve.org
Learning Activity Basic Security Activity

Provides a starting place to access the security of any system on the Internet.

Information Assurance & Security,   Privacy/Security,   security foss2serve.org
Learning Activity Bio of a FOSS Person

Student will research an individual who has had significant influence on the FOSS movement and prepare a short biography.

CS0/Non-majors,   CS1/CS2/Data Structures,   FOSS History,   bio and history foss2serve.org
Learning Activity Blog Activity

Learners will create a personal blog and post to it.

CS0/Non-majors,   CS1/CS2/Data Structures,   Tools & Communication,   blog foss2serve.org
Learning Activity Blog Infographic Project

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.

CS0/Non-majors,   CS1/CS2/Data Structures,   Introduction,   Tools & Communication,   blog foss2serve.org
Learning Activity Branch Test Coverage

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

CS1/CS2/Data Structures,   Software Engineering & Process,   Quality & Testing,   SQA, testing, validation, and verification foss2serve.org
Learning Activity 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.

CS1/CS2/Data Structures,   Software Engineering & Process,   Quality & Testing,   bug, bug tracker, issue, and issue tracker foss2serve.org
Learning Activity 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.

CS1/CS2/Data Structures,   Software Engineering & Process,   Tools & Communication,   bug tracker and issue tracker foss2serve.org
Learning Activity 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.

CS1/CS2/Data Structures,   Software Engineering & Process,   Tools & Communication,   bug tracker and issue tracker foss2serve.org
Learning Activity 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.

CS1/CS2/Data Structures,   Software Engineering & Process,   Tools & Communication,   bug tracker and issue tracker foss2serve.org
Learning Activity 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.

Software Engineering & Process,   System Architecture & Administration,   Product Packaging & Distribution,   foss2serve.org
Learning Activity Choosing a License

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

Social Issues & Professional Practice,   Software Engineering & Process,   Culture/Intellectual Property,   license and licensing foss2serve.org
Learning Activity 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.

Software Engineering & Process,   Coding & Style,   Java foss2serve.org
Learning Activity 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.

Software Engineering & Process,   Coding & Style,   Java foss2serve.org
Learning Activity Code Review and Documentation in a C++ Repository on GitHub

Students explore an open source project (QGIS, also known as Quantum GIS), hosted on GitHub, and answer a few questions about its meta-data. They are asked to read the implementation of its priority queue class, which has no documentation, and to write contract-style comments for the member functions in the interface file for that class.

CS1/CS2/Data Structures,   Coding & Style,   Documentation,   C++, code review, and GitHub This is an exercise I developed myself. (Stewart Weiss)
Learning Activity 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.

Operating Systems,   Product Packaging & Distribution,   Tools & Communication,   CLI, cloud, git, and openshift foss2serve
Learning Activity Comparable Interface – Code Reading

Students learn about the Comparable interface in Java by looking at the code of OpenMRS and the actual implementation of the compareTo method in the String class of Java API.

CS1/CS2/Data Structures,   Coding & Style,   code reading, cs2, Java, Open MRS, and OpenMRS foss2serve.org
Learning Activity Comprehensive Introduction to Linux Command Line

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

CS1/CS2/Data Structures,   Tools & Communication,   CLI, command line, and linux ryanstutorials.net
Learning Activity Connect with the Community

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

CS0/Non-majors,   CS1/CS2/Data Structures,   Tools & Communication,   Etherpad and IRC foss2serve.org
Learning Activity CS2 Data Structures

Using the HFOSS OpenMRS project to illustrate the use of data structures in a complex system.

CS1/CS2/Data Structures,   Coding & Style,   OpenMRS foss2serve.org
Learning Activity Data Visualization

This module aligns with CS Principles Big Idea #3: Data and Information.

Data & Information Management,   Visual Design,   Data Visualization and DataKind foss2serve.org
Learning Activity Deploy & Customize Ushahidi

Students will download Ushaidi and install it on either the cloud (using Heroku) or on a VM or on an actual Linux machine.

Operating Systems,   System Architecture & Administration,   Web Systems & Technology,   Product Packaging & Distribution,   Heroku and Ushahidi foss2serve.org
Learning Activity Document Code with Meaningful Comments

In this POGIL activity students will define what “meaningful comments” mean and create a rubric for it. Then, they will create meaningful comments for a given source file with undocumented code.

CS1/CS2/Data Structures,   Coding & Style,   Documentation,   POGIL foss2serve.org
Learning Activity Examine Branch Test Coverage

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

Software Engineering & Process,   Quality & Testing,   branch test, C++, git, QA, and Unit Testing foss2serve.org
Learning Activity 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.

Operating Systems,   Tools & Communication,   Fedora, linux, and VirtualBox foss2serve.org
Learning Activity Fedora Install Activity

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

Operating Systems,   Tools & Communication,   Fedora and Gnome foss2serve.org
Learning Activity 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.

CS1/CS2/Data Structures,   Software Engineering & Process,   Coding & Style,   Quality & Testing,   Java foss2serve.org
Learning Activity Finding the License

Student will review several pieces of software and find the licensing information.

Social Issues & Professional Practice,   Culture/Intellectual Property,   license and licensing foss2serve.org
Learning Activity FOSS Politics Writing Activity

This activity helps student investigate politics within the open-source community.

Social Issues & Professional Practice,   Philosophy/Politics,   Politics foss2serve.org
Reference Free as in Freedom: Richard Stallman’s Crusade for Free Software

Free as in Freedom interweaves biographical snapshots of GNU project founder Richard Stallman with the political, social and economic history of the free software movement.

CS0/Non-majors,   CS1/CS2/Data Structures,   Culture/Intellectual Property,   Philosophy/Politics,   GNU and Stallman
Learning Activity 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.

CS1/CS2/Data Structures,   Software Engineering & Process,   Tools & Communication,   git and version control foss2serve.org
Learning Activity Git: Cloning

Introduction to git and cloning within a virtual machine.

Software Engineering & Process,   Tools & Communication,   Cloning and git foss2serve.org
Learning Activity Git: GitHub Issues and Pull Requests

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

Software Engineering & Process,   Tools & Communication,   git and GitHub foss2serve.org
Learning Activity 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.

Software Engineering & Process,   Tools & Communication,   git, GitHub, and workflow foss2serve.org
GitHub Issues and Pull Requests

GitHub Issues and Pull Requests learning activity

Learning Activity 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.

Software Engineering & Process,   Tools & Communication,   Use & Evaluate,   Eclipse, git, Java, and OpenMRS foss2serve.org
Learning Activity 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.

Web Systems & Technology,   Tools & Communication,   cloud and openshift foss2serve
Learning Activity 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.

Software Engineering & Process,   Tools & Communication,   git and visualization foss2serve
Learning Activity Intro to Bash

Students issue commands and observe their results.

CS1/CS2/Data Structures,   System Architecture & Administration,   Tools & Communication,   bash, CLI, and command line foss2serve.org
Learning Activity 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.

CS1/CS2/Data Structures,   Quality & Testing,   Tools & Communication,   bug tracker and issue tracker foss2serve
Learning Activity Intro to Copyright and Licensing (Activity)

Participants will explore different types of licenses frequently used by open source projects.

Social Issues & Professional Practice,   Culture/Intellectual Property,   copyright and licensing foss2serve
Learning Activity Intro to FOSS (Activity)

Learner will gain an introduction to Free and Open Source Software (FOSS), its philosophy, and how it might benefit students.

Social Issues & Professional Practice,   Culture/Intellectual Property,   Philosophy/Politics,   FOSS foss2serve
Learning Activity Intro to FOSS Project Anatomy (Activity)

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

Software Engineering & Process,   Product Packaging & Distribution,   Tools & Communication,   project evaluation foss2serve
Learning Activity Intro to GitHub (Activity)

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

Software Engineering & Process,   Tools & Communication,   git and GitHub foss2serve
Learning Activity 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.

CS0/Non-majors,   CS1/CS2/Data Structures,   Software Engineering & Process,   Tools & Communication,   IRC foss2serve
Learning Activity 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.

Software Engineering & Process,   Coding & Style,   style guide foss2serve
Learning Activity Introduction to Bash Scripting

An introductory tutorial to Bash scripting under Linux.

CS1/CS2/Data Structures,   Tools & Communication,   CLI, command line, and linux ryanstutorials.net
Learning Activity 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.

CS1/CS2/Data Structures,   Software Engineering & Process,   Coding & Style,   Product Packaging & Distribution,   configure, linux, and make foss2serve.org
Learning Activity Introduction to Static Analysis

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

Software Engineering & Process,   Quality & Testing,   Tools & Communication,   C++, GoogleTest, and static analysis foss2serve
Learning Activity 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.

Software Engineering & Process,   Quality & Testing,   Tools & Communication,   tdd and unit test foss2serve
Learning Activity Learning About Operator Overloading by Code-Reading in a GitHub Repository

This is an assignment for a CS2/Data Structures class using C++ that introduces the concept of operator overloading by having students explore the GitHub repository for the Insight ToolKit (ITK),an HFOSS project. The students have to find a file, read code, and analyze and interpret the content in the source code.

CS1/CS2/Data Structures,   Coding & Style,   HFOSS,   C++, HFOSS, and Insight ToolKit This is an exercise I developed myself.
Learning Activity 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.

Software Engineering & Process,   System Architecture & Administration,   Product Packaging & Distribution,   dnf, linux, rpm, and yum foss2serve.org
Reference 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/

CS1/CS2/Data Structures,   Software Engineering & Process,   Coding & Style,   YouTube
Learning Activity Model Basic Security Threats

Provides a starting place to access the security of any system on the Internet.

Information Assurance & Security,   Privacy/Security,   foss2serve.org
Learning Activity Open Data Activity

The student will develop an understanding of what open data is, how it is collected and how it is used.

Data & Information Management,   Data Mining/Business Intelligence,   Use & Evaluate,   open data foss2serve.org
Learning Activity Open Source Communication Activity

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

CS0/Non-majors,   CS1/CS2/Data Structures,   Tools & Communication,   foss2serve.org
Reference Open Source Software: the Challenge Ahead

For open source software, the real challenge lies ahead — taking free software to the mass market, to your grandparents, to your nieces and nephews, to your friends. If we are to be successful we need to articulate the audacious goals clearly and loudly – because that’s how the community process works best.

CS0/Non-majors,   Culture/Intellectual Property,   Philosophy/Politics,  
Learning Activity Open Vs Proprietary Mock Debate

A teacher holds a mock debate in-class around which software paradigm is superior, Open Source or Proprietary. Initially the students prepare for it through research and argument structuring. Afterwards, they hold the in-class debate, allowing each side to talk and rebut. The event could also beneficially take place on IRC chat.

CS0/Non-majors,   CS1/CS2/Data Structures,   Advocacy,   Culture/Intellectual Property,   Philosophy/Politics,   debate foss2serve.org
Learning Activity OpenMRS Design Reverse Engineering Activity (Android App)

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

CS1/CS2/Data Structures,   Software Engineering & Process,   Specification & Design,   Android and OpenMRS foss2serve.org
Learning Activity OpenMRS Security Assessment 1

Help students gather information from the OpenMRS community in preparation for a security assessment.

Information Assurance & Security,   Privacy/Security,   OpenMRS foss2serve.org
Learning Activity OpenMRS Security Assessment 2

Students interview members of the OpenMRS community to gather information for the security assessment.

Information Assurance & Security,   Privacy/Security,   foss2serve.org
Learning Activity OpenMRS Security Assessment 3

Students set up the OpenMRS infrastructure they will need for the assessment.

Information Assurance & Security,   Privacy/Security,   OpenMRS foss2serve.org
Learning Activity OpenMRS Security Assessment 3B

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

Information Assurance & Security,   Software Engineering & Process,   Privacy/Security,   OpenMRS foss2serve.org
Learning Activity OpenMRS Security Assessment 4

Asset Identification in OpenMRS

Information Assurance & Security,   Privacy/Security,   OpenMRS foss2serve.org
Learning Activity OpenMRS Security Assessment 5

Controls and Design in OpenMRS

Information Assurance & Security,   Privacy/Security,   OpenMRS foss2serve.org
Learning Activity OpenMRS Security Assessment 6

Security Recommendations and Assessment Report for OpenMRS

Information Assurance & Security,   Software Engineering & Process,   Privacy/Security,   OpenMRS foss2serve.org
Learning Activity OpenMRS.Setup

Introduction to the OpenMRS project.

CS0/Non-majors,   Introduction,   HFOSS and OpenMRS foss2serve.org
Learning Activity Origins of Free Libre Software

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.

CS0/Non-majors,   CS1/CS2/Data Structures,   Advocacy,   Culture/Intellectual Property,   Introduction,   Philosophy/Politics,   free software and libre software foss2serve.org
Learning Activity 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.

CS0/Non-majors,   Software Engineering & Process,   Culture/Intellectual Property,   Use & Evaluate,   project evaluation foss2serve.org
Learning Activity 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.

Information Assurance & Security,   Software Engineering & Process,   Use & Evaluate,   HFOSS foss2serve.org
Learning Activity 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.

Information Assurance & Security,   Software Engineering & Process,   Use & Evaluate,   project evaluation foss2serve.org
Learning Activity 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.

CS1/CS2/Data Structures,   Information Assurance & Security,   Software Engineering & Process,   Use & Evaluate,   project evaluation foss2serve.org
Learning Activity 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.

CS0/Non-majors,   Software Engineering & Process,   Specification & Design,   bug report foss2serve.org
Learning Activity 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.

Social Issues & Professional Practice,   Tools & Communication,   foss2serve.org
Learning Activity Regression Test Assignment

Participants write unit tests (in GoogleTest) to establish reliable regression tests for a C++ class

CS1/CS2/Data Structures,   Quality & Testing,   C++, GoogleTest, and unit test foss2serve.org
Learning Activity Repo exploration for overloading ops in C++ Activity

Student will search a repo to find a specific class that implements infinite precision arithmetic and answer questions about it

CS1/CS2/Data Structures,   Coding & Style,   C++ and repo foss2serve.org
Learning Activity Reproduce a Bug Activity

High level description of what the student will do

CS0/Non-majors,   Quality & Testing,   foss2serve.org
Learning Activity 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.

Software Engineering & Process,   Specification & Design,   ManageIQ and requirements foss2serve.org
Learning Activity Research Bug Activity

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

CS1/CS2/Data Structures,   Quality & Testing,   Tools & Communication,   bug, bug report, and defect foss2serve.org
Learning Activity Review Coding Conventions

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

CS1/CS2/Data Structures,   Software Engineering & Process,   Coding & Style,   coding conventions and standards foss2serve.org
Learning Activity Review Coding Conventions

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

CS1/CS2/Data Structures,   Coding & Style,   coding convention and HFOSS foss2serve.org
Learning Activity 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.

Software Engineering & Process,   System Architecture & Administration,   Coding & Style,   Specification & Design,   design and software architecture foss2serve.org
Learning Activity Solving A Bug

JUnit is a large, mature free and open source software (FOSS) that is written in Java. Learners will read an open issue in JUnit, find resources to research and understand it, replicate the bug, produce some improved additional test cases while writing a better bug report, and describe the process required to fix the bug.

CS1/CS2/Data Structures,   Quality & Testing,   bug, bug report, Java, and JUnit foss2serve.org
Learning Activity Test Coverage Activity

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

Software Engineering & Process,   Quality & Testing,   coverage and testing foss2serve.org
Learning Activity 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.

CS1/CS2/Data Structures,   Coding & Style,   Quality & Testing,   Specification & Design,   Tools & Communication,   Eclipse, Java, and JUnit foss2serve.org
Learning Activity Test Installation Instructions

The goal of this activity is to test the correctness and completeness of the download and installation instructions for a FOSS project.

CS0/Non-majors,   CS1/CS2/Data Structures,   Documentation,   Quality & Testing,   Use & Evaluate,   install foss2serve.org
Learning Activity Test Release Candidate

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

Software Engineering & Process,   System Architecture & Administration,   Quality & Testing,   QA and testing foss2serve.org
Learning Activity Test Usability

Students will learn HFOSS concepts and principles and then perform and document usability tests of the OpenMRS user interface.

CS1/CS2/Data Structures,   HCI UI/UX,   Use & Evaluate,   HFOSS and usability foss2serve.org
Learning Activity Testing And Coverage Assignment

Participants write unit tests (in GoogleTest) to identify bugs in a C++ class

CS1/CS2/Data Structures,   Quality & Testing,   bug, C++, and GoogleTest foss2serve.org
Reference The Cathedral and the Bazaar reading

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

CS0/Non-majors,   Software Engineering & Process,   Culture/Intellectual Property,   FOSS Culture foss2serve.org
Learning Activity Think for Good – Hacking Government Open Data

Students will visit a government open data portal, assess the findability, readability, and usability of a data set, and articulate a strategy for improving the data set.

CS0/Non-majors,   Philosophy/Politics,   Use & Evaluate,   HFOSS and open data foss2serve.org
Learning Activity UML a Project

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

CS1/CS2/Data Structures,   Software Engineering & Process,   Documentation,   Specification & Design,   HFOSS and UML foss2serve.org
Learning Activity 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.

CS0/Non-majors,   Social Issues & Professional Practice,   Culture/Intellectual Property,   creative commons, license, and licensing foss2serve.org
Learning Activity 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.

CS0/Non-majors,   CS1/CS2/Data Structures,   Software Engineering & Process,   Culture/Intellectual Property,   creative commons, license, and licensing foss2serve.org
Learning Activity Understanding the Open in OpenSource Activity

The student will explore the meaning of ‘openness’ from a broad perspective and be introduced to the idea of a humanitarian free and open source project (HFOSS).

CS1/CS2/Data Structures,   Culture/Intellectual Property,   HFOSS and open foss2serve.org
Learning Activity 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.

CS1/CS2/Data Structures,   Software Engineering & Process,   Quality & Testing,   QA and unit test foss2serve.org
Learning Activity Using Open APIs In Mobile Apps Activity

In this activity students will learn about Open APIs, how does it relate to open source and how to use in building a mobile application.

CS1/CS2/Data Structures,   Coding & Style,   API and mobile foss2serve.org
Learning Activity UX Review

Students will learn about user experience fundamentals and then interact with an existing open source software project to perform a Usability Review. A usability review involves observing a user (another student) while they attempt to use the software, and recording observations. The students will create a Usability Report that details their observations in a structured manner, and pulls together a larger understanding of the results.

CS0/Non-majors,   HCI UI/UX,   Use & Evaluate,   Visual Design,   HCI, human computer interaction, usability, and UX foss2serve.org
Learning Activity Voting Program Activity

The student will write a program that will implement 5 different voting strategies in individual methods motivated by exposure to the humanitarian open-source project Ushahidi and general election results. The activity as presented makes use of the version control systems git and GitHub to encourage incremental software development, unit testing and documentation.

CS1/CS2/Data Structures,   Coding & Style,   documentation, git, GitHub, unit test, Ushahidi, and version control foss2serve.org
Learning Activity Why Use Version Control

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

CS1/CS2/Data Structures,   Tools & Communication,   git and version control foss2serve.org
Learning Activity 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.

CS1/CS2/Data Structures,   Tools & Communication,   git and version control foss2serve.org
Learning Activity Working With Cloned Module

Building is the process of converting the source code into an executable by compiling and linking. In this document, we will build and execute an open source module cloned using git.

System Architecture & Administration,   Product Packaging & Distribution,   clone and git foss2serve.org
Learning Activity Write a Bug Report

In this part, students will gain some basic knowledge about bug tracking systems, and how that can be used in FOSS projects. Students will also check and confirm the existence of a reported bug (both in a stable version, and in an unstable version), and report out their findings using Bugzilla.

CS1/CS2/Data Structures,   Quality & Testing,   bug, bug report, bug tracker, and issue tracker foss2serve.org
Return to Teaching Materials