fosstalk

24
The Humanitarian FOSS Project http://hfoss.org Allen Tucker Bowdoin College [email protected] http://bowdoin.edu/~allen http://myopensoftware.org

description

http://posscon.org/assets/Uploads/fosstalk.pdf

Transcript of fosstalk

Page 1: fosstalk

The Humanitarian FOSS Project

http://hfoss.org

Allen TuckerBowdoin College

[email protected]://bowdoin.edu/~allenhttp://myopensoftware.org

Page 2: fosstalk

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

Page 3: fosstalk

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

Page 5: fosstalk

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.

Page 6: fosstalk

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)

Page 7: fosstalk

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

Page 8: fosstalk

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/

Page 9: fosstalk

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.

Page 10: fosstalk

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).

Page 11: fosstalk

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)

Page 12: fosstalk

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”

Page 13: fosstalk

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.

Page 14: fosstalk

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.

Page 15: fosstalk

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)

Page 16: fosstalk

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)

Page 17: fosstalk

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

Page 18: fosstalk

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?

Page 19: fosstalk

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

Page 20: fosstalk

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

Page 21: fosstalk

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

Page 22: fosstalk

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

Page 23: fosstalk

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]

Page 24: fosstalk

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).