KEMBAR78
Teaching Open Source In The University | PDF
Teaching Open Source in the University
Experiences, strategies, and response



                  by Dominique Gerald M. Cimafranca
                     dominique.cimafranca@gmail.com




 This work is licensed under the Creative Commons Attribution-Share Alike 3.0 Philippines License. To view a copy of this
 license, visit http://creativecommons.org/licenses/by-sa/3.0/ph/ or send a letter to Creative Commons, 171 Second Street,
 Suite 300, San Francisco, California, 94105, USA.
“Do we need to teach
open source?”
“Is the fish aware of
the water?”
Why teach open source?
●   Expand the range of available options in IT
●   Open up avenues for collaboration and research
●   Convey deeper understanding of software licensing
●   Explore unconventional business models
●   It's fun
My story so far...
●   IT288 Information Security
●   IT312 Business Applications
●   CS251 Operating Systems
Coverage of IT312
●   Introduction to Linux
●   Overview of open source
●   Student presentations on various open source projects
●   Structure: 2 hours lecture, 3 hours lab, 18 weeks
Why Ubuntu?
●   It's an unfamiliar environment for the students
●   Easy to deploy in Windows-only labs, via WUBI
●   Repositories give access to a large software library
●   Hassle-free, easy-to-use, stays out of the way
●   It's my primary distribution
Many meanings of open source
●   Open source as license
●   Open source as development methodology
●   Open source as community
●   Open source as business model
●   Open source as technologies
Licensing
●   Until this class, many students are only vaguely aware
    of software licensing and its implications
●   Proprietary vs open source software licenses
●   Also touches on copyright issues
Software License
●   a typical software license grants an end-user permission
    to use one or more copies of software in ways where such
    a use would otherwise constitute infringement of the
    software publisher's exclusive rights under copyright law
●   the software license acts as a promise from the software
    publisher to not sue the end-user for engaging in activities
    that would normally be considered exclusive rights
    belonging to the software publisher
Proprietary Software License
●   Software publisher grants a license to use one or more
    copies of software; however
●   Ownership of those copies remains with the software
    publisher
    ●   All rights are reserved by the software publisher
    ●   Only a limited set of rights are given to the user
●   User must accept the software license to use it
Open source software license
●   Ownership of a particular copy of the software is
    transferred to the user
    ●   End-user is granted the same rights as the copyright
        owner
    ●   Extra rights may also be given to the user
●   However, copyright ownership does not change; it
    remains with the publisher
●   Acceptance of open source license is optional in order to
    use it
●   However, exercising the additional rights requires
    acceptance of the license
Open source business models
●   Externally funded                   ●   Revenue-Based
    ventures                                ●   “Best Knowledge Here”
    ●   Public funding                          without constraints
    ●   “Needed Improvement”                ●   “Best Knowledge Here”
        Funding                                 with Constraints
    ●   Indirect Funding                    ●   “Special” Licenses
●   Internal Use                        ●   Unfunded developments




                  From “Free/Libre Open Source Software: A Guide for SMEs” (IOSN)
                  http://smeguide.conecta.it/smeguide-eu.pdf
Open source reporting topics
●   Linux / Ubuntu       ●   Wordpress
●   Gnome                ●   Drupal
●   KDE                  ●   Joomla
    OpenOffice.org
                             Plone
●
                         ●

●   GIMP
                         ●   Zope
●   Inkscape
                         ●   Zend
●   Perl
                         ●   CakePHP
●   Python
●   PHP
                         ●   Ruby on Rails
●   Ruby                 ●   Compiere / Adempiere
●   MySQL                ●   OpenBravo
●   PostgreSQL           ●   Apache OfBiz
Open source reporting topics
●   TinyERP
●   Alfresco
●   KnowledgeTree
●   Asterisk
●   Ekiga
●   Wine
●   osCommerce
●   Synfig
●   Blender
2SY2008 Laboratory Structure
●   Three-hour laboratory session per week
●   Installation of Ubuntu via Wubi
●   Option 1: Structured Laboratory Path
    ●   Desktop and graphics applications
    ●   LAMP applications: content management systems
    ●   PHP development
●   Option 2: Freestyle Study-What-You-Like
●   Set up a WordPress server where they uploaded their
    results
2SY2008 Unexpected output
●   Ruby on Rails          ●   Wine
●   CodeIgniter            ●   DOSBOX
●   CakePHP                ●   OpenBravo
●   Facebook application   ●   GIMP effects and plugins
    development
●   Gambas
Summer 2009 Structure
●   3 hours per day x 5 days per week x 6 weeks
●   Pure laboratory, with short lectures + report time
●   Structured: Week 1 to Week 4
    ●   Ubuntu, LAMP applications, MySQL, Perl/Python/Ruby
●   Freestyle: Week 4 to Week 6
●   End-of-course presentation
Summer 2009 Unexpected Output
●   Synfig
●   Blender
●   KdenLive
●   Open Movie Editor
●   osCommerce
●   PostgreSQL vs MySQL
2SY2008 Survey
●   18 -- half the class -- had used Linux to some
    degree in the past
●   17 have installed Linux since the class started
●   7 students who had never before used Linux
    installed it on some system outside of class
●   the most common Linux distribution was
    Ubuntu (9), followed by Red Hat (6)
●   other distributions mentioned: Sabayon,
    Debian, CentOS, Kubuntu, and OpenSUSE
2SY2008 Survey
●   security from viruses (16)
●   free (cost) (13)
●   easy to install and manage the OS (10)
●   easy to install software (7)
●   minimal hardware requirements (5)
●   complete software on installation: (3)
●   other mentioned factors: speed (2), flexibility (2), good
    interface (2), fun to use (1), community (1), stability (1)
2SY2008 Survey
●   not used to it (13)
●   limited applications or difficult to install software (12)
●   no popular native games (5)
●   incompatible drivers (3)
●   command line difficulties (3)
IT288 Information Security
●   Nmap / Zenmap      ●   ClamAV
●   Nessus             ●   Apache + SSL
●   Wireshark          ●   GNU Privacy Guard
●   Snort              ●   OpenSSH
●   Firestarter        ●   SpamAssassin
●   ufw                ●   Rootkit Hunter
CS251 Operating Systems
●   VirtualBox guests             ●   Creating a .deb package
●   More intensive command-line   ●   Kernel compilation
    exercises                     ●   Writing a system call
●   XDMCP and VNC                 ●   Damn Small Linux
●   Wine and DOSBOX               ●   Fedora Core
●   DHCP                          ●   CentOS
●   DNS                           ●   OpenSolaris
●   Firewall                      ●   FreeBSD
●   LTSP                          ●   Minix
●   Remote automated install
2SY2008 Random Thoughts
●   Initial resistance, but plenty of interest in later stages of the
    class (esp. MVC frameworks and ERP apps)
●   Benefits of introducing open source early
    ●   More options for development tools
    ●   Awareness of licensing and business models
    ●   Collaborative work for thesis projects
●   Things I would have wanted to introduce
    ●   Eclipse collaborative environment
    ●   MVC and test-oriented development
    ●   Version control systems
2SY2008 Random Thoughts
●   Things I could have handled better
    ●   More structured exercises, esp. command line
    ●   Introduced ERP and business applications earlier
    ●   More leeway for those interested in graphics/multimedia
    ●   Segmented the students by aptitude earlier
●   The case for smaller lab class sizes
    ●   IT288 (13 students) achieves better depth in the topics
        than IT312 (36 students)
    ●   Difficult to balance differing aptitudes and skill levels
    ●   Perhaps I should have split the class in two?
Summer 2009 Random Thoughts
●   Summer classes were more conducive
    ●   Challenge in preparing enough laboratory material
    ●   Less distractions and more continuity in lab work
●   Allocate time for thesis projects, see where open
    source can be used
●   Google and Youtube are great learning resources,
    but...
Questions?
Free Software Definition
●   The freedom to run the program, for any purpose.
●   The freedom to study how the program works, and
    adapt it to your needs. Access to the source code is a
    precondition for this.
●   The freedom to redistribute copies so you can help
    your neighbor.
●   The freedom to improve the program, and release
    your improvements to the public, so that the whole
    community benefits. Access to the source code is a
    precondition for this.


                                http://www.gnu.org/philosophy/free-sw.html
Open Source Definition
●   Free redistribution         ●   Distribution of license
●   Source code                 ●   License must not be specific
                                    to a product
●   Derived works
                                ●   License must not restrict
●   Integrity of the author's
                                    other software
    source code
                                ●   License must be technology-
●   No discrimination against
                                    neutral
    persons or groups
●   No discrimination against
    fields of endeavor




                                              http://www.opensource.org

Teaching Open Source In The University

  • 1.
    Teaching Open Sourcein the University Experiences, strategies, and response by Dominique Gerald M. Cimafranca dominique.cimafranca@gmail.com This work is licensed under the Creative Commons Attribution-Share Alike 3.0 Philippines License. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/ph/ or send a letter to Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA.
  • 2.
    “Do we needto teach open source?”
  • 3.
    “Is the fishaware of the water?”
  • 4.
    Why teach opensource? ● Expand the range of available options in IT ● Open up avenues for collaboration and research ● Convey deeper understanding of software licensing ● Explore unconventional business models ● It's fun
  • 5.
    My story sofar... ● IT288 Information Security ● IT312 Business Applications ● CS251 Operating Systems
  • 6.
    Coverage of IT312 ● Introduction to Linux ● Overview of open source ● Student presentations on various open source projects ● Structure: 2 hours lecture, 3 hours lab, 18 weeks
  • 7.
    Why Ubuntu? ● It's an unfamiliar environment for the students ● Easy to deploy in Windows-only labs, via WUBI ● Repositories give access to a large software library ● Hassle-free, easy-to-use, stays out of the way ● It's my primary distribution
  • 8.
    Many meanings ofopen source ● Open source as license ● Open source as development methodology ● Open source as community ● Open source as business model ● Open source as technologies
  • 9.
    Licensing ● Until this class, many students are only vaguely aware of software licensing and its implications ● Proprietary vs open source software licenses ● Also touches on copyright issues
  • 10.
    Software License ● a typical software license grants an end-user permission to use one or more copies of software in ways where such a use would otherwise constitute infringement of the software publisher's exclusive rights under copyright law ● the software license acts as a promise from the software publisher to not sue the end-user for engaging in activities that would normally be considered exclusive rights belonging to the software publisher
  • 11.
    Proprietary Software License ● Software publisher grants a license to use one or more copies of software; however ● Ownership of those copies remains with the software publisher ● All rights are reserved by the software publisher ● Only a limited set of rights are given to the user ● User must accept the software license to use it
  • 12.
    Open source softwarelicense ● Ownership of a particular copy of the software is transferred to the user ● End-user is granted the same rights as the copyright owner ● Extra rights may also be given to the user ● However, copyright ownership does not change; it remains with the publisher ● Acceptance of open source license is optional in order to use it ● However, exercising the additional rights requires acceptance of the license
  • 13.
    Open source businessmodels ● Externally funded ● Revenue-Based ventures ● “Best Knowledge Here” ● Public funding without constraints ● “Needed Improvement” ● “Best Knowledge Here” Funding with Constraints ● Indirect Funding ● “Special” Licenses ● Internal Use ● Unfunded developments From “Free/Libre Open Source Software: A Guide for SMEs” (IOSN) http://smeguide.conecta.it/smeguide-eu.pdf
  • 14.
    Open source reportingtopics ● Linux / Ubuntu ● Wordpress ● Gnome ● Drupal ● KDE ● Joomla OpenOffice.org Plone ● ● ● GIMP ● Zope ● Inkscape ● Zend ● Perl ● CakePHP ● Python ● PHP ● Ruby on Rails ● Ruby ● Compiere / Adempiere ● MySQL ● OpenBravo ● PostgreSQL ● Apache OfBiz
  • 15.
    Open source reportingtopics ● TinyERP ● Alfresco ● KnowledgeTree ● Asterisk ● Ekiga ● Wine ● osCommerce ● Synfig ● Blender
  • 16.
    2SY2008 Laboratory Structure ● Three-hour laboratory session per week ● Installation of Ubuntu via Wubi ● Option 1: Structured Laboratory Path ● Desktop and graphics applications ● LAMP applications: content management systems ● PHP development ● Option 2: Freestyle Study-What-You-Like ● Set up a WordPress server where they uploaded their results
  • 17.
    2SY2008 Unexpected output ● Ruby on Rails ● Wine ● CodeIgniter ● DOSBOX ● CakePHP ● OpenBravo ● Facebook application ● GIMP effects and plugins development ● Gambas
  • 18.
    Summer 2009 Structure ● 3 hours per day x 5 days per week x 6 weeks ● Pure laboratory, with short lectures + report time ● Structured: Week 1 to Week 4 ● Ubuntu, LAMP applications, MySQL, Perl/Python/Ruby ● Freestyle: Week 4 to Week 6 ● End-of-course presentation
  • 19.
    Summer 2009 UnexpectedOutput ● Synfig ● Blender ● KdenLive ● Open Movie Editor ● osCommerce ● PostgreSQL vs MySQL
  • 20.
    2SY2008 Survey ● 18 -- half the class -- had used Linux to some degree in the past ● 17 have installed Linux since the class started ● 7 students who had never before used Linux installed it on some system outside of class ● the most common Linux distribution was Ubuntu (9), followed by Red Hat (6) ● other distributions mentioned: Sabayon, Debian, CentOS, Kubuntu, and OpenSUSE
  • 21.
    2SY2008 Survey ● security from viruses (16) ● free (cost) (13) ● easy to install and manage the OS (10) ● easy to install software (7) ● minimal hardware requirements (5) ● complete software on installation: (3) ● other mentioned factors: speed (2), flexibility (2), good interface (2), fun to use (1), community (1), stability (1)
  • 22.
    2SY2008 Survey ● not used to it (13) ● limited applications or difficult to install software (12) ● no popular native games (5) ● incompatible drivers (3) ● command line difficulties (3)
  • 23.
    IT288 Information Security ● Nmap / Zenmap ● ClamAV ● Nessus ● Apache + SSL ● Wireshark ● GNU Privacy Guard ● Snort ● OpenSSH ● Firestarter ● SpamAssassin ● ufw ● Rootkit Hunter
  • 24.
    CS251 Operating Systems ● VirtualBox guests ● Creating a .deb package ● More intensive command-line ● Kernel compilation exercises ● Writing a system call ● XDMCP and VNC ● Damn Small Linux ● Wine and DOSBOX ● Fedora Core ● DHCP ● CentOS ● DNS ● OpenSolaris ● Firewall ● FreeBSD ● LTSP ● Minix ● Remote automated install
  • 25.
    2SY2008 Random Thoughts ● Initial resistance, but plenty of interest in later stages of the class (esp. MVC frameworks and ERP apps) ● Benefits of introducing open source early ● More options for development tools ● Awareness of licensing and business models ● Collaborative work for thesis projects ● Things I would have wanted to introduce ● Eclipse collaborative environment ● MVC and test-oriented development ● Version control systems
  • 26.
    2SY2008 Random Thoughts ● Things I could have handled better ● More structured exercises, esp. command line ● Introduced ERP and business applications earlier ● More leeway for those interested in graphics/multimedia ● Segmented the students by aptitude earlier ● The case for smaller lab class sizes ● IT288 (13 students) achieves better depth in the topics than IT312 (36 students) ● Difficult to balance differing aptitudes and skill levels ● Perhaps I should have split the class in two?
  • 27.
    Summer 2009 RandomThoughts ● Summer classes were more conducive ● Challenge in preparing enough laboratory material ● Less distractions and more continuity in lab work ● Allocate time for thesis projects, see where open source can be used ● Google and Youtube are great learning resources, but...
  • 28.
  • 29.
    Free Software Definition ● The freedom to run the program, for any purpose. ● The freedom to study how the program works, and adapt it to your needs. Access to the source code is a precondition for this. ● The freedom to redistribute copies so you can help your neighbor. ● The freedom to improve the program, and release your improvements to the public, so that the whole community benefits. Access to the source code is a precondition for this. http://www.gnu.org/philosophy/free-sw.html
  • 30.
    Open Source Definition ● Free redistribution ● Distribution of license ● Source code ● License must not be specific to a product ● Derived works ● License must not restrict ● Integrity of the author's other software source code ● License must be technology- ● No discrimination against neutral persons or groups ● No discrimination against fields of endeavor http://www.opensource.org