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 | |
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 | |
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 | Software Release Life Cycles |
This POGIL activity explores how a software release changes over time as it is created, matures, and becomes obsolete. We call this the software release life cycle, because it parallels how animals are born, grow, mature, and die. This is different from (but related to) how the software is developed, which is the software development process or the software development life cycle (SDLC). |
Project Management, Software Engineering & Process, System Architecture & Administration | Clif Kussmaul | ||
Learning Activity | Software Development Life Cycles |
This POGIL activity explores ways to organize 4 categories of activities (analysis, design, coding, testing) into a software development process or life cycle (SDLC). This parallels how an animal is born, matures, and dies. |
Project Management, Software Engineering & Process | Clif Kussmaul | ||
Learning Activity | Software Development Activities |
For homework and other small programs, one person (or a small team) can do all of the work. However, this does not scale well to larger teams and projects. This POGIL activity explores some of the activities involved in software development. |
Social Issues & Professional Practice, Software Engineering & Process | 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 | 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 | |
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 | 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 | |
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 | The Open Source Way |
The Open Source Way is a book shows how to (and how not to) engage with the community members on projects of any type by practicing the open source way. This handbook distills years of knowledge our community members have gained while running open source projects. |
CS0/Non-majors, Software Engineering & Process | Advocacy, Culture/Intellectual Property, Introduction, Philosophy/Politics | ||
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 | Live Coding |
Live Coding – every Wednesday 1pm Eastern. |
CS1/CS2/Data Structures, Software Engineering & Process | Coding & Style | YouTube | |
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 | 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 | 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.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 | 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 | 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 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 | 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 | 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, unit test, | 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 | OpenMRS Security Assessment 6 |
Security Recommendations and Assessment Report for OpenMRS |
Information Assurance & Security, Software Engineering & Process | Privacy/Security | OpenMRS, | 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 | 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, requirements, | 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, software architecture, | 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, testing, | 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, testing, | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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, yum, | 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 |
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, | Eric Raymond |
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, 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 |