FOSS Course, UPenn, Murphy

(Difference between revisions)
Jump to: navigation, search
(3. Course Outline)
m
(30 intermediate revisions by 2 users not shown)
Line 1: Line 1:
HERE WE GO!
+
=== Overview ===
  
 +
{{Course Overview
 +
|course=
 +
Open Source Software Development
 +
|institution=
 +
University of Pennsylvania
 +
|instructors=
 +
[[User:Cmurphy|Chris Murphy]]
 +
|offerings=
 +
Univ of Pennsylvania: CIS 399 Special Topics, [http://www.seas.upenn.edu/~cdmurphy/foss/fall2016/ Fall 2016] (14 undergraduates)
 +
|overview=
 +
This course exposes students to the cultural, technical, and legal aspects of FOSS development and provides students with an opportunity to contribute to a real-world open-source software project, and gain experience in software maintenance and enhancing software quality.
 +
|students=
 +
The course is targeted to upper-level undergraduate or graduate students.
 +
|prerequisites=
 +
Students should have completed a traditional software engineering course and have had experience working in groups. They should be familiar with GitHub and the target programming language for the FOSS project on which they will work.
 +
|infrastructure=
 +
The class meets twice a week for 75 minutes each. In general, one of the class meetings will consist of discussions of the reading assignments and/or guest speakers, and the other class meeting that week will be for learning activities, project status updates and presentations, or time to work on the project.
 +
}}
  
 +
=== Learning Objectives ===
  
== 0. Overview ==
+
As a result of completing this course, students will be able to do the following:
 +
* describe the technical, cultural, legal, and business foundations of FOSS
 +
* engage with and make contributions to a FOSS project community
  
{| border="1"
+
=== Methods of Assessment ===
|-
+
! style="text-align:right;"| Course Name
+
| ''Open Source Software Development''
+
|-
+
! style="text-align:right;"| Course Overview
+
| This course exposes students to the cultural, technical, and legal aspects of FOSS development and provides students with an opportunity to work on a real-world open-source software project, and gain experience in software maintenance and enhancing software quality.
+
|-
+
! style="text-align:right;"| Instructor Contact Info
+
| [[User:Cmurphy|Chris Murphy]]
+
|-
+
! style="text-align:right;"| Student Characteristics
+
| The course is targeted to upper-level undergraduate or graduate students.
+
|-
+
! style="text-align:right;"| Prerequisites
+
| Students should have completed a traditional software engineering course and have had experience working in groups. They should be familiar with GitHub and the target programming language for the FOSS project on which they will work.
+
|-
+
! style="text-align:right;"| Infrastructure
+
| The class meets twice a week for 75 minutes each. In general, one of the class meetings will consist of discussions of the reading assignments and/or guest speakers, and the other class meeting that week will be for learning activities, project status updates and presentations, or time to work on the project.
+
|-
+
! style="text-align:right;"| Offerings
+
| Univ of Pennsylvania: [http://www.seas.upenn.edu/~cdmurphy/foss/fall2016/ Fall 2016] (14 undergraduates)
+
|-
+
|}
+
 
+
== 1. Learning Objectives ==
+
* ''objectives & prerequisites should be active, student-centered, specific, and measurable''
+
** ''the student will be able to...''
+
* ''for the entire course, and/or for FOSS-specific parts of the course''
+
* ''might include content & process skills''
+
* ''might consider all levels of Bloom's taxonomy''
+
  
== 2. Methods of Assessment ==
 
 
Each week, students are expected to post to their public blogs a 200-300 word response to the weekly reading assignment. In some cases, specific prompts may be given but in general the prompt is open-ended. Blog posts are assessed on the following scale:
 
Each week, students are expected to post to their public blogs a 200-300 word response to the weekly reading assignment. In some cases, specific prompts may be given but in general the prompt is open-ended. Blog posts are assessed on the following scale:
* Exceptional: a blog post that is particularly insightful, thorough, or thought-provoking
+
* ''Exceptional'': a blog post that is particularly insightful, thorough, or thought-provoking
* Satisfactory: a blog post that demonstrates that the student has read the articles, understands their main points, and can synthesize a response including personal insight
+
* ''Satisfactory'': a blog post that demonstrates that the student has read the articles, understands their main points, and can synthesize a response including personal insight
* Unsatisfactory: a blog post that demonstrates that the student has not read the articles, does not understand the main points, and/or is simply summarizing the readings but not relaying any personal insight
+
* ''Unsatisfactory'': a blog post that demonstrates that the student has not read the articles, does not understand the main points, and/or is simply summarizing the readings but not relaying any personal insight
* Not submitted: when it's... umm... "not submitted"
+
* ''Not submitted'': when it's... umm... "not submitted"
  
 
Students are also expected to attend and participate in all discussions of the reading assignments. Participation is assessed on the following scale:
 
Students are also expected to attend and participate in all discussions of the reading assignments. Participation is assessed on the following scale:
* Exceptional: numerous contributions to the discussion that are particularly insightful, thorough, or thought-provoking
+
* ''Exceptional'': numerous contributions to the discussion that are particularly insightful, thorough, or thought-provoking
* Satisfactory: multiple contributions to the discussion that reflect the student's personal insight
+
* ''Satisfactory'': multiple contributions to the discussion that reflect the student's personal insight
* Unsatisfactory: few or no contributions to the discussion, or contributions that do not offer any insight
+
* ''Unsatisfactory'': few or no contributions to the discussion, or contributions that do not offer any insight
* Unexcused absence: when they're... ehhh... "absent" (without a verified excuse)
+
* ''Unexcused absence'': when they're... ehhh... "absent" (without a verified excuse)
  
 
For learning activities and other class meetings (not involving discussions of reading assignments), students are simply assessed as present or absent.
 
For learning activities and other class meetings (not involving discussions of reading assignments), students are simply assessed as present or absent.
Line 55: Line 45:
  
 
There are three milestones for contributions to the project: an initial task (usually around week 3 or 4 in a 13-week course, assuming work starts around week 2); a small task (around week 7 or 8); and a large task (at the end of the course). Each milestone is assessed by the mentor and/or the instruction staff on the following scale:
 
There are three milestones for contributions to the project: an initial task (usually around week 3 or 4 in a 13-week course, assuming work starts around week 2); a small task (around week 7 or 8); and a large task (at the end of the course). Each milestone is assessed by the mentor and/or the instruction staff on the following scale:
* Exceptional: contributions that exceed expectations and are of very high quality
+
* ''Exceptional'': contributions that exceed expectations and are of very high quality
* Satisfactory: contributions that meet expectations and are of acceptable quality to the community
+
* ''Satisfactory'': contributions that meet expectations and are of acceptable quality to the community
* Unsatisfactory: contributions that fail to meet expectations or are of low quality
+
* ''Unsatisfactory'': contributions that fail to meet expectations or are of low quality
  
Additionally, students are expected to post updates to their blogs each week, in which they describe what they have accomplished in the past week (with supporting evidence such as links to discussion board posts, GitHub PRs, etc.), what they hope to accomplish in the following week, and what might prevent them from doing so. Weekly blog posts are assessed as follows:
+
Additionally, students are expected to post project updates to their blogs each week, in which they describe: what they have accomplished in the past week (with supporting evidence such as links to discussion board posts, GitHub PRs, etc.); if they did not accomplish everything planned, why not; how much time they spent on the project last week; what they hope to accomplish in the following week; and what might prevent them from doing so. Weekly blog posts are assessed as follows:
 
* Satisfactory: a blog post in which the student answers all of the prompts
 
* Satisfactory: a blog post in which the student answers all of the prompts
 
* Unsatisfactory: a blog post in which some prompts are unanswered or not taken seriously
 
* Unsatisfactory: a blog post in which some prompts are unanswered or not taken seriously
Line 65: Line 55:
  
 
Finally, students are expected to submit a final report in which they describe and reflect on their experience and the course in general. The final report is assessed as follows:
 
Finally, students are expected to submit a final report in which they describe and reflect on their experience and the course in general. The final report is assessed as follows:
* Satisfactory: a report in which the student answers all of the prompts
+
* ''Satisfactory'': a report in which the student answers all of the prompts
* Unsatisfactory: a report in which some prompts are unanswered or not taken seriously
+
* ''Unsatisfactory'': a report in which some prompts are unanswered or not taken seriously
* Not submitted: when it's... ya know...
+
* ''Not submitted'': when it's... ya know...
 +
 
 +
=== Course Outline ===
  
== 3. Course Outline ==
 
 
{| class="wikitable" cellpadding="10" ! style="text-align:center; color:purple"
 
{| class="wikitable" cellpadding="10" ! style="text-align:center; color:purple"
 
!  Week
 
!  Week
Line 81: Line 72:
 
* [[Fossisms]]
 
* [[Fossisms]]
 
Blogs, IRC, and GitHub
 
Blogs, IRC, and GitHub
* Activity: [[Blog_Activity]]
+
* Activity: [https://github.com/ChrisMurphyOnline/open-source-software-development-course/blob/master/activities/foss-tools-activity.txt FOSS tools], based on [[Blog_Activity]], [[Intro to IRC (Activity)]], and [[Git:_GitHub_Issues_and_Pull_Requests]]
* Activity: [[Intro_IRC_Activity]]
+
* Activity: [[Git:_GitHub_Issues_and_Pull_Requests]]
+
 
|
 
|
  
Line 92: Line 81:
 
* How does FOSS differ from commercial software?
 
* How does FOSS differ from commercial software?
 
FOSS Field Trip and Project Evaluation
 
FOSS Field Trip and Project Evaluation
* Activity: [[FOSS_Field_Trip_Activity]]
+
* Activity: [https://github.com/ChrisMurphyOnline/open-source-software-development-course/blob/master/activities/foss-evaluation-activity.txt Evaluating a FOSS project], based on [[Intro to FOSS Project Anatomy (Activity)]], [[FOSS Field Trip (Activity)]], and [[Evaluate a Project (Activity)]]
 
|
 
|
*[https://en.wikipedia.org/wiki/Open-source_software Wikipedia article on FOSS]
+
* [https://en.wikipedia.org/wiki/Open-source_software Wikipedia article on FOSS]
*[http://www.catb.org/~esr/writings/cathedral-bazaar/cathedral-bazaar/index.html Eric Raymond, ''The Cathedral and the Bazaar'']
+
* [http://www.catb.org/~esr/writings/cathedral-bazaar/cathedral-bazaar/index.html Eric Raymond, ''The Cathedral and the Bazaar'']
*[http://www.gnu.org/philosophy/open-source-misses-the-point.html Richard Stallman, "Why Open Source misses the point of Free Software"]
+
* [http://www.gnu.org/philosophy/open-source-misses-the-point.html Richard Stallman, "Why Open Source misses the point of Free Software"]
  
 
|- style="text-align:left; color:black"
 
|- style="text-align:left; color:black"
Line 104: Line 93:
 
* How do you get involved in and known within a community?
 
* How do you get involved in and known within a community?
 
Start Getting Involved in Project
 
Start Getting Involved in Project
* Learning Activity -- '''COMING SOON!'''
+
* Activity: [https://github.com/ChrisMurphyOnline/open-source-software-development-course/blob/master/activities/foss-get-involved.txt Getting involved in a FOSS project], based on [[Intro to FOSS Project Anatomy (Activity)]] and [[Connect with the Community (Activity)]]
 
|
 
|
 
* https://opensource.com/life/13/4/ten-ways-participate-open-source
 
* https://opensource.com/life/13/4/ten-ways-participate-open-source
Line 132: Line 121:
 
| 6
 
| 6
 
| Licensing and Legal Issues
 
| Licensing and Legal Issues
* Something
+
* What are the different licensing options for FOSS projects?
* Something Else
+
* Why would someone choose one over the other?
 +
* Note: we usually have a guest speaker from the Law School for this discussion
 
|
 
|
 
* http://opensource.org/faq
 
* http://opensource.org/faq
Line 142: Line 132:
 
| 7
 
| 7
 
| FOSS Business Models and Opportunities
 
| FOSS Business Models and Opportunities
* Something
+
* How do companies make money from FOSS?
* Something Else
+
* What advantages does this have over commercial software?
 
|
 
|
 
* https://handsontable.com/blog/articles/5-successful-business-models-for-web-based-open-source-projects
 
* https://handsontable.com/blog/articles/5-successful-business-models-for-web-based-open-source-projects
Line 151: Line 141:
 
|- style="text-align:left; color:black"
 
|- style="text-align:left; color:black"
 
| 8
 
| 8
| HFOSS
+
| Humanitarian FOSS
* Something
+
* How do HFOSS projects differ from conventional FOSS projects?
* Something Else
+
 
|
 
|
 
* http://timreview.ca/article/399
 
* http://timreview.ca/article/399
Line 162: Line 151:
 
| 9
 
| 9
 
| FOSS Success Stories
 
| FOSS Success Stories
* Something
+
* What are examples of successful FOSS projects and organizations?
* Something Else
+
* What has made them successful?
 +
* What has caused other projects/organizations to not be as successful?
 
|
 
|
 
* http://mediashift.org/2013/08/6-things-to-know-about-successful-open-source-software/
 
* http://mediashift.org/2013/08/6-things-to-know-about-successful-open-source-software/
Line 173: Line 163:
 
| 10
 
| 10
 
| Starting and Growing a FOSS Community
 
| Starting and Growing a FOSS Community
* Something
+
* How does one go about growing a FOSS community?
* Something Else
+
* What are some pitfalls in doing so?
 
|
 
|
 
* http://oss-watch.ac.uk/resources/howtobuildcommunity  
 
* http://oss-watch.ac.uk/resources/howtobuildcommunity  
Line 183: Line 173:
 
| 11
 
| 11
 
| Criticisms of FOSS
 
| Criticisms of FOSS
* Something
+
* What are some of the drawbacks of FOSS as a way of developing software?
* Something Else
+
* Can/does FOSS live up to its expectations?
 
|
 
|
 
* http://www.ashedryden.com/blog/the-ethics-of-unpaid-labor-and-the-oss-community  
 
* http://www.ashedryden.com/blog/the-ethics-of-unpaid-labor-and-the-oss-community  
Line 191: Line 181:
 
|}
 
|}
  
== 4. Notes to Instructor ==
+
=== Notes to Instructor ===
 +
 
 
The schedule above lists 11 weeks but can be expanded to a longer schedule depending on breaks, exams, etc.
 
The schedule above lists 11 weeks but can be expanded to a longer schedule depending on breaks, exams, etc.
  
== 5. Moving Forward ==
+
=== Moving Forward ===
* ''what next steps are desirable or possible for this course''
+
  
--------------------
+
This variant of this course will be first taught in Fall 2016; modifications will be reported back in early 2017.  
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]]
+
--------------------
 +
{{License CC BY SA}}
  
 
Materials linked to by this page may be governed by other licenses.
 
Materials linked to by this page may be governed by other licenses.
  
[[Category: Course]]
+
[[Category:Courses]]
[[Category: WorkInProgress]]
+
[[Category:(H)FOSS Course]]
[[Category: Education]]
+

Revision as of 17:14, 27 February 2017

Contents

Overview

Course Open Source Software Development
Institution University of Pennsylvania
Instructor(s) Chris Murphy
Term Univ of Pennsylvania: CIS 399 Special Topics, Fall 2016 (14 undergraduates)
Course Overview This course exposes students to the cultural, technical, and legal aspects of FOSS development and provides students with an opportunity to contribute to a real-world open-source software project, and gain experience in software maintenance and enhancing software quality.
Course Length {{{courselength}}}
Student Characteristics The course is targeted to upper-level undergraduate or graduate students.
Prerequisites Students should have completed a traditional software engineering course and have had experience working in groups. They should be familiar with GitHub and the target programming language for the FOSS project on which they will work.
Infrastructure The class meets twice a week for 75 minutes each. In general, one of the class meetings will consist of discussions of the reading assignments and/or guest speakers, and the other class meeting that week will be for learning activities, project status updates and presentations, or time to work on the project.


Learning Objectives

As a result of completing this course, students will be able to do the following:

  • describe the technical, cultural, legal, and business foundations of FOSS
  • engage with and make contributions to a FOSS project community

Methods of Assessment

Each week, students are expected to post to their public blogs a 200-300 word response to the weekly reading assignment. In some cases, specific prompts may be given but in general the prompt is open-ended. Blog posts are assessed on the following scale:

  • Exceptional: a blog post that is particularly insightful, thorough, or thought-provoking
  • Satisfactory: a blog post that demonstrates that the student has read the articles, understands their main points, and can synthesize a response including personal insight
  • Unsatisfactory: a blog post that demonstrates that the student has not read the articles, does not understand the main points, and/or is simply summarizing the readings but not relaying any personal insight
  • Not submitted: when it's... umm... "not submitted"

Students are also expected to attend and participate in all discussions of the reading assignments. Participation is assessed on the following scale:

  • Exceptional: numerous contributions to the discussion that are particularly insightful, thorough, or thought-provoking
  • Satisfactory: multiple contributions to the discussion that reflect the student's personal insight
  • Unsatisfactory: few or no contributions to the discussion, or contributions that do not offer any insight
  • Unexcused absence: when they're... ehhh... "absent" (without a verified excuse)

For learning activities and other class meetings (not involving discussions of reading assignments), students are simply assessed as present or absent.

Students are also expected to contribute to an open source project. The project on which the student will work must be approved by the instructor. If possible, a mentor within the project community should be identified and should be available to help the student with onboarding activities, becoming familiar with the project and community, and identifying tasks to work on.

There are three milestones for contributions to the project: an initial task (usually around week 3 or 4 in a 13-week course, assuming work starts around week 2); a small task (around week 7 or 8); and a large task (at the end of the course). Each milestone is assessed by the mentor and/or the instruction staff on the following scale:

  • Exceptional: contributions that exceed expectations and are of very high quality
  • Satisfactory: contributions that meet expectations and are of acceptable quality to the community
  • Unsatisfactory: contributions that fail to meet expectations or are of low quality

Additionally, students are expected to post project updates to their blogs each week, in which they describe: what they have accomplished in the past week (with supporting evidence such as links to discussion board posts, GitHub PRs, etc.); if they did not accomplish everything planned, why not; how much time they spent on the project last week; what they hope to accomplish in the following week; and what might prevent them from doing so. Weekly blog posts are assessed as follows:

  • Satisfactory: a blog post in which the student answers all of the prompts
  • Unsatisfactory: a blog post in which some prompts are unanswered or not taken seriously
  • Not submitted: when it's... like... "not submitted"

Finally, students are expected to submit a final report in which they describe and reflect on their experience and the course in general. The final report is assessed as follows:

  • Satisfactory: a report in which the student answers all of the prompts
  • Unsatisfactory: a report in which some prompts are unanswered or not taken seriously
  • Not submitted: when it's... ya know...

Course Outline

Week Topics/Activities Reading Assignments
1 Course Introduction
  • Course logistics
  • Brief overview of FOSS
  • Fossisms

Blogs, IRC, and GitHub

2 FOSS Background
  • What are the intellectual, technical, and cultural foundations and justifications of FOSS?
  • How does FOSS differ from commercial software?

FOSS Field Trip and Project Evaluation

3 Getting Started in FOSS
  • How do you learn about a FOSS project's culture and community?
  • How do you get involved in and known within a community?

Start Getting Involved in Project

4 Ways of Contributing to FOSS
  • What are the different types of contributions someone can make to a FOSS project?
  • What is the process of making contributions?
5 What Motivates People to Contribute to FOSS
  • Why do people contribute to FOSS projects?
  • In what ways are people rewarded for their contributions?
  • Does motivation rely on the type of contribution, or vice-versa?
6 Licensing and Legal Issues
  • What are the different licensing options for FOSS projects?
  • Why would someone choose one over the other?
  • Note: we usually have a guest speaker from the Law School for this discussion
7 FOSS Business Models and Opportunities
  • How do companies make money from FOSS?
  • What advantages does this have over commercial software?
8 Humanitarian FOSS
  • How do HFOSS projects differ from conventional FOSS projects?
9 FOSS Success Stories
  • What are examples of successful FOSS projects and organizations?
  • What has made them successful?
  • What has caused other projects/organizations to not be as successful?
10 Starting and Growing a FOSS Community
  • How does one go about growing a FOSS community?
  • What are some pitfalls in doing so?
11 Criticisms of FOSS
  • What are some of the drawbacks of FOSS as a way of developing software?
  • Can/does FOSS live up to its expectations?

Notes to Instructor

The schedule above lists 11 weeks but can be expanded to a longer schedule depending on breaks, exams, etc.

Moving Forward

This variant of this course will be first taught in Fall 2016; modifications will be reported back in early 2017.


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

CC license.png


Materials linked to by this page may be governed by other licenses.

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