Un iv e s i t a t de le s UIB Il l e s Ba l e a r s

Máster en Tecnologías de la información y de las comunicaciones

Descriptor de curso/asignatura Curso académico 2009-10

Ficha técnica

Curso/Asignatura Nombre: Sistemas de software libre Código: 10510 Tipo: optativa Semestre: primero Horario: Idioma: castellano (también catalán e inglés) Profesorado Profesor/a responsable Nombre: Ricardo Galli Granada Contacto: [email protected] Otro profesorado Nombre: Llorenç Valverde García Contacto: Nombre: Contacto:

Número de créditos: 5

Objetivos y competencias

Ofrecer los conocimientos necesarios para desarrollar aplicaciones distribuidas sobre www y medir el rendimiento de las mismas.

Competencias específicas: • Conocer los sistemas GNU/Linux. • Conocer los aspectos básicos de administración y programación de sistemas. • Conocer la plataforma LAMP y algunas aplicaciones web. • Conocer los servicios de red fundamentales.

Contenidos

1. Introducción, aspectos éticos y legales Historia. Aspectos éticos y legales. Motivaciones de los desarrolladores. Economía del software libre. Iniciativas públicas. Comparación de la comunidad científica y la del software libre. Aspectos legales y licencias de software. Ingeniería del software libre 2. Sistemas GNU/Linux Arquitectura del sistema operativo. 1 Introducción a los sistemas operativos: el núcleo, herramientas del sistema, núcleo Linux, herramientas GNU. Sistemas de ficheros y journaling . Arquitectura de escritorios gráficos: X11/Xorg, KDE y GNOME. 3. Administración y programación de sistemas Distribuciones, instalación y mantenimiento. Lenguajes de scripting. Programación . Programación Perl y Python 4. Plataforma LAMP y aplicaciones web Arquitectura y servidores web: Apache, lighthttp. Estándar CGI. Lenguajes encastados. Lenguajes y herramientas de desarrollo: PHP, Python,, Ruby. Bases de datos: MySQL, PostgreSQL, SQLite. Programación web, frameworks, prácticas recomendadas. Sistemas de base de datos distribuidos y escalabilidad. Django 5. Servicios de red fundamentales Configuración de redes TCP/IP. Conexión remota segura: SSH. Sistemas de ficheros remotos, Samba. Impresión: CUPS. Correo electrónico, servidores SMTP, Sendmail, Exim, Postfix. DHCP. Servicios de nombres DNS. Estándar DNS, Bind, campos.

Metodología de enseñanza y aprendizaje

Metodología de aprendizaje Tipo de grupo Porcentaje del total de créditos  Clases magistrales Grande 20%  Calases prácticas Mediano 40%  Estudio teórico Individual 10%  Estudio práctico Individual 10%  Trabajos prácticos Pequeño 10% 

Criterios y procedimientos de evaluación

Se valorará el logro de los conocimientos necesarios para:  Reconocer tipos de software y licencias libres, herramientas y tipos de gestión de proyectos.  Arquitectura y desarrollo de aplicaciones distribuidas sobre la www con software libre.

Bibliografía, lecturas recomendadas y otros recursos didácticos para el trabajo autónomo

1. Introducción al software libre . ( http://www.uoc.edu/masters/cat/img/693.pdf ). 2. . Software libre para una sociedad libre (http://www.sindominio.net/biblioweb/pensamiento/softlibre/ ). 3. Eric Raymond. “The Cathedral and the Bazaar”. http://www.catb.org/~esr/writings/cathedral-bazaar/ 2 4. Mark Pilgrim. Dive into Python. http://diveintopython.org/ 5. Adrian Holovaty and Jacob Kaplan-Moss. The Definitive Guide to Django: Web Development Done Right. http://www.djangobook.com/

6. Nikolai Bezroukov. “Open source software development as a Special Type of Academic Rsearch. http://www.firstmonday.dk/issues/issue4_10/bezroukov/index.html 7. 8. Luyin Zhao, Sebastian Elbaum. "Quality assurance under the open source development model." The Journal of Systems and Software (2003) 65-75.

3