1. FLOSS - Free/Libre Open Source Software
Author: Juan B Cabral <Jbc dot develop at gmail dot com>
Version: 1.5.1
Date: 20110927
licencia: FLOSS - Free/Libre Open Source Software por Juan B Cabral
(http://jbcabral.wordpress.com/publications/) se encuentra bajo una Licencia
Creative Commons Atribución-CompartirIgual 3.0 Unported
(http://creativecommons.org/licenses/by-sa/3.0/). Basada en una obra en
https://bitbucket.org/leliel12/papers.
2. Objetivo
Se pretende que el alumno al finalizar la asignatura alcance los siguientes objetivos generales:
• Comprender el FLOSS en sus ventajas técnicas, económicas y filosóficas.
• Aprender sobre las herramientas más populares actuales dentro de la comunidad FLOSS.
• Comprender la problemática actual sobre los bienes intangibles.
• Saber identificar las licencias correctas para distintos proyectos de software.
• Diseñar soluciones FLOSS económica y técnicamente viables.
• Saber administrar contribuciones de una comunidad a proyectos de software.
• Identificar las ventajas de un negocio FLOSS.
• Promover en la cátedra la crítica sobre el estado actual de los productos de software
propietarios.
3. Unidad 1 - Historia y filosofía del movimiento FLOSS
Objetivos específicos:
• Comprender los motivos de la creación de la "Free Software Foundation" y la "Open Source
Initiative" como así también comprender la importancia de las diferencias filosóficas entre las
dos iniciativas antes mencionadas.
• Comprender los diferentes estados por los que pasó el FLOSS a lo largo de los años.
• Comprender la necesidad técnica, económica y filosófica de las comunidades en el desarrollo
FLOSS.
• Comprender los principios de de la organización CreativeCommons.
Contenidos:
• Free Software Foundation y el movimiento del software libre:
• Primeros años: La cultura hacker , Richard Stallman y manifiesto GNU.
• Las 4 libertades y cómo se plasmaron en la familia de licencias GPL.
• Inicio de proyecto GNU y aparición del Núcleo Linux.
• "El derecho de leer".
• Filosofía software libre.
• Ventajas técnicas del software libre.
• Open Source Initiative:
• Separación de la FSF.
• Las 10 premisas del software de código abierto.
• Filosofía Open Source.
• Ventajas técnicas del OpenSource.
• Diferencias entre el Free Software y el OpenSource.
• Fundación de la organización Creative-Commons para la distribución de contenidos artísticos,
científicos y otras publicaciones.
• La comunidad como generadora de contenido y de productos.
• Eventos claves en la historia del OpenSource.
Actividades:
Los temas teóricos son desarrollados en clase a manera de debate. Se trabaja mediante filminas y
vídeos según corresponda a los temas.
Se guía al alumno en la creación de un proyecto FLOSS para aplicar todos los contenidos
aprendidos.
Bibliografía:
4. • Apunte de la cátedra.
• "MANIFESTO GNU". Stallman, R. Copyright (C) 1985, 1993, 2003, 2005 Free Software
Foundation, Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110, US.
(http://www.gnu.org/gnu/manifesto.es.html)
• "EL DERECHO DE LEER". Stallman, R. Copyright 1996 Richard Stallman
(http://www.gnu.org/philosophy/right-to-read.es.html).
• "OPEN SOURCE DEFINITION". CC-BY 2.5 (http://www.opensource.org/docs/definition.php)
• "REVOLUTION OS". J. T. S. Moore. Copyright (C) 2001 J. T. S. Moore.
(http://video.google.ca/videoplay?docid=7707585592627775409#)
• "CREATIVE-COMMONS FAQ". CC-BY 3.0. (http://wiki.creativecommons.org/FFAQ)
Evaluación:
Los temas teóricos serán evaluados en la única evaluación parcial al final del dictado de la materia.
Se evaluarán los avances del práctico integrador respecto a los temas dados.
5. Unidad 2 - Licenciamiento, Patentamiento y DRM
Objetivos específicos:
• Comprender la problemática actual de las patentes de software como así también el DRM.
• Comprender la importancia de la licencia de software como la herramienta más importante de
un proyecto.
• Identificar los diferentes tipos de licencias.
• Saber elegir la mejor licencia dadas las necesidades de un proyecto.
Contenidos:
• Patentes de software.
• El DRM y otros mecanismos de control de copias modernos.
• Licencias tipo EULA.
• Copyleft.
• La familia de Licencia GPL (versión 2 y versión 3) y la GFDL.
• La familia de licencias BSD y su cláusula publicitaria.
• La licencia Apache y la MPL.
• Creative Commons.
• El dominio público.
• Las licencias SharedSource de Microsoft.
Actividades:
Ídem Unidad Anterior.
Bibliografía:
7. Unidad 3 - Diseño y Desarrollo de software FLOSS
Objetivos específicos:
• Fomentar una manera ágil y simple de diseño de software orientado al producto y a la
comunicación de los desarrolladores.
• Saber elegir la metodología y herramientas para el desarrollo de proyectos FLOSS.
Contenidos:
• El código "auto documentado".
• Guías de estilo.
• Filosofía Unix de Diseño.
• Refactoring.
• Patrones: mitos y realidades.
• La comunidad como parámetro de buen diseño.
• Herramientas comunes en el diseño de proyectos open source.
• La catedral y el bazar.
Actividades:
Ídem Unidad Anterior.
Bibliografía:
• Apunte de la cátedra.
• "PEP 8: STYLE GUIDE FOR PYTHON CODE" Public domain
(http://www.python.org/dev/peps/pep-0008/)
• "PEP 20: THE ZEN OF PYTHON" Public domain (http://www.python.org/dev/peps/pep-0020/)
• "PEP 257: DOCSTRING CONVENTIONS" Public domain
(http://www.python.org/dev/peps/pep-0257/)
• "THE (LACK OF) DESIGN PATTERNS IN PYTHON" Copyright (C) 2009 Joe Gregorio
(http://us.pycon.org/2009/conference/schedule/event/51/).
• "LA CATEDRAL Y EL BAZAAR." Copyright (C) 1997 1998 Eric Raymond
(http://catb.org/esr/writings/cathedral-bazaar/)
• "LINUX AND THE UNIX PHILOSOPHY" Copyright (C) 2003 Mike Gancarz
(http://books.google.com/books?id=RaPwX0sScf4C)
Evaluación:
Ídem Unidad Anterior.
10. Metodología de Enseñanza y Aprendizaje
Se realizarán una evaluación teórica conformada por un parcial de tipo mixto (preguntas de opción
múltiple y cuestiones y casos concretos para desarrollar). Este tipo de evaluación, nos permite a los
docentes observar si el alumno razona y relaciona los contenidos de la asignatura (opciones múltiples) y
además, evaluar su comprensión sobre un tema en particular, descubriendo también su capacidad de
redacción, manejo de vocabulario y expresión escrita en temas concretos de la especialidad.
Se realizará un práctico integrador grupal que consisitirá en el diseño, desarrollo y documentación de una
contribución a un proyecto Floss existente o la creación de uno totalmente nuevo. El mismo deberá ser
realizado íntegramente con tecnologías y para plataformas FLOSS.
Consideraciones a tener en cuenta:
• Los Docentes desarrollarán la materia teórica y prácticamente respetando el PROGRAMA y la
BIBLIOGRAFíA propuesta.
• Tanto el Docente como sus Ayudantes evacuarán todas las dudas que surjan durante el dictado
de la asignatura.
• Se incentivará la búsqueda de información (tanto básica como de apoyo) en foros, mailing-list y
documentación oficial de acuerdo a la filosofía FLOSS.
11. Sistema de Evaluación
Para la regularización de la asignatura, el alumno deberá aprobar un parcial teórico y un trabajo práctico
integrador.
Parciales Teóricos:
Se tomará una evaluación parcial durante el ciclo lectivo y un recuperatorio del mismo (por aplazo o
por inasistencia).
Practico Integrador:
Se realizará un trabajo práctico integrador grupal que consisitirá en el diseño, desarrollo y
documentación de una contribución a un proyecto Floss existente o la creación de uno totalmente
nuevo. El mismo deberá ser realizado íntegramente con tecnologías y para plataformas FLOSS y
seraá publicado en alguna herramienta online para dicho fin.
Se evaluará por igual el diseño, documentación y programación de TODOS los integrantes del grupo,
así como el aporte a los prácticos de los demás compañeros u otros proyectos existentes.
Se contempla una reentrega del práctico en caso de no haber aprobado en una primera instancia.
Regularidad:
Para obtener la regularidad de la asignatura será requisito indispensable:
• Asistencia de bedelía.
• Aprobar el práctico integrador de la materia.
• Aprobar el parcial teórico (con el 60% como mínimo)con la posibilidad de un recuperatorio.
Promoción Total:
Para acceder a la promoción total de la asignatura es requisito:
• Haber obtenido nota mayor o igual a 8 (ocho) tanto en el examen teórico como en el
práctico integrador.
• No haber faltado ni haber reprobado el examen teórico.
• No haber reentregado el práctico integrador.
Exámen Final:
• Accederán al examen final de la materia aquellos alumnos que estén regulares.
• A los alumnos promocionados se les dará por aprobado dicho exámen.
• El exámen final constará de una evaluación teórica y la presentación de algún aporte práctico a
algún proyecto FLOSS.
12. Plan de integración con otras asignaturas
La asignatura está estrechamente relacionada con:
• Todas las materias del área programación, ya que son necesarias para el desarrollo de un
proyecto FLOSS.
• Materias como Diseño de Sistemas (DSI) e Ingeniería de Software (ISW) ya que plantea
mecanismos de control y diseño de proyectos descentralizados demostrados efectivos en la
práctica.
• Legislación y Economía ya que plantea un nuevo modelo de derechos y económico.
13. Changelog
1.5.1: Agregada licencia.
1.5: Portado a RST.
1.0: Primer versión.