30
Teaching Open Source in the University Experiences, strategies, and response by Dominique Gerald M. Cimafranca [email protected] 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.

Teaching Open Source In The University

Embed Size (px)

DESCRIPTION

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

Citation preview

Page 1: Teaching Open Source In The University

Teaching Open Source in the UniversityExperiences, strategies, and response

by Dominique Gerald M. [email protected]

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.

Page 2: Teaching Open Source In The University

“Do we need to teach open source?”

Page 3: Teaching Open Source In The University

“Is the fish aware of the water?”

Page 4: Teaching Open Source In The University

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

Page 5: Teaching Open Source In The University

My story so far...

● IT288 Information Security

● IT312 Business Applications

● CS251 Operating Systems

Page 6: Teaching Open Source In The University

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

Page 7: Teaching Open Source In The University

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

Page 8: Teaching Open Source In The University

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

Page 9: Teaching Open Source In The University

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

Page 10: Teaching Open Source In The University

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

Page 11: Teaching Open Source In The University

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

Page 12: Teaching Open Source In The University

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

Page 13: Teaching Open Source In The University

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

Page 14: Teaching Open Source In The University

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

Page 15: Teaching Open Source In The University

Open source reporting topics

● TinyERP

● Alfresco

● KnowledgeTree

● Asterisk

● Ekiga

● Wine

● osCommerce

● Synfig

● Blender

Page 16: Teaching Open Source In The University

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

Page 17: Teaching Open Source In The University

2SY2008 Unexpected output

● Ruby on Rails

● CodeIgniter

● CakePHP

● Facebook application development

● Gambas

● Wine

● DOSBOX

● OpenBravo

● GIMP effects and plugins

Page 18: Teaching Open Source In The University

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

Page 19: Teaching Open Source In The University

Summer 2009 Unexpected Output

● Synfig

● Blender

● KdenLive

● Open Movie Editor

● osCommerce

● PostgreSQL vs MySQL

Page 20: Teaching Open Source In The University

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

Page 21: Teaching Open Source In The University

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)

Page 22: Teaching Open Source In The University

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)

Page 23: Teaching Open Source In The University

IT288 Information Security

● Nmap / Zenmap

● Nessus

● Wireshark

● Snort

● Firestarter

● ufw

● ClamAV

● Apache + SSL

● GNU Privacy Guard

● OpenSSH

● SpamAssassin

● Rootkit Hunter

Page 24: Teaching Open Source In The University

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

Page 25: Teaching Open Source In The University

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

Page 26: Teaching Open Source In The University

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?

Page 27: Teaching Open Source In The University

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

Page 28: Teaching Open Source In The University

Questions?

Page 29: Teaching Open Source In The University

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

Page 30: Teaching Open Source In The University

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