learning with foss
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]