Teaching Open Source In The University

Preview:

DESCRIPTION

Experiences in using open source in various classes at a university.

Citation preview

Teaching Open Source in the UniversityExperiences, strategies, and response

by Dominique Gerald M. Cimafrancadominique.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 ventures● Public funding● “Needed Improvement”

Funding● Indirect Funding

● Internal Use

● Revenue-Based● “Best Knowledge Here”

without constraints● “Best Knowledge Here”

with Constraints● “Special” Licenses

● 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

● Gnome

● KDE

● OpenOffice.org

● GIMP

● Inkscape

● Perl

● Python

● PHP

● Ruby

● MySQL

● PostgreSQL

● Wordpress

● Drupal

● Joomla

● Plone

● Zope

● Zend

● CakePHP

● Ruby on Rails

● Compiere / Adempiere

● OpenBravo

● 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

● CodeIgniter

● CakePHP

● Facebook application development

● Gambas

● Wine

● DOSBOX

● OpenBravo

● GIMP effects and plugins

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

● Nessus

● Wireshark

● Snort

● Firestarter

● ufw

● ClamAV

● Apache + SSL

● GNU Privacy Guard

● OpenSSH

● SpamAssassin

● Rootkit Hunter

CS251 Operating Systems

● VirtualBox guests

● More intensive command-line exercises

● XDMCP and VNC

● Wine and DOSBOX

● DHCP

● DNS

● Firewall

● LTSP

● Remote automated install

● Creating a .deb package

● Kernel compilation

● Writing a system call

● Damn Small Linux

● Fedora Core

● CentOS

● OpenSolaris

● FreeBSD

● Minix

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

● Source code

● Derived works

● Integrity of the author's source code

● No discrimination against persons or groups

● No discrimination against fields of endeavor

● Distribution of license

● License must not be specific to a product

● License must not restrict other software

● License must be technology-neutral

http://www.opensource.org

Recommended