learning with foss

Upload: indulals

Post on 29-May-2018

213 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/9/2019 Learning With FOSS

    1/28

    Learning withLearning with

    Free & Open SourceFree & Open SourceSoftwareSoftware

    Clif Kussmaul, PhD

  • 8/9/2019 Learning With FOSS

    2/28

    OverviewOverview

    I. Introductions

    II. FOSS

    III.Learning with FOSS

    IV. Conclusions

  • 8/9/2019 Learning With FOSS

    3/28

    Who is Clif Kussmaul?Who is Clif Kussmaul?

    y Fulbright-Nehru Scholar, Univ. of Kerala

    Dept. of CS & Centre for Bioinformatics

    y Associate Professor, Muhlenberg College

    y CTO, Elegance Technologies, Inc.

    y interests: software engineering

    collaboration & knowledge mgmt

    FOSS: wikis, CMS, LMS, SE toolsy other: cognitive neuroscience, music

    y married to Lane, with Ben (10) and Jin Yi (5)

  • 8/9/2019 Learning With FOSS

    4/28

    See theWorld!See theWorld!

    yWHY? meet interesting people

    see other countries & cultures

    learn languages & customs develop new insights on

    yourself & your culture

    y HOW? employment

    exchange programs

    grants

  • 8/9/2019 Learning With FOSS

    5/28

    US IndiaUS India

    EducationalEducationalFoundationFoundation

    yjoint program of Indian and US governments

    y grants for students, teachers, researchers, ...

    ~100 Indians study in the US each year

    ~100 Americans study in India each year

    y Fulbright House, 12 Hailey Rd,New Delhi 110001 INDIA

    y http://www.usief.org.in

  • 8/9/2019 Learning With FOSS

    6/28

    Who are you?Who are you?

    y faculty, student, staff, other?

    y CET, other?

    y

    experience with FOSS use, contribute?

  • 8/9/2019 Learning With FOSS

    7/28

    II. Free & Open Source SoftwareII. Free & Open Source Software

    y software with source code that isavailable to read & modify

    y many licenses & other variations

    y free as in free speech, not free beer

  • 8/9/2019 Learning With FOSS

    8/28

    FOSS is used in many domains.FOSS is used in many domains.

    y GNU project: emacs, gcc, flex/bison,

    Linux

    y Eclipse, CVS/SVN

    y Apache, mysql/postgres

    many LAMP tools: BBS, blog, CMS, wiki

    y Firefox, Thunderbird, OpenOffice, GIMP

    y Audacity, FreeMind, OpenWorkbench

  • 8/9/2019 Learning With FOSS

    9/28

    FOSS communities have structure.FOSS communities have structure.

    1. Core Team

    2. Developers

    3. Testers & Patchers4. Bug Reporters &

    Feature Requesters

    5. Silent Users &

    Passive Observers90%

    9%

    0.9%

    0.09%

    0.009%

  • 8/9/2019 Learning With FOSS

    10/28

    Most people climb the mountain.Most people climb the mountain.

    1. ???

    2. ERPSS, TWiki

    3. Drupal,MoinMoin

    4. Moodle, Trac,

    SubjectsPlus

    5. Apache, Eclipse,FreeMind, Linux,

    OpenWorkbench,

    OpenOffice,

  • 8/9/2019 Learning With FOSS

    11/28

    Example: ERPSSExample: ERPSS

    y Event Related Potential Software System

    brain wave (EEG) processing & analysis

    developed at UCSD in 70s and 80s

    y installed, used, & maintained; minor changes

    y developed software to convert

    raw data to ERPSS format

    y developed software to convertERPSS graphics to Adobe PostScript

    y still getting questions 20 years later

  • 8/9/2019 Learning With FOSS

    12/28

    Example: TWikiExample: TWiki

    y installed & experimented as part ofHP Technology for Teaching grant

    y used for entrepreneurship education

    y developed or significantly enhancedBibliographyPlugin,

    CommonHeaderFooterPlugin,

    improved formatting of search resultsy consulting for government, industry,

    & not-for-profit organizations

  • 8/9/2019 Learning With FOSS

    13/28

    III. Learning with FOSSIII. Learning with FOSS

    y FOSS has deep roots in academia.

    Culture of sharing information & knowledge.

    Budget limitations.

    y FOSS can & should have a deeper role,especially in CS/SE education.

  • 8/9/2019 Learning With FOSS

    14/28

    FOSS is both useful & interesting.FOSS is both useful & interesting.

    y (depending on the project, of course)

    y useful: low cost, flexibility, & quality

    y interesting:

    code & docs can be inspected & improved

    defect & enhancement reports are available

    varied stakeholder community

    development history is archived

    contributions are welcome

    y i.e. most characteristics of real software

  • 8/9/2019 Learning With FOSS

    15/28

    FOSS across the curriculum!FOSS across the curriculum!

    y Computer Science I & II

    y Software Engineering

    y Capstone Seminar

  • 8/9/2019 Learning With FOSS

    16/28

    Computer Science I & IIComputer Science I & II

    y USE FOSS: Linux, Moodle, Eclipse

    y free means more than open source

    point out opportunities to change code

    y read & refactor code, not write-only

    e.g. stub code, driver programs, unit tests

  • 8/9/2019 Learning With FOSS

    17/28

    Software EngineeringSoftware Engineering

    y 2nd year course

    y technical & non-technical threads

    teams, project management, entrepreneurship

    Stage Gate model to develop concepts

    y USEFOSS: SVN, Trac, FreeMind,

    OpenWorkbench, phpxref, etc.

    y assignments to STUDYand ADD

  • 8/9/2019 Learning With FOSS

    18/28

    Assignment: Analysis 1Assignment: Analysis 1

    1. Choose a FOSS project (from short list).

    2. Download complete source code.

    3. Choose one (dynamic) page.

    4. Save the HTML page source to a text file.

    5. STUDY & learn how the page is generated.

    6. Document in written overview & diagrams.

    7. Review with the instructor.

  • 8/9/2019 Learning With FOSS

    19/28

    Assignment: Analysis 2Assignment: Analysis 2

    1. Create a list of proposed features,with difficulty & interest ratings.

    2. Choose one feature to investigate.

    3. STUDY the code to understand howto implement the proposed feature,

    & make a plan.

  • 8/9/2019 Learning With FOSS

    20/28

    Assignments: DevelopmentAssignments: Development

    ADD some simple features,then BUILDmore interesting

    capabilities

  • 8/9/2019 Learning With FOSS

    21/28

    ExamplesExamples

    y phpBB bulletin board

    minor navigational enhancements

    y Moodle course management system

    enhanced navigation

    due date and submission rate display

    configurable search block

  • 8/9/2019 Learning With FOSS

    22/28

    Capstone ProjectsCapstone Projects

    y 3rd & 4th year course

    y Reading & discussion of advanced topics

    y Significant software project (solo or team)

    FOSS work BUILD or LEVERAGE

    academic research

    standalone software (rarely)

  • 8/9/2019 Learning With FOSS

    23/28

    Project FeedbackProject Feedback

    y I got some good exposure to open source communitiesand the ways that they work. the contrast between

    [two different] communities allowed me to see just howimportant that momentum is for other developers.

    y This acted as a way to teach me how to workon a project for a customer. [We] were thecontractors and the Librarians were our clients.

    We were consultants, providing progress reports

    and working on new acceptable features, tryingto meet the clients needs. [We] were lucky to havea way to experience working with people who hada vested interested in our production.

  • 8/9/2019 Learning With FOSS

    24/28

    ExamplesExamples

    y AudibleAlerts plugin for Pidgin (IM client)using eSpeak (speech synthesizer)

    y Extensions to let Drupal (CMS) exchange

    product info & orders with OpenBravo (ERP)y Enhanced query capabilities for Drupal Views,

    to support a tutor management system

    y Multiple enhancements to SubjectsPlus

    (library subject guide)

  • 8/9/2019 Learning With FOSS

    25/28

    IV. ConclusionsIV. Conclusions

    y FOSS offers more than free software

    y students & teachers can:

    study real code

    join professional communities

    solve problems that matter to other people

    learn real software development first hand

    y start gradually & climb the mountain

  • 8/9/2019 Learning With FOSS

    26/28

  • 8/9/2019 Learning With FOSS

    27/28

    Some friendly FOSS projectsSome friendly FOSS projects

    y content mgmt systems:

    Drupal, Joomla

    y wiki:

    FOSwiki, TWiki, Moin, MediaWiki

    y course mgmt system: Moodle

    y project mgmt systems: Trac, Bugzilla

  • 8/9/2019 Learning With FOSS

    28/28

    Questions & DiscussionQuestions & Discussion

    Clif Kussmaul [email protected]