Learning Materials:
Material Type | Title | Overview | Courses | FOSS Area | Tags | Source |
---|---|---|---|---|---|---|
Repo | EBook Foundation |
Collection of links to free computing books, courses, problems and more! |
CS1/CS2/Data Structures, Information Assurance & Security, Intelligent Systems, Programming Languages, Software Engineering & Process, Teaching Aid | OER, | Francesco Maiorana | |
Repo | Runestone Academy |
Runestone is a project that has four main parts to it: 1. A Textbook hosting service that allows you and your students to access any of the textbooks written using their tools. |
CS0/Non-majors, CS1/CS2/Data Structures, Data Mining/Business Intelligence, Web Systems & Technology | Coding & Style | OER, | Jan Pearce |
Reference | Demystifying Open Source Licensing |
From the book: |
CS0/Non-majors, CS1/CS2/Data Structures, Social Issues & Professional Practice, Software Engineering & Process | Culture/Intellectual Property | Gustavo Pinto | |
Reference | The Open Organization Guide for Educators – PDF |
This is a collection of experience reports from instructors who have employed open source in their classrooms in a variety of manners. The text is free. The link is to a PDF of the book. |
CS0/Non-majors, CS1/CS2/Data Structures, Software Engineering & Process | Teaching aid, | Bryan Behrenshousen | |
Reference | The Open Organization Guide for Educators |
This is a collection of experience reports from instructors who have employed open source in their classrooms in a variety of manners. The text is free. The link is to the source of the book. |
CS0/Non-majors, CS1/CS2/Data Structures, Software Engineering & Process | Teaching aid, | Bryan Behrenshousen | |
Repo | Open Education Resources for FLOSS |
Collection of links to Open Education Resources with an open source flavor. |
CS0/Non-majors, CS1/CS2/Data Structures, Software Engineering & Process | Introduction | L. Memsm | |
Reference | Understanding Open Source Software, and How It Makes You Money Online |
Ezequiel Bruni’s article that includes an introduction to open source as well as a discussion on the finance model of open source software. |
CS0/Non-majors, CS1/CS2/Data Structures, Social Issues & Professional Practice | FOSS History, Philosophy/Politics | business, | Recommended by Kate Wilson |
Learning Activity | FOSS Community Structures |
We refer to FOSS culture or community (singular), but every project is its own community, and has its own rules, processes, and norms. This POGIL activity explores some elements, structures, and principles that are common across many (not all) FOSS and HFOSS communities. |
CS0/Non-majors, CS1/CS2/Data Structures, Social Issues & Professional Practice, Software Engineering & Process | Culture/Intellectual Property, Introduction | Clif Kussmaul | |
Reference | Rendered Language for Documentation |
Opensource.com article that describes the benefits for using a rendered language (not wikis) for documentation. |
CS0/Non-majors, CS1/CS2/Data Structures | Documentation | rendered language, | Opensource.com |
Reference | Wikis for Documentation |
Opensource.com article describing how wikis can be used for FOSS project documentation. |
CS0/Non-majors, CS1/CS2/Data Structures, Data & Information Management | Culture/Intellectual Property, Documentation | wiki, | Opensource.com |
Reference | Contributing to Open Source Documentation |
This blog presents a step-by-step approach for contributing documentation to a project on GitHub. |
CS0/Non-majors, CS1/CS2/Data Structures, Data & Information Management | Documentation | documentation, GitHub, how-to, | Andrew Chalkley |
Reference | Mozilla Documentation Sprint How-To |
This is a guide to organizing a documentation sprint from Mozilla. It contains advice and tips from people who have organized doc sprints, to help you in organizing one, too. |
CS0/Non-majors, CS1/CS2/Data Structures, Data & Information Management | Documentation | documentation, how-to, sprint, | Mozilla |
Reference | PHP Documentation Sprint |
This page reports on the results of a PHP Documentation Sprint. |
CS0/Non-majors, CS1/CS2/Data Structures, Data & Information Management, HCI UI/UX | Documentation | documentation, PHP, sprint, | Gingerling - phplist.org |
Learning Activity | Drupal Documentation Sprint |
A Drupal “documentation sprint” means getting documentation writers together for a set amount of time – from a few hours to a few days usually – to write and edit documentation. This page contains information about how to set up and run such a sprint. |
CS0/Non-majors, CS1/CS2/Data Structures, Software Engineering & Process, System Architecture & Administration | Documentation | documentation, Drupal, how-to, sprint, | Drupal.org |
Learning Activity | Community Characterization Worksheet | The learner will examine a community/project and deduce how the community is organized. | CS1/CS2/Data Structures, Project Management, Software Engineering & Process | Culture/Intellectual Property, Use & Evaluate | project evaluation, | Dave Shein, RIT |
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 | 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 | 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. |
CS0/Non-majors, CS1/CS2/Data Structures, Social Issues & Professional Practice, Software Engineering & Process | Culture/Intellectual Property, Philosophy/Politics | copyright, | Dr. Eric Faden, Bucknell University |
Reference | Stallmans 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, Social Issues & Professional Practice | Culture/Intellectual Property, FOSS History | O'Reilly | |
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, GitHub, | Stewart Weiss |
Reference | Live Coding |
Live Coding – every Wednesday 1pm Eastern. |
CS1/CS2/Data Structures, Software Engineering & Process | Coding & Style | YouTube | |
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, Stallman, | |
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 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 | 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 | 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, OpenMRS, | foss2serve.org |
Learning Activity | OpenMRS Security Assessment 2 |
Students interview members of the OpenMRS community to gather information for the security assessment. |
CS1/CS2/Data Structures, Information Assurance & Security | Privacy/Security | OpenMRS, | 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 | 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 |
Reference | 11 ways to get involved in HFOSS |
11 ways to get involved in HFOSS |
CS0/Non-majors, CS1/CS2/Data Structures | Advocacy, Culture/Intellectual Property, Documentation, Introduction | Heather Leson / Open Health News | |
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, Insight ToolKit, | Stewart Weiss |
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, Java, OpenMRS, | 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 | 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, 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++, repo, | 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, defect, | 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, JUnit, | 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 | 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 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, 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++, GoogleTest, | 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, 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, CS1/CS2/Data Structures, Software Engineering & Process | Culture/Intellectual Property | creative commons, license, 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, 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, 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, mobile, | 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, 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, 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 | 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, issue tracker, | 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 | 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, Java, | 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 | 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, history, | 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 | 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, 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, 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, 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 | 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 | 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, libre software, | 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, standards, | foss2serve.org |
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, make, | 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 | 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 | Blog Activity | Learners will create a personal blog and post to it. | CS0/Non-majors, CS1/CS2/Data Structures | |||
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, |