User:Salexander

From Foss2Serve
(Difference between revisions)
Jump to: navigation, search
 
(15 intermediate revisions by one user not shown)
Line 1: Line 1:
  
Susan (Mabry) Alexander is a Professor of Computer Science at Walla Walla University ([http://www.wallawalla.edu WWU]) in College Place, Washington.  Previously, she taught at Whitworth University for a number of years.  Prior to that, she was a technology manager with Northrop Grumman Corporation and a Northrop Fellow.  She has been the principal investigator for various research projects including with the National Science Foundation. Dr. Alexander's research interests include intelligent medical decision support systems, modeling and simulation, and agent-oriented processing.  She teaches a variety of classes: programming classes, operating systems, artificial intelligence, ethics, technology management, database management and survey of computing.
+
Susan (Mabry) Alexander is a Professor of Computer Science at Walla Walla University ([http://www.wallawalla.edu WWU]) in College Place, Washington.  Previously, she taught at Whitworth University for a number of years.  Prior to that, she was a technology manager with Northrop Grumman Corporation and a Northrop Fellow.  Research interests include decision support systems, modeling and simulation, and agent-oriented processing; .  She teaches a variety of classes.
  
 
She has a number of pleasure interests: camping, kayaking, art, exploring the outdoors and gardening with her husband, enjoying our grandkids, and playing with our "doodles" - "Kylee" an Australian Labradoodle, and "Bilbo" a Goldendoodle!
 
She has a number of pleasure interests: camping, kayaking, art, exploring the outdoors and gardening with her husband, enjoying our grandkids, and playing with our "doodles" - "Kylee" an Australian Labradoodle, and "Bilbo" a Goldendoodle!
Line 13: Line 13:
 
- The special terms appear to be meetbot commands to be captured in the results of meetbot and meeting notes (i.e. #info, #action, #topic)
 
- The special terms appear to be meetbot commands to be captured in the results of meetbot and meeting notes (i.e. #info, #action, #topic)
  
Monitored site #a11y, #foss2serve channels.  Saw some coming/going. /name exhibited a number of folks
+
Monitored site #a11y, #foss2serve channels.  I didn't really see any recent entries on #a11y. However /name exhibited a number of folks.
 +
   
  
 
== Intro to FOSS Project Anatomy Activity ==
 
== Intro to FOSS Project Anatomy Activity ==
Line 42: Line 43:
 
Last commit date in the repository was 14 hours ago (March 14, 2017).
 
Last commit date in the repository was 14 hours ago (March 14, 2017).
  
Summarize release cycle information.  Includes status of tasks for milestones.  A gantt chart reflects percentage of targeted tasks completed.  Most recent Milestone 2.0 is 98 % completed.  1 active task remains.  There is also an itemization of framework features and estimated hours.
+
Summarize release cycle information.  Includes status of tasks for milestones.  A gantt chart reflects percentage of targeted tasks completed.  Most recent Milestone 2.0 is 98 % completed.  1 active task remains in this Milestone.  There is also an itemization of framework features and estimated hours.
 +
 
 +
== FOSS Field Trip Activity ==
 +
 
 +
GitHub: 
 +
12,365 Educational projects returned
 +
Graphs – Commits provides project commits on dates
 +
291 projects under the Humanitarian category
 +
Last commits in the HTBox/crisischeckin project were 4 commits the week of Aug 7
 +
144 repository results under Disaster Management
 +
 
 +
OpenHub:
 +
346 pages with 10 assumed per page Educational projects returned
 +
KDE Project has 23 locations,
 +
Many KDE projects on GitHub
 +
10 projects similar to KDE Education are listed
 +
4 pages of approximately 10 projects each under the Humanitarian category
 +
6 pages of approximately 10 projects each under the Disaster Management category
 +
A few have “high activity” (i.e. Sahana), moderate (i.e. DRLM), some inactive but many “Activity Not Available”
 +
I’m not sure of why so many reflect activity not available
 +
OpenMRS Core – 28 days since the last commit to OpenMRS Core
 +
OpenMRS Core on GitHub is very active – one update commit made just a few days ago.
 +
I would guess they are using GitHub more frequently and then committing major updates on the OpenHub repository.
 +
Not sure why unless they wish to separate frequent updates from major, less frequent system updates.
 +
Appears to be worth searching both sites, just to be sure to see full current status of projects.
 +
 
 +
 
 +
== Evaluation Activity ==
 +
 
 +
Evaluation of OpenMRS per class integration using the given rubric.
 +
My summary evaluation is that OpenMRS is an impressive project, appears to be very active, and aligns nicely with my previous research in medical informatics.  However, it appears to be an extensive, complicated system, more applicable for higher level students such as senior projects.  I need to look into it more closely, but may be challenging to quickly implement in a lower level course.  It does appear to be very well organized and documented.
 +
 
 +
{| class="wikitable" style="width:100%;"
 +
|-
 +
! Evaluation Factor
 +
! Level<br/>(0-2)
 +
! style="width:60%;" | Evaluation Data
 +
|-
 +
| '''Licensing'''
 +
|2
 +
|License: MPL 2.0 w/HD c OpenMRS Inc
 +
|-
 +
| '''Language'''
 +
|1
 +
|Java 95.4%, SQLPL 3.0%, JavaScript 0.1%, HTML 0.1%
 +
|-
 +
| '''Level of Activity'''
 +
|2
 +
|Appears to be increasingly active over the last two quarters with significant commits most recently; consistent lower levels of commits previously
 +
|-
 +
| '''Number of Contributors'''
 +
|2
 +
|256
 +
|-
 +
| '''Product Size'''
 +
|1
 +
|218.85 MB
 +
|-
 +
| '''Issue Tracker'''
 +
|1
 +
|Active though confusing for this class level;  88 Open Must, 1616 closed Must, appears most recent additions primarily in 2015, a few 2016 - though I'm having difficulty ascertaining dates
 +
|-
 +
| '''New Contributor'''
 +
|2
 +
|Very welcoming, instructions and link for downloading IDE, getting started as a developer, instructions for making a pull request, an introductory issue,  contributing guidelines, strong web presence, Contributing developer stages and earning levels of privileges; active blogs
 +
|-
 +
| '''Community Norms'''
 +
|2
 +
|Finally found Code of Conduct based on Ubuntu Code Conduct; generic be considerate, respectful, collaborative.  Good to make points on disagreeing, consulting with others, and asking for help.  I did not see any indication of rude or inappropriate behavior.  Communications I saw were focused on problems at hand.
 +
|-
 +
| '''User Base'''
 +
|2
 +
|Extensive use particularly in developing countries.  Yes, includes instructions for demo installations, installing on your own server.  Implementers Guide for using the software. Getting Started with OpenMRS and OpenMRS FAQ.
 +
|-
 +
| '''Total Score'''
 +
|15
 +
|
 +
|}
 +
 
 +
== Copyright & Licensing Activity ==
 +
 
 +
 
 +
OpenMRS – No summary or Short URL yet.  Way too much legal jargon on the full License document; which
 +
                      gives me pause for contributing.
 +
                      However, appears to be in line with standard Open Source Code Licensing. Each contributor agrees to
 +
                      world-wide, royalty-free, non-exclusive license.
 +
                         
 +
Apache – Can:  distribute, modify, include for commercial use, sublicense.  Cannot hold liable or use trademark.
 +
                    Must include copyright and include license.
 +
 
 +
Regulately – found the project but unable to find anything on licensing or copyright
 +
 
 +
 
 +
== FOSS in Courses 1 Activity ==
 +
 
 +
Tremendous number of resources, ideas for learning activities   
 +
One interesting grading approach I saw on Steve Jacob’s RIT Open Software course - 
 +
          “Any and all work done for this class should be of the quality that you would be proud to show a prospective employer    on a job interview. If it wouldn't get you a job, it won't get you a decent grade.”
 +
Very useful links for practical ideas were:  How to Contribute to Open Source without Coding, 50 Ways to be a FOSSer
 +
 
 +
HFOSS Project of interest for me:
 +
I’m having difficulty selecting a project.  I’ll probably need to go with OpenMRS.
 +
• The OpenMRS project interests me very much given my medical informatics and decision support research background, however largely Java code is not as good a fit for my projected classes, and the OpenMRS project appears to be a very large, likely difficult to “jump-in” project.  We could go with Java but I’d prefer a project with large percentage using the Python language. 
 +
• I see Sahana Eden seems to be largely Python, good bit of JavaScript, and appears to be fairly active; though I don’t see that project on your list to select.
 +
• I notice Ushine-Learning (apparently the machine learning/natural language processing module for Ushahidi) is largely Python-based but does not appear active and being a machine learning engine, likely beyond the capability of lower level classes.  The Ushahidi project looks largely to be web development – I’m looking for a project more oriented to an OO class (Python (first choice), C#, or if need be, Java).
 +
 
 +
My class plans include a sophomore level OO class next year working the class for entire course of the project; and just introductory exposure in a portion of a class remaining this quarter.  The classes have varied levels of talent and experience.
 +
 
 +
I anticipate a variety of activities, both as the class progresses and given different levels of student talent/experience.  Some of following are possible:
 +
• First tasks of order would be much like we have had as Instructor assignments:
 +
            become familiar with a few select projects; create a wiki; gain familiarity with github, openhub; necessary tools
 +
 
 +
        Derive test plans, testing, submit bug reports
 +
• Suggest new options
 +
• Some translation of documentation (and program text) into another language
 +
• Correct spelling and grammar mistakes in documentation
 +
• Read, trace through code
 +
• Comment existing code
 +
• Identify small, one-line changes to existing programs
 +
• Experiment making changes to local copy of the code
 +
• Experiment writing additional objects/functions to supplement local copy of the code
 +
• Explore and attempt to address noted issues/bugs – bug tracer
 +
 
 +
 
 +
== FOSS IN COURSES 2 ==
 +
HFOSS Project of interest for me:
 +
• The OpenMRS project interests me very much given my medical informatics and decision support research background, however largely Java code is not as good a fit for my projected classes, and the OpenMRS project appears to be a very large, likely difficult to “jump-in” project.  We could go with Java but I’d prefer a project with large percentage using the Python language. 
 +
• I see Sahana Eden seems to be largely Python, good bit of JavaScript, and appears to be fairly active; though I don’t see that project on your list to select.
 +
• I notice Ushine-Learning (apparently the machine learning/natural language processing module for Ushahidi) is largely Python-based but does not appear active and being a machine learning engine, likely beyond the capability of lower level classes.  The Ushahidi project looks largely to be web development – I’m looking for a project more oriented to an OO class (Python (first choice), C#, or if need be, Java).
 +
 
 +
My class plans include a sophomore level OO class next year working the class for entire course of the project; and just introductory exposure in a portion of a sophomore level class remaining this quarter.  The classes have varied levels of talent and experience.
 +
 
 +
For OO Class Jan/2018:  OpenMRS
 +
 
 +
For current Art/Practice of Computing:  Sahana Eden
 +
 +
////////////////////////////////////////////////////////////////////////////////////////////////////////
 +
For all activities – stress interesting grading approach I saw on Steve Jacob’s RIT Open Software course -            “Any and all work done for this class should be of the quality that you would be proud to show a prospective employer    on a job interview. If it wouldn't get you a job, it won't get you a decent grade.”
 +
 
 +
The following are grouped in categories.  Some more extensive than others and some more appropriate for varied levels of classes/students.
 +
 
 +
 
 +
== Learning Activity 1:  Introduction and Background ==
 +
 
 +
'''Structure/learning activities:''' lecture, interactive lookups/discussion in groups, response assignment
 +
'''Learning objectives:''' concept and philosophy of FOSS projects, raise curiosity and increase their
 +
confidence that they can contribute, greater understanding of copyright
 +
'''Assessment methods:''' Response assignment – demonstrated level of understanding, clear articulation, quality of writing
 +
 
 +
• History, background of FOSS projects
 +
• Philosophy / Politics
 +
o International influence, both as contributors and consumers
 +
o Cultural perspectives – freedom from multinational companies (e.g. China, India)
 +
• A few humanitarian project examples – use project websites
 +
• Breadth of contribution opportunities
 +
• Culture, Intellectual property – see  http://piratenpad.de/softhum-workshop-template-culture
 +
o Select a FOSS, identify primary contributors, try to learn of their educational and work experiences, and summarize
 +
o Why does a major company (like IBM for example) contribute to a FOSS?
 +
 What are market pressures involved from an economic point of view?
 +
o Learn of software licensing (in general) and FOSS intellectual property issues
 +
o Compare and contrast 2+ FOSS licenses (e.g. in a matrix)
 +
 
 +
//////////////////////////////////////////////////////////////////////////////////////////////////////////
 +
 
 +
== Learning Activity 2:  Communication & Tool ==
 +
 
 +
'''Structure/learning activities:'''  Brief lecture introduction, Hands-on very similar to faculty training
 +
'''Learning objectives:'''  Gain familiarity with practical tools they will need for their involvement
 +
'''Assessment methods:'''  Summaries on wiki, blog & and completed project evaluation matrix (though cater some metrics to the students..i.e. opportunity for varied levels of experience, etc.)
 +
 
 +
• Familiarize with communication tools: 
 +
o Familiarize with project IRC and notes from others
 +
o Wiki to report
 +
o Blog on WWU class D2L
 +
• Learn about maneuvering in GitHub, OpenHub through investigating projects
 +
o Give them a few specific projects – fill out evaluation
 +
o Assign:  Choose 3 that look interesting, fill out an evaluation table for each
 +
• Learn about bug tracer, example bugs, report/repair process
 +
 
 +
///////////////////////////////////////////////////////////////////////////////////////
 +
 
 +
== Learning Activity 3:  Documentation ==
 +
 
 +
 
 +
'''Structure/learning activities:'''  Create a “sandbox”, local class copy of application
 +
For different levels of students – start with different granularity levels of code
 +
Hands-on tasks depending on level of students.  Peer review.
 +
'''Learning objectives:'''  Gain greater value of documentation, Increase understanding of code,
 +
Get some hands-on work with the code
 +
'''Assessment methods:'''  Submissions (locally) and review; clear articulation, professionalism
 +
 
 +
• Read, trace through code
 +
• Comment existing code
 +
• Review a page and summarize problems found (particularly for proposed changes/additions by other students)
 +
• Test documentation
 +
• Some translation of documentation (and program text) into another language
 +
• Correct spelling and grammar mistakes in documentation
 +
• Read existing documentation, follow the examples, make corrections
 +
• Create diagrams, screen-shots, graphics for documentation
 +
 
 +
/////////////////////////////////////////////////////////////////////////////////////////////////
 +
 
 +
== Learning Activity 4:  Testing & Evaluation ==
 +
 
 +
 
 +
'''Structure/learning activities:'''  Create a “sandbox”, local class copy to free students for dabbling, experimenting, testing and peer review;  hands-on study, evaluation, testing;  some group activities;
 +
Evaluate our own student development.  Informal presentations of findings
 +
'''Learning objectives:'''  Experience with a “real” project, See how their programming language training transitions into a real project, allow them to gain familiarity, design and use of test plans, experience tracing and evaluating modules of a system
 +
'''Assessment methods:'''  Numerous concrete entities to report – i.e. test sets, bug report, report summarized findings, conclusions;  a log of steps with findings; professionalism
 +
'''Comments:'''  Work on Local Copy / May occasionally submit proposals/reports
 +
 
 +
 
 +
'''QUALITY/TESTING'''     
 +
• Download, install, use and evaluate a FOSS
 +
• In teams, generate test sets for given code, understanding of the codes purpose and test that code
 +
o http://piratenpad./softhum-workshop-template-testsets
 +
• Choose an open defect or feature request from {mailing list | tracker | wiki }, verify it exists, expand report
 +
o Create a new defect report from mailing list or personal experience
 +
o http://foss2serve.org/index.php/Writing_a_bug_report
 +
• Submit bug reports
 +
• Brainstorm list of possible enhancements for project, choose a few to document
 +
 
 +
'''USE/EVALUATE'''
 +
• Download, install, use and evaluate a FOSS
 +
• Read, trace through code
 +
• Identify data structures, objects used in a project
 +
• Try out features described in documentation or demos
 +
• Experiment with the software from user perspective
 +
• Evaluate usability of a specified feature/screen and summarize results/conclusions
 +
First in local wiki; then in tracker or wiki)
 +
• Using formal guidelines or rubric
 +
• Using heuristic evaluation  http://en.wikipedia.org/wiki/Heuristic_evaluation
 +
• Test documentation
 +
• Analyze existing code to understand what it does and how it works
 +
• Analyze the sequence of function calls that produces a specified feature/page/screen.
 +
o http://piratenpad.de/softhum-workshop-analysis
 +
• Suggest possible improvements, new features / options
 +
 
 +
/////////////////////////////////////////////////////////////////////////////////////////////////// 
 +
 
 +
 
 +
== Learning Activity 5:  Specification, Design & Development ==
 +
 
 +
 
 +
'''Structure/learning activities:'''  Create a “sandbox”, local class copy to free students for dabbling, experimenting, testing and peer review.  Peer review of other student work valuable.  Informal presentation of proposed changes/code;  code walkthroughs; familiarity with working within language and project standards; teamwork
 +
'''Learning objectives:'''  Greater skills in tools;  Familiarity with Project and code standards;  Understanding of processes involved with such a project; coding; code walkthroughs
 +
'''Assessment methods:'''  Design and implementation; degree of difficulty/quality per student level;
 +
          Articulation of design and walkthrough; professionalism;
 +
'''Comments:'''  Work on Local Copy / May occasionally submit proposals/reports
 +
 
 +
• Learn more in-depth how to use tools, specific tools per a project
 +
• Familiarize with code and project standards
 +
• Explore a new feature for an existing project
 +
o Discuss how it might be implemented
 +
o Show actual code and implementation
 +
• Identify and start with small, one-line changes to existing programs
 +
• Experiment making changes to local copy of the code
 +
• Experiment writing additional objects/functions to supplement local copy of the code
 +
• Explore and attempt to address noted issues/bugs – bug tracer
 +
• Develop a code walkthrough
 +
o In teams, walk through working, uncommented code to determine its purpose
 +
o Deliverables: A brief summary (1-2 paragraphs) describing the purpose of the code.
 +
o Could vary degrees of code – i.e. senior: complicated segment of code from a larger project.
 +
        CS 1-2: a partial implementation of a class to determine what a specific method does
 +
o http://piratenpad.de/softhum-workshop-template-walkthrough
 +
• Given a comment, defect, or feature request, study & fix it, submit as patch
 +
o ? FOSS with plugins may be easier for this:
 +
 Drupal (e.g. shopping cart), Firefox, GreaseMonkey, Moodle
 +
 Wiki formatting plugins
 +
• Find/study examples of well & poorly written code – stylewise (layout, variable names)
 +
o Look at coding standard for an open source project (Java, Python)
 +
o Reformat code, rename variables, etc. (work locally, then possibly commit back depending on project)
 +
• Add comments to piece of code that has no or poor comments
 +
o http://foss2serve.org/index.php/Document_code_with_meaningful_comments

Latest revision as of 19:34, 20 April 2017

Susan (Mabry) Alexander is a Professor of Computer Science at Walla Walla University (WWU) in College Place, Washington. Previously, she taught at Whitworth University for a number of years. Prior to that, she was a technology manager with Northrop Grumman Corporation and a Northrop Fellow. Research interests include decision support systems, modeling and simulation, and agent-oriented processing; . She teaches a variety of classes.

She has a number of pleasure interests: camping, kayaking, art, exploring the outdoors and gardening with her husband, enjoying our grandkids, and playing with our "doodles" - "Kylee" an Australian Labradoodle, and "Bilbo" a Goldendoodle!


Contents

Intro to IRC Exercise

- How do people interact? Darci called the meeting. MeetingBot is Totally. Interactions of questions and responses of those participating. - What is the pattern of communication? The pattern is mixed, mostly linear with some branches within the topic - The tone is informal - Discussions are mixed with 1 - many, and 1 - 1 varying with topics. - The special terms appear to be meetbot commands to be captured in the results of meetbot and meeting notes (i.e. #info, #action, #topic)

Monitored site #a11y, #foss2serve channels. I didn't really see any recent entries on #a11y. However /name exhibited a number of folks.


Intro to FOSS Project Anatomy Activity

The Sahana Eden may be of high interest for us and I plan to investigate further. The methods align with my interests and the tools seem a good fit for our students.

Sugar Labs Project: Education tool in which children can research, write, share and create together. “Discoverable learning” in a framework. They journal and everything is saved, runs on any platform, connected to the Internet or not. Multiple languages.

Contributions. As a starting point in class(es), I first hope to integrate FOSS tasks, I imagine maintenance and testing as most applicable for students. Commonalities revolve around the common focus on education and experiential learning. Differences lie in the tasks performed.

Tracker. The general process for submitting bugs is under the issues tab of the Project Github repository. Most types/categories are defects of normal priority. Other information includes a ticket number, a brief statement summary, type, priority, Occasionally includes owner, and milestone.

Last commit date on Github = October 10, 2016 Release cycle and roadmap update are related through mapping the various release events: development, beta, release candidate and final releases. The roadmap updates include more detailed schedules to meet the release events.


Sahana Eden Project:

The platform aims to provide critical needs management prior to, or during, a crisis. It can be customized to adapt to existing processes and to integrate with existing systems. The system is to provide resource mgt, info mgt, coordination, environmental management, decision support and stakeholder communications. Development involves Python and the Web2Py framework.

Possible contributions: Developers – Blueprints are provided for targeted functionalities. Numerous functionalities are enumerated. Testers – Extensive testing and bug reporting opportunities for contribution. Designers – Available tasks for graphic designers, ideas for project tasks and design

Organized by titles of tickets with category links to more detailed information (i.e. Active Tickets, Major bugs in Production and UAT, Recently Fixed FRP Bugs, etc). Under the Active Tickets link, Ticket number, Summary of the ticket task and/or bug, Component, Version, Priority, Type, Owner, Status, and date recorded.

Last commit date in the repository was 14 hours ago (March 14, 2017).

Summarize release cycle information. Includes status of tasks for milestones. A gantt chart reflects percentage of targeted tasks completed. Most recent Milestone 2.0 is 98 % completed. 1 active task remains in this Milestone. There is also an itemization of framework features and estimated hours.

FOSS Field Trip Activity

GitHub: 12,365 Educational projects returned Graphs – Commits provides project commits on dates 291 projects under the Humanitarian category Last commits in the HTBox/crisischeckin project were 4 commits the week of Aug 7 144 repository results under Disaster Management

OpenHub: 346 pages with 10 assumed per page Educational projects returned KDE Project has 23 locations, Many KDE projects on GitHub 10 projects similar to KDE Education are listed 4 pages of approximately 10 projects each under the Humanitarian category 6 pages of approximately 10 projects each under the Disaster Management category A few have “high activity” (i.e. Sahana), moderate (i.e. DRLM), some inactive but many “Activity Not Available” I’m not sure of why so many reflect activity not available OpenMRS Core – 28 days since the last commit to OpenMRS Core OpenMRS Core on GitHub is very active – one update commit made just a few days ago. I would guess they are using GitHub more frequently and then committing major updates on the OpenHub repository. Not sure why unless they wish to separate frequent updates from major, less frequent system updates. Appears to be worth searching both sites, just to be sure to see full current status of projects.


Evaluation Activity

Evaluation of OpenMRS per class integration using the given rubric. My summary evaluation is that OpenMRS is an impressive project, appears to be very active, and aligns nicely with my previous research in medical informatics. However, it appears to be an extensive, complicated system, more applicable for higher level students such as senior projects. I need to look into it more closely, but may be challenging to quickly implement in a lower level course. It does appear to be very well organized and documented.

Evaluation Factor Level
(0-2)
Evaluation Data
Licensing 2 License: MPL 2.0 w/HD c OpenMRS Inc
Language 1 Java 95.4%, SQLPL 3.0%, JavaScript 0.1%, HTML 0.1%
Level of Activity 2 Appears to be increasingly active over the last two quarters with significant commits most recently; consistent lower levels of commits previously
Number of Contributors 2 256
Product Size 1 218.85 MB
Issue Tracker 1 Active though confusing for this class level; 88 Open Must, 1616 closed Must, appears most recent additions primarily in 2015, a few 2016 - though I'm having difficulty ascertaining dates
New Contributor 2 Very welcoming, instructions and link for downloading IDE, getting started as a developer, instructions for making a pull request, an introductory issue, contributing guidelines, strong web presence, Contributing developer stages and earning levels of privileges; active blogs
Community Norms 2 Finally found Code of Conduct based on Ubuntu Code Conduct; generic be considerate, respectful, collaborative. Good to make points on disagreeing, consulting with others, and asking for help. I did not see any indication of rude or inappropriate behavior. Communications I saw were focused on problems at hand.
User Base 2 Extensive use particularly in developing countries. Yes, includes instructions for demo installations, installing on your own server. Implementers Guide for using the software. Getting Started with OpenMRS and OpenMRS FAQ.
Total Score 15

Copyright & Licensing Activity

OpenMRS – No summary or Short URL yet. Way too much legal jargon on the full License document; which

                     gives me pause for contributing.
                     However, appears to be in line with standard Open Source Code Licensing. Each contributor agrees to 
                      world-wide, royalty-free, non-exclusive license.
                          

Apache – Can: distribute, modify, include for commercial use, sublicense. Cannot hold liable or use trademark.

                   Must include copyright and include license.

Regulately – found the project but unable to find anything on licensing or copyright


FOSS in Courses 1 Activity

Tremendous number of resources, ideas for learning activities One interesting grading approach I saw on Steve Jacob’s RIT Open Software course -

          “Any and all work done for this class should be of the quality that you would be proud to show a prospective employer    on a job interview. If it wouldn't get you a job, it won't get you a decent grade.”

Very useful links for practical ideas were: How to Contribute to Open Source without Coding, 50 Ways to be a FOSSer

HFOSS Project of interest for me: I’m having difficulty selecting a project. I’ll probably need to go with OpenMRS. • The OpenMRS project interests me very much given my medical informatics and decision support research background, however largely Java code is not as good a fit for my projected classes, and the OpenMRS project appears to be a very large, likely difficult to “jump-in” project. We could go with Java but I’d prefer a project with large percentage using the Python language. • I see Sahana Eden seems to be largely Python, good bit of JavaScript, and appears to be fairly active; though I don’t see that project on your list to select. • I notice Ushine-Learning (apparently the machine learning/natural language processing module for Ushahidi) is largely Python-based but does not appear active and being a machine learning engine, likely beyond the capability of lower level classes. The Ushahidi project looks largely to be web development – I’m looking for a project more oriented to an OO class (Python (first choice), C#, or if need be, Java).

My class plans include a sophomore level OO class next year working the class for entire course of the project; and just introductory exposure in a portion of a class remaining this quarter. The classes have varied levels of talent and experience.

I anticipate a variety of activities, both as the class progresses and given different levels of student talent/experience. Some of following are possible: • First tasks of order would be much like we have had as Instructor assignments:

           become familiar with a few select projects; create a wiki; gain familiarity with github, openhub; necessary tools
       Derive test plans, testing, submit bug reports

• Suggest new options • Some translation of documentation (and program text) into another language • Correct spelling and grammar mistakes in documentation • Read, trace through code • Comment existing code • Identify small, one-line changes to existing programs • Experiment making changes to local copy of the code • Experiment writing additional objects/functions to supplement local copy of the code • Explore and attempt to address noted issues/bugs – bug tracer


FOSS IN COURSES 2

HFOSS Project of interest for me: • The OpenMRS project interests me very much given my medical informatics and decision support research background, however largely Java code is not as good a fit for my projected classes, and the OpenMRS project appears to be a very large, likely difficult to “jump-in” project. We could go with Java but I’d prefer a project with large percentage using the Python language. • I see Sahana Eden seems to be largely Python, good bit of JavaScript, and appears to be fairly active; though I don’t see that project on your list to select. • I notice Ushine-Learning (apparently the machine learning/natural language processing module for Ushahidi) is largely Python-based but does not appear active and being a machine learning engine, likely beyond the capability of lower level classes. The Ushahidi project looks largely to be web development – I’m looking for a project more oriented to an OO class (Python (first choice), C#, or if need be, Java).

My class plans include a sophomore level OO class next year working the class for entire course of the project; and just introductory exposure in a portion of a sophomore level class remaining this quarter. The classes have varied levels of talent and experience.

For OO Class Jan/2018: OpenMRS

For current Art/Practice of Computing: Sahana Eden

//////////////////////////////////////////////////////////////////////////////////////////////////////// For all activities – stress interesting grading approach I saw on Steve Jacob’s RIT Open Software course - “Any and all work done for this class should be of the quality that you would be proud to show a prospective employer on a job interview. If it wouldn't get you a job, it won't get you a decent grade.”

The following are grouped in categories. Some more extensive than others and some more appropriate for varied levels of classes/students.


Learning Activity 1: Introduction and Background

Structure/learning activities: lecture, interactive lookups/discussion in groups, response assignment Learning objectives: concept and philosophy of FOSS projects, raise curiosity and increase their confidence that they can contribute, greater understanding of copyright Assessment methods: Response assignment – demonstrated level of understanding, clear articulation, quality of writing

• History, background of FOSS projects • Philosophy / Politics o International influence, both as contributors and consumers o Cultural perspectives – freedom from multinational companies (e.g. China, India) • A few humanitarian project examples – use project websites • Breadth of contribution opportunities • Culture, Intellectual property – see http://piratenpad.de/softhum-workshop-template-culture o Select a FOSS, identify primary contributors, try to learn of their educational and work experiences, and summarize o Why does a major company (like IBM for example) contribute to a FOSS?  What are market pressures involved from an economic point of view? o Learn of software licensing (in general) and FOSS intellectual property issues o Compare and contrast 2+ FOSS licenses (e.g. in a matrix)

//////////////////////////////////////////////////////////////////////////////////////////////////////////

Learning Activity 2: Communication & Tool

Structure/learning activities: Brief lecture introduction, Hands-on very similar to faculty training Learning objectives: Gain familiarity with practical tools they will need for their involvement Assessment methods: Summaries on wiki, blog & and completed project evaluation matrix (though cater some metrics to the students..i.e. opportunity for varied levels of experience, etc.)

• Familiarize with communication tools: o Familiarize with project IRC and notes from others o Wiki to report o Blog on WWU class D2L • Learn about maneuvering in GitHub, OpenHub through investigating projects o Give them a few specific projects – fill out evaluation o Assign: Choose 3 that look interesting, fill out an evaluation table for each • Learn about bug tracer, example bugs, report/repair process

///////////////////////////////////////////////////////////////////////////////////////

Learning Activity 3: Documentation

Structure/learning activities: Create a “sandbox”, local class copy of application For different levels of students – start with different granularity levels of code

	Hands-on tasks depending on level of students.  Peer review.

Learning objectives: Gain greater value of documentation, Increase understanding of code, Get some hands-on work with the code Assessment methods: Submissions (locally) and review; clear articulation, professionalism

• Read, trace through code • Comment existing code • Review a page and summarize problems found (particularly for proposed changes/additions by other students) • Test documentation • Some translation of documentation (and program text) into another language • Correct spelling and grammar mistakes in documentation • Read existing documentation, follow the examples, make corrections • Create diagrams, screen-shots, graphics for documentation

/////////////////////////////////////////////////////////////////////////////////////////////////

Learning Activity 4: Testing & Evaluation

Structure/learning activities: Create a “sandbox”, local class copy to free students for dabbling, experimenting, testing and peer review; hands-on study, evaluation, testing; some group activities; Evaluate our own student development. Informal presentations of findings Learning objectives: Experience with a “real” project, See how their programming language training transitions into a real project, allow them to gain familiarity, design and use of test plans, experience tracing and evaluating modules of a system Assessment methods: Numerous concrete entities to report – i.e. test sets, bug report, report summarized findings, conclusions; a log of steps with findings; professionalism Comments: Work on Local Copy / May occasionally submit proposals/reports


QUALITY/TESTING • Download, install, use and evaluate a FOSS • In teams, generate test sets for given code, understanding of the codes purpose and test that code o http://piratenpad./softhum-workshop-template-testsets • Choose an open defect or feature request from {mailing list | tracker | wiki }, verify it exists, expand report o Create a new defect report from mailing list or personal experience o http://foss2serve.org/index.php/Writing_a_bug_report • Submit bug reports • Brainstorm list of possible enhancements for project, choose a few to document

USE/EVALUATE • Download, install, use and evaluate a FOSS • Read, trace through code • Identify data structures, objects used in a project • Try out features described in documentation or demos • Experiment with the software from user perspective • Evaluate usability of a specified feature/screen and summarize results/conclusions First in local wiki; then in tracker or wiki) • Using formal guidelines or rubric • Using heuristic evaluation http://en.wikipedia.org/wiki/Heuristic_evaluation • Test documentation • Analyze existing code to understand what it does and how it works • Analyze the sequence of function calls that produces a specified feature/page/screen. o http://piratenpad.de/softhum-workshop-analysis • Suggest possible improvements, new features / options

///////////////////////////////////////////////////////////////////////////////////////////////////


Learning Activity 5: Specification, Design & Development

Structure/learning activities: Create a “sandbox”, local class copy to free students for dabbling, experimenting, testing and peer review. Peer review of other student work valuable. Informal presentation of proposed changes/code; code walkthroughs; familiarity with working within language and project standards; teamwork Learning objectives: Greater skills in tools; Familiarity with Project and code standards; Understanding of processes involved with such a project; coding; code walkthroughs Assessment methods: Design and implementation; degree of difficulty/quality per student level;

          Articulation of design and walkthrough; professionalism; 

Comments: Work on Local Copy / May occasionally submit proposals/reports

• Learn more in-depth how to use tools, specific tools per a project • Familiarize with code and project standards • Explore a new feature for an existing project o Discuss how it might be implemented o Show actual code and implementation • Identify and start with small, one-line changes to existing programs • Experiment making changes to local copy of the code • Experiment writing additional objects/functions to supplement local copy of the code • Explore and attempt to address noted issues/bugs – bug tracer • Develop a code walkthrough o In teams, walk through working, uncommented code to determine its purpose o Deliverables: A brief summary (1-2 paragraphs) describing the purpose of the code. o Could vary degrees of code – i.e. senior: complicated segment of code from a larger project.

       CS 1-2: a partial implementation of a class to determine what a specific method does

o http://piratenpad.de/softhum-workshop-template-walkthrough • Given a comment, defect, or feature request, study & fix it, submit as patch o ? FOSS with plugins may be easier for this:  Drupal (e.g. shopping cart), Firefox, GreaseMonkey, Moodle  Wiki formatting plugins • Find/study examples of well & poorly written code – stylewise (layout, variable names) o Look at coding standard for an open source project (Java, Python) o Reformat code, rename variables, etc. (work locally, then possibly commit back depending on project) • Add comments to piece of code that has no or poor comments o http://foss2serve.org/index.php/Document_code_with_meaningful_comments

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