Teaching Materials:
Material Type | Title | Overview | Courses | FOSS Area | Tags | Source |
---|---|---|---|---|---|---|
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, | |
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 |
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 |
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 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.org |
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, licensing, | 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 | 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 | 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 | 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 | |
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 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. |
CS1/CS2/Data Structures, Information Assurance & Security | Privacy/Security | OpenMRS, | 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 | 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 | FOSS Politics Writing Activity |
This activity helps student investigate politics within the open-source community. |
Social Issues & Professional Practice | Philosophy/Politics | politics, | 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 | 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 | 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, 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, Ushahidi, | 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 | |
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 | 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, 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 | 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 | 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, 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, defect, | 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 | 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 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 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 | 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 | 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 | 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, 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, 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 | 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, 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, 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 | 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, 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, 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 | 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, 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 | 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 | 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 | Finding the License |
Student will review several pieces of software and find the licensing information. |
Social Issues & Professional Practice | Culture/Intellectual Property | license, licensing, | 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 |
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 | 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 | 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 | 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, |