FOSS Field Trip (Activity)

From Foss2Serve
(Difference between revisions)
Jump to: navigation, search
(Part 2 - OpenHub)
 
(65 intermediate revisions by 12 users not shown)
Line 1: Line 1:
== Browsing a Forge ==
+
__NOTOC__
  
=== Preparation: ===
+
{{Learning Activity Overview
 +
|title=
 +
FOSS Field Trip - Browsing for FOSS Projects
 +
|overview=  
 +
Learners will explore the breadth of available FOSS projects as well as differences between GitHub and OpenHub.
 +
|prerequisites=
 +
None.
 +
|objectives=
 +
# Search for FOSS projects on both GitHub and OpenHub.
 +
# Use and describe different features of GitHub and OpenHub.
 +
|process skills=
 +
# Critical Thinking
 +
# Information Processing
 +
}}
  
{| border="1"
+
=== Background ===
|-  
+
 
|'''Description''' || 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.   
+
FOSS predates the web, but the web is now essential for most FOSS projects.
 +
People locate and access FOSS projects on the web, and FOSS communities collaborate on the web.
 +
A FOSS project has a set of files (including source code, documentation, etc), usually organized into folders.
 +
Most FOSS projects keep the complete history of every file, to know what changes were made, by who, and when.
 +
The set of files and their history is a '''repository''', or a '''repo''' for short.
 +
 
 +
Most FOSS projects also use web-based collaborative tools to develop and share code and documentation,
 +
track who does what, and discuss questions, problems, and suggestions.
 +
A software platform with these tools is a '''forge'''.
 +
Some forges support ''one'' FOSS project (usually a ''large'' project),
 +
and other forges host ''many'' independent FOSS projects.
 +
Well known forges include [https://github.com GitHub], [https://sourceforge.net SourceForge], and [https://bitbucket.org Bitbucket].
 +
Note that the software used by such sites is also called a '''forge''';
 +
for example, [https://gitlab.com GitLab], [https://redmine.org RedMine], and [https://trac.edgewall.org Trac]
 +
are FOSS forges that anyone can install and modify, unlike [https://github.com GitHub].
 +
 
 +
This activity also uses '''OpenHub''' (formerly '''Ohloh'''),
 +
which is ''not'' a forge, but mines data from forges to analyze project activity.
 +
 
 +
=== Directions ===
 +
 
 +
* ''POSSE Attendees'': Post your answers on your foss2serve wiki page.
 +
* ''Students'': Ask your instructor how to report your answers.
 +
 
 +
==== Part 1 - GitHub ====
 +
 
 +
In Part 1 you will search '''GitHub''' for projects. Do the following:
 +
# Open a new browser tab and go to: https://github.com
 +
# Find the search box near the top of the page, type "education", and press enter or click on the search icon.
 +
## How many ''repositories'' are found for "education"? {{Answer|~25,000 (as of 2019-01)}}
 +
## How many of these repos use the JavaScript language? (Hint: Find a summary table.) {{Answer|~3000 (as of 2019-01)}}
 +
## In the first page of results, which repo was updated ''most'' recently? Which was updated ''least'' recently? {{Answer|Answers will vary, and may range from a few hours ago to several years ago.}}
 +
# Many repos are small and inactive. To see the most active repos, find ''Sort'' and pick ''most stars''.
 +
## Which ''education'' repo has the most stars? How many? {{Answer|freeCodeCamp with ~300k (as of 2019-01)}}
 +
# Click on this repo to see its overview page. Scroll down past the list of files to see a project description.
 +
# In GitHub, each reported problem or suggestion is an '''issue''', the code and documentation to fix an issue is a '''pull request''', and a pull request that is accepted and added to a repo is a '''commit'''. Each issue and pull request is either ''open'' (in progress) or ''closed'' (done). (You will learn more about all of this later.)
 +
## At the top of the overview page, click on the ''Issues'' tab. You should see a list. How many issues are ''open''? ''closed''? {{Answer|~350 and ~13k for freeCodeCamp (as of 2019-01)}}
 +
## Click on the ''Pull requests'' tab. You should see a list. How many pull requests are ''open''? ''closed''? {{Answer|~5000 and ~16k for freeCodeCamp (as of 2019-01)}}
 +
## Click on the ''Insights'' tab. What do you see? {{Answer|Bargraphs of issues, pull requests, and commits this week.}}
 +
## Within ''Insights'', go to the left menu and click on ''Commits''. What do you see? {{Answer|A bargraph showing the number of commits each week for the last year.}}
 +
# Go back to the main GitHub page.
 +
## Search for "humanitarian" projects. How many repos are found? {{Answer|~350 (as of 2019-01)}}
 +
## Find ''HTBox/crisischeckin''. How many stars does it have? What language(s) does it use? When was the last update? {{Answer|~200 stars, C#, date will vary (as of 2019-01)}}
 +
## Search for "disaster management", or terms that interest you. How many repos are found? {{Answer|Varies}}
 +
 
 +
Keep the GitHub browser tab open as you move on to Part 2.
 +
 
 +
==== Part 2 - OpenHub ====
 +
 
 +
In Part 2, you will search '''OpenHub''' for projects. Do the following:
 +
# Open a new browser tab and go to: https://www.openhub.net
 +
# In the search box, type "education".
 +
## The listing shows the number of ''pages'', not the number of ''projects''. By default, each page shows 10 projects. How many ''projects'' were found? {{Answer|~230 pages -> ~2300 projects (as of 2019-01)}}
 +
# Many projects are small and inactive. To see the most active projects, find ''Sort by'' and pick ''Activity Level''.
 +
## Which (if any) of the most active projects do you recognize? {{Answer|Varies, maybe Moodle, Sakai, DSpace.}}
 +
# In the ''Sort by'' text box pick ''Relevance''. If necessary, go to the bottom of the screen and advance to pages 2, 3, ... in the listing until you find ''KDE Education'', and click on it.
 +
## From the ''KDE Education'' page, click on ''Code Locations'' (on the right side). Are any of the repo locations on GitHub? {{Answer|No, all are on kde.org (as of 2019-01)}}
 +
## Go back to ''KDE Education'', and click on ''Similar Projects'' (below ''Code Locations''). How many similar projects are listed? {{Answer|~10 (as of 2019-01)}}
 +
## This page contains general information for the similar projects. What info is shown for each? {{Answer|name, activity level, language, license (as of 2019-01)}}
 +
# Repeat your OpenHub search for both "humanitarian" and "disaster management", or terms that interest you.
 +
## How many projects did each search return? {{Answer|Varies. ~30 for humanitarian, ~30 for disaster mgmt (as of 2019-01)}}
 +
# Some projects show "Activity Not Available". Click on the pyramid icon and read the page shown. Why is "activity not available"? {{Answer|OpenHub could not access or analysis project data.}}
 +
# Click on ''Organizations'' (near the top of the main OpenHub page).
 +
## What info is shown? {{Answer|Most active orgs, newest orgs, stats by sector, etc (as of 2019-01)}}
 +
# From ''Organizations'', search for "OpenMRS".
 +
## Do the search results show projects or organizations? {{Answer|Organizations}}
 +
## Find the project "OpenMRS Core". When was the last commit? {{Answer|Varies. 11 months ago (as of 2019-01)}}
 +
# Go back to '''GitHub''' and search for the project "OpenMRS Core"When was the last commit? {{Answer|Varies. 4 days ago (as of 2019-01)}}
 +
## Why do you think these sites have different info? {{Answer|OpenHub might be looking in the wrong place, or misreading data.}}
 +
# What are some benefits & drawbacks of searching for a project in both GitHub & OpenHub? {{Answer|???}}
 +
 
 +
=== Deliverables ===
 +
 
 +
* ''POSSE Attendees'': Please post the answers to these questions on your foss2serve user wiki page.
 +
* ''Students'': Wiki posting describing your explorations of GitHub and OpenHub.
 +
 
 +
= Notes for Instructors =
 +
 
 +
The remaining sections of this document are intended for the instructor.
 +
They are not part of the learning activity that would be given to students.
 +
 
 +
=== Assessment ===
 +
 
 +
* How will the activity be graded?
 +
* How will learning will be measured?
 +
* Include sample assessment questions/rubrics.
 +
 
 +
{| class="wikitable"
 +
! Criteria
 +
! Level 1 (fail)
 +
! Level 2 (pass)
 +
! Level 3 (good)
 +
! Level 4 (exceptional)
 
|-
 
|-
|'''Source''' ||[http://www.xcitegroup.org/softhum/doku.php?id=f:assignment_ossfieldtrip1detail Detailed FOSS Field Trip]
+
| '''The purpose of the project'''
 +
|  
 +
|  
 +
|
 +
|
 +
 
 
|-
 
|-
|'''Prerequisite Knowledge''' || None.
+
| '''Why the project is open source'''
|-
+
|  
|'''Estimated Time to Completion''' || 30-60 minutes
+
|  
|-
+
|  
|'''Learning Objectives''' ||Ability to: 1) Locate a FOSS project on SourceForge and Ohloh, 2) Describe basic features of the project including start date, programming language, code size, and recent activity
+
|  
|-
+
 
|'''Materials/Environment''' || Access to Internet/Web and web browser.
+
|-
+
|'''Additional Information''' || None
+
|-
+
|'''Rights''' || Licensed CC BY-SA
+
|-
+
|'''Turn In''' || Wiki posting describing your explorations of forges and Ohloh
+
 
|}
 
|}
  
=== Background: ===
+
=== Comments ===
Open source pre-dates the Web, but the Web and Internet connectivity have been essential for the blossoming of FOSS in recent years. FOSS projects need to be available on the Web to ever gain much attention. There are a growing number of sites (often called “forges”) that provide a home and visibility to FOSS projects (although many of the biggest projects live on their own sites).
+
  
=== Directions: ===
+
* What should the instructor know before using this activity?
Please keep notes on your answers to the following questions.  You will use them as part of the '''[[Project_Evaluation_Activity | Project Selection Activity]]''' and '''[[Blog_Activity | Blogging Activity]]''' which you will work on next.
+
* What are some likely difficulties that an instructor might encounter using this activity?
==== Part 1 - SourceForge ====
+
One of the best known of these FOSS project hosting sites is Source Forge. In this activity you will explore projects in SourceForge to gain an understanding of the key characteristics of a FOSS project.
+
  
Do the following:
+
=== Variants and Adaptations: ===
# Go to: http://sourceforge.net/
+
# Use the Search feature in the center of the screen to view applications in an area of interest to you (e.g., gaming, sports, music, computing, etc.).
+
# How many projects are there in this category?
+
# How many different programming languages are used to write software in this category?
+
# List the top four programming languages used to write programs in this category.
+
# Identify the meaning of each of the statuses below:
+
## Inactive
+
## Mature
+
## Production/Stable
+
## Beta
+
## Alpha
+
## Pre-Alpha
+
## Planning
+
# Compare two projects in this category that have two different statuses. Describe the differences between the statuses.
+
# Which projects are the most used? How do you know?
+
# Pick a project in your category. Answer the questions below:
+
## What does it do?
+
## What programming language is the project written in?
+
## Who is likely to use the project? How do you know this?
+
## When was the most recent change made to the project?
+
## How active is the project? How can you tell?
+
## How many committers does the project have?
+
## Would you use the project? Why or why not?
+
  
==== Part 2 - Ohloh ====
+
[https://github.com/ChrisMurphyOnline/open-source-software-development-course/blob/master/activities/foss-evaluation-activity.txt POGIL-style combined FOSS Field Trip and Project Evaluation] used by [[User:Cmurphy|Chris Murphy]] in his [[FOSS Course, UPenn, Murphy]].
In this activity, you will use Ohloh to gather information about a Humanitarian Free and Open Source project named Mifos.  
+
  
'''Explore Mifos:'''
+
{{Learning Activity Info
# Go to: http://www.ohloh.net/
+
|acm unit=
# In the upper-most search space, enter:  Mifos
+
|acm topic=
# Click on the Mifos logo.
+
|difficulty=
# What is the main programming language used in Mifos?
+
|time=
# How many lines of code does Mifos have?
+
30-60 minutes
# Click on "User & Contributor Locations" (lower right side of screen). List some of the locations of the developers.
+
|environment=
# Go back to the main Mifos page. Click on the "Languages" link.  How many languages is Mifos written in?
+
Access to Internet/Web and web browser.
# What language has the second highest number of lines of code?
+
|author=
# Of the programming languages used in Mifos, which language the has the highest comment ratio?
+
|source=
# Click on the “Contributors” link under "SCM Data" menu.  
+
[http://www.xcitegroup.org/softhum/doku.php?id=f:assignment_ossfieldtrip1detail Detailed FOSS Field Trip]
# What is the average number of contributors in the last 12 months?
+
|license=
# Scroll down to the Top Contributors section. How long have the top three contributors been involved in the project?
+
{{License CC BY SA}}
# Use the information on the project summary page to compute the 12-month average of commits. What is the average number of commits over the past 12 months?.
+
}}
  
--------------------
+
=== Suggestions for Open Source Community ===
This work is licensed under a
+
[http://creativecommons.org/licenses/by-sa/4.0/ Creative Commons Attribution-ShareAlike 4.0 International License]
+
  
[[File:CC_license.png]]
+
Suggestions for an open source community member who is working in conjunction with the instructor.
  
[[Category: Learning_Activity]]
+
[[Category:Instructor Activities]]
 +
[[Category:Learning Activity]]
 
[[Category:Introduction]]
 
[[Category:Introduction]]
 +
[[Category:CS Principles]]
 +
[[Category:CS1]]
 +
[[Category: Good Draft]]

Latest revision as of 15:07, 14 April 2019


Title

FOSS Field Trip - Browsing for FOSS Projects

Overview

Learners will explore the breadth of available FOSS projects as well as differences between GitHub and OpenHub.

Prerequisites

None.

Learning
Objectives
After successfully completing this activity, the learner should be able to:
  1. Search for FOSS projects on both GitHub and OpenHub.
  2. Use and describe different features of GitHub and OpenHub.
Process Skills
Practiced
  1. Critical Thinking
  2. Information Processing


Background

FOSS predates the web, but the web is now essential for most FOSS projects. People locate and access FOSS projects on the web, and FOSS communities collaborate on the web. A FOSS project has a set of files (including source code, documentation, etc), usually organized into folders. Most FOSS projects keep the complete history of every file, to know what changes were made, by who, and when. The set of files and their history is a repository, or a repo for short.

Most FOSS projects also use web-based collaborative tools to develop and share code and documentation, track who does what, and discuss questions, problems, and suggestions. A software platform with these tools is a forge. Some forges support one FOSS project (usually a large project), and other forges host many independent FOSS projects. Well known forges include GitHub, SourceForge, and Bitbucket. Note that the software used by such sites is also called a forge; for example, GitLab, RedMine, and Trac are FOSS forges that anyone can install and modify, unlike GitHub.

This activity also uses OpenHub (formerly Ohloh), which is not a forge, but mines data from forges to analyze project activity.

Directions

  • POSSE Attendees: Post your answers on your foss2serve wiki page.
  • Students: Ask your instructor how to report your answers.

Part 1 - GitHub

In Part 1 you will search GitHub for projects. Do the following:

  1. Open a new browser tab and go to: https://github.com
  2. Find the search box near the top of the page, type "education", and press enter or click on the search icon.
    1. How many repositories are found for "education"?
    2. How many of these repos use the JavaScript language? (Hint: Find a summary table.)
    3. In the first page of results, which repo was updated most recently? Which was updated least recently?
  3. Many repos are small and inactive. To see the most active repos, find Sort and pick most stars.
    1. Which education repo has the most stars? How many?
  4. Click on this repo to see its overview page. Scroll down past the list of files to see a project description.
  5. In GitHub, each reported problem or suggestion is an issue, the code and documentation to fix an issue is a pull request, and a pull request that is accepted and added to a repo is a commit. Each issue and pull request is either open (in progress) or closed (done). (You will learn more about all of this later.)
    1. At the top of the overview page, click on the Issues tab. You should see a list. How many issues are open? closed?
    2. Click on the Pull requests tab. You should see a list. How many pull requests are open? closed?
    3. Click on the Insights tab. What do you see?
    4. Within Insights, go to the left menu and click on Commits. What do you see?
  6. Go back to the main GitHub page.
    1. Search for "humanitarian" projects. How many repos are found?
    2. Find HTBox/crisischeckin. How many stars does it have? What language(s) does it use? When was the last update?
    3. Search for "disaster management", or terms that interest you. How many repos are found?

Keep the GitHub browser tab open as you move on to Part 2.

Part 2 - OpenHub

In Part 2, you will search OpenHub for projects. Do the following:

  1. Open a new browser tab and go to: https://www.openhub.net
  2. In the search box, type "education".
    1. The listing shows the number of pages, not the number of projects. By default, each page shows 10 projects. How many projects were found?
  3. Many projects are small and inactive. To see the most active projects, find Sort by and pick Activity Level.
    1. Which (if any) of the most active projects do you recognize?
  4. In the Sort by text box pick Relevance. If necessary, go to the bottom of the screen and advance to pages 2, 3, ... in the listing until you find KDE Education, and click on it.
    1. From the KDE Education page, click on Code Locations (on the right side). Are any of the repo locations on GitHub?
    2. Go back to KDE Education, and click on Similar Projects (below Code Locations). How many similar projects are listed?
    3. This page contains general information for the similar projects. What info is shown for each?
  5. Repeat your OpenHub search for both "humanitarian" and "disaster management", or terms that interest you.
    1. How many projects did each search return?
  6. Some projects show "Activity Not Available". Click on the pyramid icon and read the page shown. Why is "activity not available"?
  7. Click on Organizations (near the top of the main OpenHub page).
    1. What info is shown?
  8. From Organizations, search for "OpenMRS".
    1. Do the search results show projects or organizations?
    2. Find the project "OpenMRS Core". When was the last commit?
  9. Go back to GitHub and search for the project "OpenMRS Core". When was the last commit?
    1. Why do you think these sites have different info?
  10. What are some benefits & drawbacks of searching for a project in both GitHub & OpenHub?

Deliverables

  • POSSE Attendees: Please post the answers to these questions on your foss2serve user wiki page.
  • Students: Wiki posting describing your explorations of GitHub and OpenHub.

Notes for Instructors

The remaining sections of this document are intended for the instructor. They are not part of the learning activity that would be given to students.

Assessment

  • How will the activity be graded?
  • How will learning will be measured?
  • Include sample assessment questions/rubrics.
Criteria Level 1 (fail) Level 2 (pass) Level 3 (good) Level 4 (exceptional)
The purpose of the project
Why the project is open source

Comments

  • What should the instructor know before using this activity?
  • What are some likely difficulties that an instructor might encounter using this activity?

Variants and Adaptations:

POGIL-style combined FOSS Field Trip and Project Evaluation used by Chris Murphy in his FOSS Course, UPenn, Murphy.

ACM BoK
Area & Unit(s)
ACM BoK
Topic(s)
Difficulty
Estimated Time
to Complete

30-60 minutes

Environment /
Materials

Access to Internet/Web and web browser.

Author(s)
Source

Detailed FOSS Field Trip

License

This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License

CC license.png


Suggestions for Open Source Community

Suggestions for an open source community member who is working in conjunction with the instructor.

Personal tools
Namespaces
Variants
Actions
Events
Learning Resources
HFOSS Projects
Evaluation
Navigation
Toolbox