Possible Pathways and Learning Activities

From Foss2Serve
(Difference between revisions)
Jump to: navigation, search
m (Curated Paths: Fix terminology)
m
 
(13 intermediate revisions by one user not shown)
Line 1: Line 1:
 
== Pathway Model - Candidate Paths to HFOSS Contribution ==
 
== Pathway Model - Candidate Paths to HFOSS Contribution ==
  
This page contains a list of possible paths for the HFOSS contribution pathways model and learning activities that may support a path step or allow students to gain general HFOSS knowledge.
+
{{Category:Pathways}}
  
== Glossary ==
+
This page contains:
 +
* a list of possible pathways for the HFOSS contribution pathways model
 +
* learning activities that may support a path step
 +
* learning activities that may help students gain general HFOSS knowledge.
  
The following terms are used below to make the list more concise and avoid duplication.
+
See the [[Glossary]] for terms used to make the lists more concise and avoid duplication.
* '''Contributor''' - anyone who contributes to FOSS – code, design, docs, feedback, ideas, etc.
+
* '''FOSS''' - free & open source software. “a FOSS”: a project; “FOSS”: the broader culture.
+
* '''Forge''' - web site containing many FOSS – e.g. Sourceforge
+
* '''Lead''' - anyone who coordinates or directs other contributors
+
* '''Planet''' - blog aggregator for a FOSS or topic
+
  
 +
== Curated Pathways ==
  
== Curated Paths ==
+
# [[:Category:Verify a Bug (Pathway)|Verify a Bug (Pathway)]]
 
+
#* Examples: [[Bug Gardening]]
# [http://foss2serve.org/index.php/Pathway_-_Verify_a_Bug Verify a bug]
+
# [[:Category:Fix a Bug (Pathway)|Fix a Bug (Pathway)]]
# [http://foss2serve.org/index.php/Pathway_-_Fix_a_Bug Fix a bug]
+
#* Examples: [[Document Code with Meaningful Comments (Activity)]]
#* Example Activity - [[Document_code_with_meaningful_comments|Documentation with comments]]
+
# [[:Category:Test User Installation Instructions (Pathway)|Test User Installation Instructions (Pathway)]]
# [http://foss2serve.org/index.php/Pathway_-_Install_User_Environment Test download and installation instructions for the user environment]
+
#* Examples: [[Test Installation Instructions]]
#* Example Activity - [[Test_Installation_Instructions|Test installation instructions]]
+
 
# Test download and installation instructions for the development environment
 
# Test download and installation instructions for the development environment
# Create unit tests
+
# [[:Category:Create Unit Tests (Pathway)|Create Unit Tests (Pathway)]]
# [http://foss2serve.org/index.php/Pathway_-_Contribute_Code Write code for a requested feature]
+
# [[:Category:Add a Feature (Pathway)|Add a Feature (Pathway)]]
# Triage a bug: categorize a bug / determine if it needs more information
+
#* Example Activity -  [[Bug_Gardening|Bug gardening]]
+
 
# Create a new defect report from mailing list or personal experience
 
# Create a new defect report from mailing list or personal experience
#* Example Activity - [[Writing_a_bug_report|Writing a bug report]]
+
#* Examples: [[Write a Bug Report (Activity)]]
 
# Develop UML diagram from an existing project
 
# Develop UML diagram from an existing project
 
# Identify user roles and write user stories for a feature (Design a feature)
 
# Identify user roles and write user stories for a feature (Design a feature)
 
# Introduce new users to the project
 
# Introduce new users to the project
#* Example Activities:
+
#* Examples:
#** [[Intro_IRC_Activity|Introduction to IRC]]
+
#** [[Intro to IRC (Activity)]]
#** [[Getting_connected_with_the_community|Getting connected with the community]]
+
#** [[Connect with the Community (Activity)]]
 
# Access security: does the existing code meet security guidelines?
 
# Access security: does the existing code meet security guidelines?
  
== Candidate Paths ==
+
== Other Candidate Pathways ==
  
 
=== Project Promotion ===
 
=== Project Promotion ===
Line 41: Line 37:
 
* Write an article about a topic related to FOSS and submit to a FOSS news blog/web site
 
* Write an article about a topic related to FOSS and submit to a FOSS news blog/web site
 
** Good blogs/sites for publication?
 
** Good blogs/sites for publication?
 
 
* Write a review / tutorial / comparison of one or more FOSS
 
* Write a review / tutorial / comparison of one or more FOSS
 
** Good blogs/sites for publication?
 
** Good blogs/sites for publication?
 
 
* Write an article on “what I wish I knew” - about FOSS; before starting a project or course
 
* Write an article on “what I wish I knew” - about FOSS; before starting a project or course
 
 
* Add a personal project blog to an appropriate planet / blog aggregator
 
* Add a personal project blog to an appropriate planet / blog aggregator
 
 
* Create a lecture that provides a tour of the application domain landscape of FOSS
 
* Create a lecture that provides a tour of the application domain landscape of FOSS
 
** Show market segment leaders (Apache, MySQL), tools (Eclipse, Notepad++), games (game engine), humanitarian, industry specific (e.g., ERP), etc. - this may be a pre/post-scavenger hunt lecture
 
** Show market segment leaders (Apache, MySQL), tools (Eclipse, Notepad++), games (game engine), humanitarian, industry specific (e.g., ERP), etc. - this may be a pre/post-scavenger hunt lecture
Line 63: Line 55:
 
** Build a plugin (as in, this will not affect the rest of the codebase, so might have less stakeholder analysis, integration with the core etc)
 
** Build a plugin (as in, this will not affect the rest of the codebase, so might have less stakeholder analysis, integration with the core etc)
 
** Fix a bug
 
** Fix a bug
 
 
* Design a feature (Business analysis and user experience design):
 
* Design a feature (Business analysis and user experience design):
 
** Conduct stakeholder analysis  
 
** Conduct stakeholder analysis  
Line 79: Line 70:
 
* Raise money or other resources for an open source project
 
* Raise money or other resources for an open source project
 
* Promote a project of interest using multiple tools/channels
 
* Promote a project of interest using multiple tools/channels
 
 
* Improve awareness of the project:
 
* Improve awareness of the project:
 
** Evidence gathering - collect publicity on a project, collect information on breadth of use of an HFOSS project
 
** Evidence gathering - collect publicity on a project, collect information on breadth of use of an HFOSS project
Line 89: Line 79:
 
*** Data analysis around social media
 
*** Data analysis around social media
 
*** Blog posts
 
*** Blog posts
 
 
* Help build the community
 
* Help build the community
 
** Find install instances (e.g. by social media search)  
 
** Find install instances (e.g. by social media search)  
Line 101: Line 90:
  
 
* Review a page and summarize problems found and submit proposed revision
 
* Review a page and summarize problems found and submit proposed revision
 
 
* Find & improve a page that could benefit from editing / rewriting / improvement
 
* Find & improve a page that could benefit from editing / rewriting / improvement
 
** Find references (to other pages or resources) and add them (with appropriate links)
 
** Find references (to other pages or resources) and add them (with appropriate links)
 
 
* Find a "stub" page and expand it with research and related references
 
* Find a "stub" page and expand it with research and related references
 
 
* Create a new page with appropriate research & related references
 
* Create a new page with appropriate research & related references
 
 
* “Garden” a site or other documentation – prune, restructure, etc
 
* “Garden” a site or other documentation – prune, restructure, etc
 
** Instructor could clone or create a sandbox area for this
 
** Instructor could clone or create a sandbox area for this
 
** Major restructuring might require advance planning
 
** Major restructuring might require advance planning
 
 
* Test documentation (e.g. installation instructions) and summarize problems found
 
* Test documentation (e.g. installation instructions) and summarize problems found
 
** [[Test_Installation_Instructions]]
 
** [[Test_Installation_Instructions]]
 
 
* Rewrite & simplify installation instructions for typical (non-technical) computer users
 
* Rewrite & simplify installation instructions for typical (non-technical) computer users
 
 
* Write concise and helpful instructions to install and configure FOSS on a specific system
 
* Write concise and helpful instructions to install and configure FOSS on a specific system
 
** Specify version or date when install instructions become obsolete
 
** Specify version or date when install instructions become obsolete
 
 
* Create or update a glossary or vocabulary list for a FOSS
 
* Create or update a glossary or vocabulary list for a FOSS
 
 
* Translate a page to a different language using automated tools or expert knowledge
 
* Translate a page to a different language using automated tools or expert knowledge
 
 
* Convert written docs to video docs
 
* Convert written docs to video docs
 
 
* Convert video docs to written docs
 
* Convert video docs to written docs
 
 
* Develop UML diagram from an existing project
 
* Develop UML diagram from an existing project
 
** Generate and review Javadoc
 
** Generate and review Javadoc
** [[UML_a_project]]
+
** [[UML a Project]]
 
+
 
* Verify Installation instructions (on different platforms) - if it doesn't work, update the install instructions or file as issue, if it does work indicate the platform it works on
 
* Verify Installation instructions (on different platforms) - if it doesn't work, update the install instructions or file as issue, if it does work indicate the platform it works on
 
** Update installation instructions
 
** Update installation instructions
Line 141: Line 117:
 
** Improve globalization / localisation (e.g. translating UI and documentation to different languages)
 
** Improve globalization / localisation (e.g. translating UI and documentation to different languages)
 
** Confirm, improve or create install and code setup on different platforms
 
** Confirm, improve or create install and code setup on different platforms
 
 
* Make the project more accessible
 
* Make the project more accessible
 
** Build a demo server
 
** Build a demo server
Line 159: Line 134:
 
** Create a new defect report from mailing list or personal experience
 
** Create a new defect report from mailing list or personal experience
 
** Find a "bad" report and make it a "good" report
 
** Find a "bad" report and make it a "good" report
** [[Writing_a_bug_report]]
+
** [[Write a Bug Report (Activity)]]
 
* Brainstorm list of possible enhancements for project, choose a few to document (see above) and submit a feature request
 
* Brainstorm list of possible enhancements for project, choose a few to document (see above) and submit a feature request
 
* Evaluate usability of a specified feature and summarize results & conclusions (in tracker or wiki)
 
* Evaluate usability of a specified feature and summarize results & conclusions (in tracker or wiki)
Line 168: Line 143:
 
** Verify (and fix) development environment documentation and submit revision to the project
 
** Verify (and fix) development environment documentation and submit revision to the project
 
* Develop an automated test suite or repeatable test script, contribute code, summarize results.
 
* Develop an automated test suite or repeatable test script, contribute code, summarize results.
 
 
* Test the system
 
* Test the system
 
** Verify a bug
 
** Verify a bug
Line 178: Line 152:
 
** Improve accessibility: audit app against disability guidelines (e.g. https://www.w3.org/standards/webdesign/accessibility)
 
** Improve accessibility: audit app against disability guidelines (e.g. https://www.w3.org/standards/webdesign/accessibility)
 
** Check app for gender/culture bias in text, images etc
 
** Check app for gender/culture bias in text, images etc
 
 
* Evaluate security for a FOSS project and report the results to the project
 
* Evaluate security for a FOSS project and report the results to the project
 
** Look for common security flaws
 
** Look for common security flaws
Line 188: Line 161:
 
* FOSS scavenger hunt: Study a FOSS to answer a set of questions (overview about project and product features)   
 
* FOSS scavenger hunt: Study a FOSS to answer a set of questions (overview about project and product features)   
 
** Could also look at a forge (# of projects, what application domains, what languages, # added recently)
 
** Could also look at a forge (# of projects, what application domains, what languages, # added recently)
 
 
* In teams, students generate test sets for given code and an understanding of the codes purpose, and test that code.
 
* In teams, students generate test sets for given code and an understanding of the codes purpose, and test that code.
 
** see http://piratenpad.de/softhum-workshop-template-testsets
 
** see http://piratenpad.de/softhum-workshop-template-testsets
 
  
 
=== Privacy / Security ===
 
=== Privacy / Security ===
Line 220: Line 191:
  
 
=== Coding & Style ===
 
=== Coding & Style ===
 +
 
* Analyze the sequence of function calls that produces a specified { feature | page | screen }.
 
* Analyze the sequence of function calls that produces a specified { feature | page | screen }.
 
** http://piratenpad.de/softhum-workshop-analysis
 
** http://piratenpad.de/softhum-workshop-analysis
Line 253: Line 225:
  
 
=== Product Packaging and Distribution ===
 
=== Product Packaging and Distribution ===
 +
 
* Maintain a build host. //needs more detail//
 
* Maintain a build host. //needs more detail//
 
* Understand and identify installation and IT support needs. //needs more detail//
 
* Understand and identify installation and IT support needs. //needs more detail//
Line 259: Line 232:
 
** design & create a custom distribution
 
** design & create a custom distribution
 
** Share custom distribution with the FOSS community.
 
** Share custom distribution with the FOSS community.
 +
  
 
== Learning Activities for General HFOSS Knowledge ==
 
== Learning Activities for General HFOSS Knowledge ==
  
 
=== Introduction ===
 
=== Introduction ===
 +
 
* Read recent article(s) and { answer questions | summarize | critique | present material }.
 
* Read recent article(s) and { answer questions | summarize | critique | present material }.
 
** e.g. product reviews, culture of writing software, use within some environment, etc.
 
** e.g. product reviews, culture of writing software, use within some environment, etc.
Line 273: Line 248:
 
   
 
   
 
=== FOSS History ===
 
=== FOSS History ===
 +
 
* Research the history of a FOSS & summarize.  
 
* Research the history of a FOSS & summarize.  
 
** When did it start?  How many releases?  How many users?  
 
** When did it start?  How many releases?  How many users?  
Line 281: Line 257:
  
 
=== Use & Evaluate ===
 
=== Use & Evaluate ===
 +
 
* Search forge(s) or the Internet for FOSS that interests you.
 
* Search forge(s) or the Internet for FOSS that interests you.
 
* Use & evaluate a FOSS that has been installed.
 
* Use & evaluate a FOSS that has been installed.
Line 301: Line 278:
  
 
=== Communication & Tools ===
 
=== Communication & Tools ===
 +
 
* Choose, investigate, and report on a forge. //what is the motivation or LO?//
 
* Choose, investigate, and report on a forge. //what is the motivation or LO?//
 
* View newest FOSS on a forge, then see how many new FOSS are created in a { day | week }.
 
* View newest FOSS on a forge, then see how many new FOSS are created in a { day | week }.
Line 328: Line 306:
  
 
=== Culture, Intellectual Property ===
 
=== Culture, Intellectual Property ===
 +
 
See: http://piratenpad.de/softhum-workshop-template-culture
 
See: http://piratenpad.de/softhum-workshop-template-culture
 
* Research how a FOSS is organized, summarize findings, & reflect.
 
* Research how a FOSS is organized, summarize findings, & reflect.
Line 341: Line 320:
  
 
=== Philosophy / Politics ===
 
=== Philosophy / Politics ===
 +
 
* Study why people choose to use FOSS as opposed to other software.
 
* Study why people choose to use FOSS as opposed to other software.
 
* Read "Little Brother" (by Cory Doctorow) //what is the motivation or LO?//
 
* Read "Little Brother" (by Cory Doctorow) //what is the motivation or LO?//
Line 350: Line 330:
 
** Uber database of FOSS public policy decisions. Linked from Mel's blog.
 
** Uber database of FOSS public policy decisions. Linked from Mel's blog.
  
+
 
[[Category:Pathway_Model]]
+
 
[[Category:Reference]]
 
[[Category:Reference]]
 +
[[Category:Pathways]]

Latest revision as of 11:18, 6 August 2020

Contents

Pathway Model - Candidate Paths to HFOSS Contribution

A Pathway is a sequence of steps that a practitioner would follow to contribute to a humanitarian free and open source (HFOSS) project. Pathway steps are supported by Learning Activities and Learning Modules.

This page contains:

  • a list of possible pathways for the HFOSS contribution pathways model
  • learning activities that may support a path step
  • learning activities that may help students gain general HFOSS knowledge.

See the Glossary for terms used to make the lists more concise and avoid duplication.

Curated Pathways

  1. Verify a Bug (Pathway)
  2. Fix a Bug (Pathway)
  3. Test User Installation Instructions (Pathway)
  4. Test download and installation instructions for the development environment
  5. Create Unit Tests (Pathway)
  6. Add a Feature (Pathway)
  7. Create a new defect report from mailing list or personal experience
  8. Develop UML diagram from an existing project
  9. Identify user roles and write user stories for a feature (Design a feature)
  10. Introduce new users to the project
  11. Access security: does the existing code meet security guidelines?

Other Candidate Pathways

Project Promotion

  • Write an article about a topic related to FOSS and submit to a FOSS news blog/web site
    • Good blogs/sites for publication?
  • Write a review / tutorial / comparison of one or more FOSS
    • Good blogs/sites for publication?
  • Write an article on “what I wish I knew” - about FOSS; before starting a project or course
  • Add a personal project blog to an appropriate planet / blog aggregator
  • Create a lecture that provides a tour of the application domain landscape of FOSS
    • Show market segment leaders (Apache, MySQL), tools (Eclipse, Notepad++), games (game engine), humanitarian, industry specific (e.g., ERP), etc. - this may be a pre/post-scavenger hunt lecture
    • Video it, Keep it short & modular for remixing.
    • Create a list of wanted topics, get community to contribute.
    • See examples from entrepreneurship education

Specification & Coding

  • Contribute code
    • Build a feature (is this the same as "contribute code"? It's going to involve design and stakeholder analysis all the way through to production and testing)
    • Build a plugin (as in, this will not affect the rest of the codebase, so might have less stakeholder analysis, integration with the core etc)
    • Fix a bug
  • Design a feature (Business analysis and user experience design):
    • Conduct stakeholder analysis
    • Identify user roles and write user stories for a feature
    • Create wireframes for a feature
    • Gathering feedback on wireframes
    • Specify the MVP for a feature
    • Add information to ongoing discussion on design decisions
    • Ask relevant and appropriate questions to bound a problem

Community Development

  • Organize & conduct a tutorial session for a FOSS
  • Participate in / Support / Organize a hackathon
  • Raise money or other resources for an open source project
  • Promote a project of interest using multiple tools/channels
  • Improve awareness of the project:
    • Evidence gathering - collect publicity on a project, collect information on breadth of use of an HFOSS project
      • How many people impacted?
      • How many deployments?
      • Data analysis of impact
    • Fundraising efforts/Funding models
    • Create/contribute to marketing for a project (social media)
      • Data analysis around social media
      • Blog posts
  • Help build the community
    • Find install instances (e.g. by social media search)
    • Find articles about application and its uses
    • Improve outreach to users
    • Improve project visibility (e.g. via social media strategy, tweeting etc)
    • Analyse project's social media reach and influence
    • Create/install a new theme for the project web site

Documentation

  • Review a page and summarize problems found and submit proposed revision
  • Find & improve a page that could benefit from editing / rewriting / improvement
    • Find references (to other pages or resources) and add them (with appropriate links)
  • Find a "stub" page and expand it with research and related references
  • Create a new page with appropriate research & related references
  • “Garden” a site or other documentation – prune, restructure, etc
    • Instructor could clone or create a sandbox area for this
    • Major restructuring might require advance planning
  • Test documentation (e.g. installation instructions) and summarize problems found
  • Rewrite & simplify installation instructions for typical (non-technical) computer users
  • Write concise and helpful instructions to install and configure FOSS on a specific system
    • Specify version or date when install instructions become obsolete
  • Create or update a glossary or vocabulary list for a FOSS
  • Translate a page to a different language using automated tools or expert knowledge
  • Convert written docs to video docs
  • Convert video docs to written docs
  • Develop UML diagram from an existing project
  • Verify Installation instructions (on different platforms) - if it doesn't work, update the install instructions or file as issue, if it does work indicate the platform it works on
    • Update installation instructions
    • Create/Fix user documentation
    • Create/fix developer documentation
    • Create release packaging
    • Improve onboarding materials: install instructions, how to find issues lists etc.
    • Improve globalization / localisation (e.g. translating UI and documentation to different languages)
    • Confirm, improve or create install and code setup on different platforms
  • Make the project more accessible
    • Build a demo server
    • Maintain a demo server
    • Maintain a download site
    • Maintain the project web site

Visual Design

  • Create a storyboard or paper prototype, evaluate with users, revise, & summarize, submit to project
  • Create instructional comics and submit to project
  • Create a font or icon set and submit to project

Quality & Testing

  • Choose an open defect or feature request from mailing list / tracker / wiki, verify that it exists, and expand & improve formal report (in tracker or wiki)
    • Create a new defect report from mailing list or personal experience
    • Find a "bad" report and make it a "good" report
    • Write a Bug Report (Activity)
  • Brainstorm list of possible enhancements for project, choose a few to document (see above) and submit a feature request
  • Evaluate usability of a specified feature and summarize results & conclusions (in tracker or wiki)
  • Test documentation.
    • Evaluate (and improve) installation instructions and submit revision to the project
    • Verify (and fix) development environment documentation and submit revision to the project
  • Develop an automated test suite or repeatable test script, contribute code, summarize results.
  • Test the system
    • Verify a bug
    • Report a bug
    • Add to the explanation of a bug
    • Test release candidates
    • Test security: can the existing code be compromised?
    • Audit security: does the existing code meet security guidelines?
    • Improve accessibility: audit app against disability guidelines (e.g. https://www.w3.org/standards/webdesign/accessibility)
    • Check app for gender/culture bias in text, images etc
  • Evaluate security for a FOSS project and report the results to the project
    • Look for common security flaws
    • Conduct penetration testing
    • Compare with commercial products, industry practices

Learning Activities

  • FOSS scavenger hunt: Study a FOSS to answer a set of questions (overview about project and product features)
    • Could also look at a forge (# of projects, what application domains, what languages, # added recently)
  • In teams, students generate test sets for given code and an understanding of the codes purpose, and test that code.

Privacy / Security

  • Evaluate security for a FOSS: how many intrusions, severity, etc.
    • Compare with commercial products, industry practices
  • Write privacy policy
  • Develop security guidelines
  • Write about implications of software choice for security.
    • Diaspora (Facebook clone) and problems w.r.t. privacy/security
    • FOSS DBs, etc. (OpenMRS) -- issues, privacy, etc.

Quality & Testing

  • Choose a fixed defect or feature, research its history (when & how reported, when & how fixed), and summarize in a 5 min format (in tracker, wiki, blog post, podcast, vlog, etc).
  • Test (perhaps a project that does JUnit testing).
    • Trace the execution of some piece of code.

Specification and Design

  • Explore a new feature for an existing project
    • Discuss how it might be implemented
    • Show actual code and implementation
  • Identify data structures used in a project.
  • Study code & docs, diagram system architecture, evaluate, summarize.
    • using guidelines supplied by instructor

Coding & Style

  • Analyze the sequence of function calls that produces a specified { feature | page | screen }.
  • Identify examples of a given { coding construct | data structure | pattern } in a FOSS.
    • could provide teachers with examples to use in other courses
  • Given specification & code, provide an itemized list of tasks and describe how each was met.
  • Given a problem and 2+ solutions to a problem, compare, summarize, & present.
    • naming conventions, coding style, efficiency, etc...
  • Given a problem, find 2+ solutions (to same or similar problem) and summarize the differences between the solutions.
  • Determine how well a { FOSS | component } meets its specifications.
  • Develop a code walkthrough
  • Find/study examples of well & poorly written code - style wise (layout, variable names)
    • Look at coding standard for an open source project (Java, Python)
    • Reformat code, rename variables, etc.
  • Given coding standard & sample code, list the changes needed for code to meet standard.
  • Given sample code, infer and document coding standard.
  • Analyze existing code to understand what it does and how it works.
  • Reformat, document, & refactor existing (others') code to make it more readable & consistent.
  • Given a comment, defect, or feature request, study & fix it, and submit as patch.
    • FOSS with plugins may be easier for this:
    • Drupal (e.g. shopping cart), Firefox, GreaseMonkey, Moodle
    • wiki formatting plugins
  • Develop UML diagram(s) for a FOSS and submit to the project
    • FOSS UML tool: http://argouml.tigris.org/
    • PC Clements, & DL Parnas. 1986. “A rational design process: How and why to fake it.” IEEE Transactions on Software Engineering 12 (2): 251-257.
  • Add comments to a piece of code that has no or poor comments.

Product Packaging and Distribution

  • Maintain a build host. //needs more detail//
  • Understand and identify installation and IT support needs. //needs more detail//
  • Configure FOSS according to given criteria or specification.
    • What are good examples of configurable FOSS - Drupal, wiki,
    • design & create a custom distribution
    • Share custom distribution with the FOSS community.


Learning Activities for General HFOSS Knowledge

Introduction

  • Read recent article(s) and { answer questions | summarize | critique | present material }.
    • e.g. product reviews, culture of writing software, use within some environment, etc.
    • sites: opensource.com,teachingopensource.org
    • print: Linux Journal, Linux Magazine
  • Interview a FOSS user and find out why they use FOSS, benefits/drawbacks, etc.
  • Study a FOSS contributor’s activities over time { week | month | semester } to understand the level of engagement and the type of interactions/contributions the person has made.
  • Interview a FOSS contributor to find out how they got involved, their role(s), their background, etc.
  • Shadow a FOSS contributor over time to see what they do, & summarize.

FOSS History

  • Research the history of a FOSS & summarize.
    • When did it start? How many releases? How many users?
    • Reading history on the site, talk to people involved, etc.
  • Review an archived discussion of a { chat | thread | forum | list } over a { day | week | month } and { summarize | categorize | reflect on } the content.
    • e.g. developer list, support list,
  • Study a completed defect or feature proposal, and create a concise summary, including details, people involved & their roles, steps taken.

Use & Evaluate

  • Search forge(s) or the Internet for FOSS that interests you.
  • Use & evaluate a FOSS that has been installed.
  • Download, install, use, & evaluate FOSS.
  • Read review(s) of FOSS, then download a "good" one, based on different criteria
    • e.g. community, features, ease of maintenance
  • Evaluate how good a FOSS would be to { use | contribute to} based on:
    • Size, maturity, level of activity, size of community, etc.
    • Features described in documentation or demos.
    • How easy it is to set up for use: e.g., download, install, customize, apply updates.
  • Compare and contrast 2+ FOSS to determine which to { use | contribute to }.
    • criteria from instructor, student, or target user
  • Install (help others install) one or more FOSS and/or FOSS plugins.
  • Install PortableApps on a flash drive, along with several portable FOSS for later use.
  • Install FOSS operating system on a flash drive.

Communication & Tools

  • Choose, investigate, and report on a forge. //what is the motivation or LO?//
  • View newest FOSS on a forge, then see how many new FOSS are created in a { day | week }.
  • Choose a (FOSS) RSS client, subscribe to RSS feeds for FOSS, read, and summarize.
    • RSS clients: Google Reader, RSSOwl
    • RSS feeds: any planet (feed aggregator), FOSS
  • Define IRC, determine why IRC is an appropriate means of communication within a community - what are the benefits, drawbacks?
  • Subscribe to an IRC channel, listen to a meeting, write summary of the content of the meeting and any observations about the mode of communication/type of communication.
  • Study IRC meetings: lurk; participate; write minutes or summary; plan agenda; run meeting.
  • Work remotely (using IRC, email, twitter, whatever) with another student to develop profiles for each other. (a web-page about you and your tech skills and interests).
  • Ask, comment on, answer, respond to question (on web forum, mailing list, IRC).
  • Study the social norms of communication within a FOSS community. (i.e. how to ask questions, respond, etc.)
  • Become familiar with public/private keys. //what is the motivation or LO?//
    • Generate public and private keys for use with SSH.
    • Install public key on remote server for passwordless access via SSH.
    • Exchange public keys with another student.
    • Use exchanged keys to send signs and/or encrypted messages.
    • Sign another student's public key
    • Get your public key signed by another student.
  • Sign a Contributors License Agreement (CLA) for a FOSS. //what is the motivation or LO?//
  • [meta] Learn to interact with the community by using various tools such as blogs, wiki changesets, ticketing systems, etc. // expand to specific tasks with specific tools //
  • [meta] Learn a tool, and teach others how to use it.
  • [meta] Learn that a text editor is a text editor, regardless of what it is. //how to do this?//
  • [meta] Learn how to choose a set of tools to use for a FOSS.

Culture, Intellectual Property

See: http://piratenpad.de/softhum-workshop-template-culture

  • Research how a FOSS is organized, summarize findings, & reflect.
    • How many people are employed, who is employed, how they get paid.
    • Business model - how is the project funded, who is in charge, etc.
  • Select a FOSS, identity primary contributors (no more than 10), find their educational and work experiences, and summarize.
  • Understand why a major company (like IBM for example) contributes to FOSS.
    • What are the market pressures involved from an economic point of view?
  • Study software licensing (in general) and then discuss FOSS intellectual property issues.
    • Why is it OK to download & install some software but not other?
    • Why would developers give up their rights?
  • Compare & contrast 2+ FOSS licenses (e.g. in a matrix).

Philosophy / Politics

  • Study why people choose to use FOSS as opposed to other software.
  • Read "Little Brother" (by Cory Doctorow) //what is the motivation or LO?//
  • Study the international influence in FOSS projects, both as contributors and consumers.
    • cultural perspectives – freedom from multinationals companies (e.g. China, India)
  • Study cultural/policy implications of CC, GPL, etc.
    • Implications for pre-health, pre-law, etc.
  • Explore implications of philosophy/culture of FOSS for public policy.
    • Uber database of FOSS public policy decisions. Linked from Mel's blog.
Personal tools
Namespaces
Variants
Actions
Events
Learning Resources
HFOSS Projects
Evaluation
Navigation
Toolbox