Learning Materials:
Material Type | Title | Overview | Courses | FOSS Area | Tags | Source |
---|---|---|---|---|---|---|
CS499 – Open Source Software Development | Project Management, Software Engineering & Process | Culture/Intellectual Property, FOSS History, Philosophy/Politics, Product Packaging & Distribution, Specification & Design, Tools & Communication | ||||
Template for Free and Open-Source Software Course | CS1/CS2/Data Structures, Software Engineering & Process | Coding & Style, Culture/Intellectual Property, Documentation, Philosophy/Politics, Specification & Design, Tools & Communication, Use & Evaluate | course template, | |||
RPI CSCI-4961-01 Intro to Open Source | Software Engineering & Process | Coding & Style, Documentation, Tools & Communication | ||||
Learning Activity | 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. |
Project Management, Software Engineering & Process | Tools & Communication | Clif Kussmaul | |
Learning Activity | 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. |
Project Management, Software Engineering & Process | Tools & Communication | Clif Kussmaul | |
Learning Activity | Story Point Estimation |
This POGIL activity will help you learn about estimation techniques, and specifically story point estimation. |
CS0/Non-majors, Project Management, Social Issues & Professional Practice, Software Engineering & Process | Tools & Communication | Clif Kussmaul | |
Learning Activity | 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. |
CS0/Non-majors, Social Issues & Professional Practice, Software Engineering & Process | Introduction, Tools & Communication | Clif Kussmaul | |
Learning Activity | 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. |
CS0/Non-majors, Social Issues & Professional Practice, Software Engineering & Process | Introduction, Privacy/Security, Tools & Communication | Clif Kussmaul | |
Learning Activity | 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. |
CS0/Non-majors, Social Issues & Professional Practice, Software Engineering & Process | Introduction, Tools & Communication | Clif Kussmaul | |
Learning Activity | 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. |
Software Engineering & Process | Coding & Style, Tools & Communication | Firefox, Mozilla, | Mozilla |
Learning Activity | 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. |
CS1/CS2/Data Structures, Software Engineering & Process | Tools & Communication | SVN, version control, | |
Reference | 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. |
CS0/Non-majors, Project Management, Social Issues & Professional Practice, Software Engineering & Process | Culture/Intellectual Property, FOSS History, Introduction, Philosophy/Politics, Tools & Communication, Use & Evaluate | Marko Schütz - University of Puerto Rico Mayagüez | |
Reference | 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/ |
CS0/Non-majors, CS1/CS2/Data Structures, Project Management, Social Issues & Professional Practice, Software Engineering & Process | Culture/Intellectual Property, FOSS History, Introduction, Philosophy/Politics, Tools & Communication, Use & Evaluate | Marko Schütz - University of Puerto Rico Mayagüez | |
Learning Activity | 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). |
CS1/CS2/Data Structures, Operating Systems, System Architecture & Administration | Coding & Style, Tools & Communication | bash, | Ryan's Tutorials |
Reference | 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. |
Project Management, Software Engineering & Process | Coding & Style, Culture/Intellectual Property, Documentation, Philosophy/Politics, Product Packaging & Distribution, Quality & Testing, Specification & Design, Tools & Communication | Karl Fogel | |
Reference | IRC “Cheat Sheet” |
A printable “cheatsheet” of common IRC commands |
Tools & Communication | commands, IRC, | Opensource.com | |
Learning Activity | Introduction to Bash Scripting |
An introductory tutorial to Bash scripting under Linux. |
CS1/CS2/Data Structures | Tools & Communication | CLI, command line, linux, | ryanstutorials.net |
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, linux, | ryanstutorials.net |
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.org |
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, GitHub, | foss2serve.org |
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.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, issue tracker, | foss2serve.org |
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, visualization, | 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, openshift, | foss2serve.org |
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, unit test, | foss2serve.org |
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, openshift, | 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, static analysis, | 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 | |
Learning Activity | Handle an OpenMRS Ticket |
Use git and Eclipse to handle an OpenMRS ticket. |
Software Engineering & Process | Tools & Communication, Use & Evaluate | Eclipse, git, Java, OpenMRS, | 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, workflow, | foss2serve.org |
Learning Activity | Git: Cloning |
Introduction to git and cloning within a virtual machine. |
Software Engineering & Process | Tools & Communication | cloning, git, | 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, Gnome, | 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, VirtualBox, | foss2serve.org |
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, IRC, | 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, GitHub, | 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 | |
PSU – Open Source Software Development (Summer 2016) | Software Engineering & Process | Specification & Design, Tools & Communication | ||||
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, defect, | 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, JUnit, | 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, 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, version control, | foss2serve.org |
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, version control, | foss2serve.org |
Learning Activity | Intro to Bash |
Students issue commands and observe their results. |
CS1/CS2/Data Structures, System Architecture & Administration | Tools & Communication | bash, CLI, command line, | foss2serve.org |
Learning Activity | 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. |
CS0/Non-majors, CS1/CS2/Data Structures | Tools & Communication | blog, | 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, 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, 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, issue tracker, | foss2serve.org |
Learning Activity | 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 | CS0/Non-majors, CS1/CS2/Data Structures | Tools & Communication | forge, |