Mentorship Models in Open Source Software Development Courses

Download Report

Transcript Mentorship Models in Open Source Software Development Courses

Experiences Teaching a
Standalone Open Source
Software Development Course
Chris Murphy
University of Pennsylvania
[email protected]
http://www.seas.upenn.edu/~cdmurphy/foss
Overview
• UPenn has offered an undergrad course on Open
Source Software Development since Spring ’14
• To date 40 students have contributed to a total of
29 different projects
Chris Murphy – University of Pennsylvania – POSSE 2016-06
Origins: Facebook Open Academy
• UPenn participated in Facebook Open Academy
in Spring ’14, Fall ’14, and Spring ’15
• Organized by Jay Borenstein from Stanford Univ.
• Around 10-20 participating universities each semester
• Students contribute to FOSS projects under
supervision of a local faculty member and
mentorship of professional software engineer
• Mentors on-board students during “Code Sprint”
at Facebook HQ in Menlo Park
Chris Murphy – University of Pennsylvania – POSSE 2016-06
Observations
• Initially an Independent Study: students’ only
deliverable was code for project
• “Working on project” vs. “Contributing to community”
• Only contributing code to the project doesn’t teach
them about FOSS!
• Students reported that they did not learn much
about FOSS culture and still had questions about
licensing, business models, culture, etc.
Chris Murphy – University of Pennsylvania – POSSE 2016-06
What I Learned from POSSE
• There’s so much more to FOSS than code!
• How to evaluate a project for use in course
• How to get bootstrapped/on-ramped onto a project
• How to engage the community
• Resources for learning about FOSS culture
• Whose ideas I can steal borrow
• That it’s important for students to understand
what “contributing” to FOSS means
Chris Murphy – University of Pennsylvania – POSSE 2016-06
Current Course Overview
• ~16 students; gender-balanced; targeted at juniors
and seniors who have completed Software Eng.
• Two 75-minute meetings each week
• Tues: seminar-style discussion of reading assignments
• Thurs: learning activities, code sprints, presentations
• Participate in FOSS project
• Weeks 1-2: identify/evaluate project options
• Weeks 3-4: engage with community; set up dev environment
• Weeks 4-5: work on small issues (newbie tasks, bug fixing,
documentation, etc.)
• Weeks 6-8: identify and complete small task
• Weeks 9-14: identify and complete larger task
Chris Murphy – University of Pennsylvania – POSSE 2016-06
Other Logistics
• Students can choose a project from a curated list
or identify one on their own
• Must work in (gender-balanced) pairs
• Most projects from curated list have a mentor
• Students must update their blogs each week
• What did you do? What do you plan on doing next?
What are potential obstacles? What are you learning?
• Students are expected to check in with their
mentor and/or TA each week
Chris Murphy – University of Pennsylvania – POSSE 2016-06
Challenges
• Convincing your Chair that there’s a need for a
standalone FOSS course
• Getting students to understand the benefits of
“soft skills”
• Ensuring that students continue to make progress
• Mentors are great…. if they’re committed!
Chris Murphy – University of Pennsylvania – POSSE 2016-06
Student Success Story: Nova
• CS major; took course as junior in Fall 2015
• Wanted to learn about Mozilla Rust
• Reached out to community and was pointed
toward Servo (web browser written in Rust)
• Found a mentor who guided her through
onramping, identifying tasks, contributing code
• Started by fixing bugs
• Then moved onto feature dev
• Numerous PRs merged
Chris Murphy – University of Pennsylvania – POSSE 2016-06
Student Success Story: Nova
• “I was really awed by open source software and
wanted to understand how it worked.”
• “My understanding of git improved and so did my
understanding of build systems and code
reviews.”
• “I gained confidence in talking to people who I
have never met in person.”
• Currently: intern at Google
• Next semester: TA for the course!
Chris Murphy – University of Pennsylvania – POSSE 2016-06
Experiences Teaching a
Standalone Open Source
Software Development Course
Chris Murphy
University of Pennsylvania
[email protected]
http://www.seas.upenn.edu/~cdmurphy/foss