Upload
matt-hudson
View
219
Download
2
Tags:
Embed Size (px)
DESCRIPTION
http://posscon.org/assets/Uploads/fosstalk.pdf
Citation preview
The Humanitarian FOSS Project
http://hfoss.org
Allen TuckerBowdoin College
[email protected]://bowdoin.edu/~allenhttp://myopensoftware.org
Origin and DefinitionDavid Patterson (ACM president) message to CS faculty:
Nov. 2005 “Let’s help our neighbors!”Mar. 2006 “Join the open-source movement!”The HFOSS Project began in 2006 to:Promote collaboration among Trinity, Wesleyan, and
Connnecticut College faculty.Broaden student interest in computing (especially among women
and other underrepresented groups)Revitalize computing curriculum (especially software
engineering)Help the community (service learning)
“HFOSS” = humanitarian free and open source software
HFOSS Project Elements
The HFOSS Project received two NSF CPATH grants (2007-2011). These grants help support:Academic courses in the computer science curriculumPartnerships: academia ⇔ industry ⇔ clientsSummer student internshipsPublic presentations, workshops, symposiaFOSS Certificate programCommunity growth beyond the three collegesIncubation of new software projects for specific clients
HFOSS Project Community (2009)
Typical HFOSS Software Projects
Sahana – disaster resource management (sahanafoundation.org)
OpenMRS – on-line medical records system (openmrs.org)RMH Homebase – volunteer scheduling (myopensoftware.org)GNOME Accessibility – helps disabled users (live.gnome.org)POSIT – portable open search identification tool
code.google.com/p/posit-mobile/)
For more details, see hfoss.org/index.php/projects2.
The RMH Homebase Project
Volunteer scheduling software supported by the HFOSS project: Developed in Jan-May 2008 by 4 Bowdoin CS students and an
instructor during a 1-semester courseInstalled in May 2008 at the Ronald McDonald House in
Portland, ME (rmhportland.org/volunteers/homebase)GPL-licensed: sources downloadable at
(sourceforge.net/projects/rmhhomebase)Inspired a new textbook: Software Development: An Open
Source Approach, CRC Press, 2011 (myopensoftware.org/textbook)
Now being adapted in 2011 for the Ronald McDonald House in Wilmington, DE (rmhde.myopensoftware.org)
FOSS in the CS CurriculumThree major points of contact for undergraduates:1. Service courseOpen to non-majors with little/no programming: teaches FOSS
principles; students interact with a live FOSS project2. Summer InternshipOpen to students with programming experience: competitive
application process, students contribute to a live FOSS project3. Software Development Course/ProjectOpen to CS majors, intermediate level (precursor/replacement
for a software engineering course), students contribute to a live FOSS project
Example FOSS Service Course
CPSC 110 – Computing on Mobile Phones (Spring 2011)24 students, no prior CS or programming experienceFocuses on building socially useful open source Android apps
using App Inventor (http://appinventor.googlelabs.com/about/)Students post their homework and apps on their own websites
(using http://sites.google.com).Students have completed their first projects, and are now
working on a GPS application.
For details, see http://turing.cs.trincoll.edu/~ram/cpsc110/
Example “first projects” in CPSC 110
1. Kat and Eva: “Pop a Dot”https://sites.google.com/site/katspportfolio/creative-project-1-1
2. Amir: “Trinity App”https://sites.google.com/site/amirsharifemamiportfolio/trinity-app
3. Elliott: “Bantam Dropper”https://sites.google.com/site/elliotbauersportfolio/checkpoint-1/creative-
projects/creative-project-1-bantam-dropper
Hypothesis: Students find CS interesting and exciting when given good tools, meaningful projects, and a FOSS perspective.
Hypothesis: CS is accessible to a much more diverse range of smart students than the current culture admits.
HFOSS Summer Internships
Intensive 10-week summer experiences for undergrads working on FOSS projects.
Interns work in small teams with faculty mentorsCompetitive application processOn-campus residency; $4000 stipend + room and boardImmersion with an ongoing FOSS project.Students learn to use collaboration and development tools (IDE,
VCS, discussion threads, bug tracking, new feature contributions, documentation, presentation).
Some Internship StatsSummer 2008: Trinity, Wesleyan, and Conn; 13 interns; 5
projects (Sahana, OpenMRS, AppTrac, InSTEDD, POSIT)For more, see http://2008.hfoss.org/ProjectsSummer 2009: Trinity, Wesleyan, and Conn; 11 interns; 6
projects (GNOME, Virtual EOC, OpenMRS, AppTrac, POSIT, InSTEDD)
For more, see http://2009.hfoss.org/HFOSS_Summer_2008Summer 2010: Trinity (8 interns), Wesleyan(5 interns), Conn
(6 interns), Mt. Holyoke College, Bergen Community College, and Oregon State University; 8 projects
For more, see http://notes.hfoss.org/index.php/TrinitySummer 2011: 30 applicants from 9 colleges (selection
process hasn't completed yet)
Internship OutcomesA sample of student testimonials:“All the development teams projected a warm home-like feeling,
and learning from others brought a new perspective to the field of Computer Science for me”
“To actually work on a project that was going to be used in the real world was quite motivating and inspiring, creating an experience I had not found anywhere else”
“The best part was how well we all got along and the flexibility of working hours. I'm satisfied with the work we did. For a first shot at a ‘real’ application, I think we did a pretty OK job”
“Open source development allows for experience that can usually only be gained in industry; this experience is hard to come by as an undergrad”
FOSS Development Course (CS260)Intermediate-level 1-semester course for CS majors (prereq:
CS1 and data structures) at Bowdoin CollegeStudents collaborate in teams on a live FOSS project, with a
concrete goal at the end of the course. Agile development, requirements come from a real client.
Students:Learn to use collaboration tools (discussion threads,
videoconferencing), development tools (IDE), version control (SVN, Mercurial, Git), unit testing and coding standards
Instructor: Sets milestones, schedules weekly meetings, assigns tasks,
provides code exemplars, evaluates outcomes.
CS260 Course OfferingsSpring 2008: 4 Bowdoin College students developed RMH
Homebase for the Ronald McDonald House in Portland, ME.Spring 2011: 2 Bowdoin students are developing RMH
Homeroom, a room scheduling applicationEach project is a 1-semester software development course.The course runs like a FOSS project: weekly Skype meetings, monthly milestones, direct client involvement, client training, installation on client's server.
CS260 Syllabus (milestones)
WeekActivities1-2 Using FOSS tools for collaboration and development3-5 Developing the domain classes6-8 Developing the database modules9-11 Developing the user interface modules12-13User documentation, trainingFinal Presentation and installation
(For details, see http://myopensoftware.org/content/extended-course-syllabus)
CS260 Cloning1. TextbookSoftware Development: An Open Source Approach, CRC Press (January 2011)
http://www.crcpress.com/product/isbn/9781439812907
2. Integrated with real-world software projects: http://myopensoftware.org/content/software-projects
3. On-line course support tutorials (Creative Commons licensed):
Setting Up Collaboration Tools
Setting up a Local Server and Database
Setting up an IDE and a VCS
Setting Up Documentation Tools
Setting Up Debugging and Unit Testing Tools (see http://myopensoftware.org/textbook for details)
Textbook Organization
Chapters1. Overview and Motivation2. Working with a Project
Team3. Using Project Tools4. Software Architecture5. Working with Code6. Developing the Domain
Classes
7. Developing the Database Modules
8. Developing the User Interface
9. User Support10. Project Governance11. New Project Conception
HFOSS Future Challenges
The FOSS Certificate: a new credential by which individual students can become “certified FOSS developers.”
Community Growth: how to port the model to a wide range of institutions – undergraduate, 2-year, secondary schools?
Sustainability: how to sustain the HFOSS project after its NSF grants expire?
The FOSS Certificate
Demonstrates student mastery of FOSS principles and practice.Specifies a curriculum of FOSS principles and practiceAccessible to all students in 2- and 4-year programsOn-line application by portfolioReview by HFOSS faculty and developersFirst applications and certificates will be issued in Spring 2011
For details, see http://cert.hfoss.org
FOSS Certificate Curriculum
Applicant must: demonstrate understanding of the FOSS Concepts, and complete at least one FOSS Practice while contributing to a live
FOSS project.FOSS ConceptsHistory of the FOSS movementImportant FOSS writings: The GNU Manifesto, The Cathedral
and the Bazaar, The Open Source DefinitionDistinctions between proprietary and open source softwareTypes of open source licenses
FOSS Certificate Curriculum (cont'd)
FOSS Concepts (cont'd)Various project roles: user, contributor, committer, leader, etc.Project organizational models: benevolent dictator, core teamThe “software release” and its components: code base,
documentation, license, etc.FOSS PracticesPerform meaningful code testing, including unit testingPerform meaningful debugging, including replication and fixingPerform meaningful refactoring of a portion of a code baseImplement a new feature in the code base
Growing the HFOSS community (2011)
New chapters (see details at hfoss.org/index.php/chapters)Rensselaer Polytechnic Institute: hfoss.rpi.eduMount Holyoke College: hfoss.cs.mtholyoke.eduOregon State University: web.engr.orst.edu/~sharifpa/HOSSBergen Community College: notes.hfoss.org/index.php/BergenNew projectsPOSITRMH Homebase RMH HomeroomGnome Accessibility
HFOSS Project SustainabilityMeasurement of the HFOSS Project impact on:
computing curriculacomputing enrollmentssoftware development practice
Transition to an HFOSS InstituteContinue activities when the NSF grant expiresLocate new corporate sponsorsAdd new partner institutionsIdentify new student-friendly FOSS projects
You are welcome to join this community: please contact me orRalph Morelli, Trinity College, [email protected]
References
Morelli, R. et al., Revitalizing Computing Education through Free and Open Source Software for Humanity, Communications of the ACM 52, 8 (August 2009), 67-75.
Tucker, A., Teaching client-driven software development. Proceedings of the ACM CCSC South Central Conference (April 2009).
Tucker, A., R. Morelli, and C. da Silva, Software Development: an Open Source Approach, CRC Press, 2011 (see myopensoftware.org/textbook).