PROGRAMA DE ASIGNATURA Titulación Curso académico F.INGENIERÍA – MÁSTER UNIVERSITARIO EN INGENIERÍA DE TELECOMUNICACIÓN 9740 Código y titulo de la asignatura 51324 OBLIGATORIO Temporalidad Semestre 2 Diseño de Servicios Avanzados Tipo 2016/17 Idioma Créditos UD Créditos ECTS SPA 5 5 Grupo/Idioma 01/Castellano Profesor Buján Carballal, David JUSTIFICACIÓN Las personas graduadas en Ingeniería Telemática por la Universidad de Deusto son capaces de aplicar sus conocimientos a la realización de tareas y resolución de problemas en diferentes áreas relacionadas con las Tecnologías de la Información y las Comunicaciones. Una de estas áreas es el desarrollo de aplicaciones y servicios accesibles vía web. En los últimos años estamos asistiendo a un trasvase masivo de aplicaciones desde el entorno de escritorio a la web. Hoy en día es habitual utilizar servicios de correo electrónico, calendario, mensajería instantánea, blogging y microblogging, ofimática o multimedia cuya arquitectura se fundamenta en tecnologías web. Conocer cómo se desarrollan las aplicaciones web se ha convertido en un requisito indispensable para las personas graduadas en Ingeniería Telemática, y esta asignatura pretende dar respuesta a esas preguntas y realizar aportaciones a la mayoría de las macrocompetencias específicas asociadas al perfil académico-profesional de la titulación Grado en Ingeniería Telemática. PRERREQUISITOS Poseer conocimientos de diseño y modelado de software y bases de datos. Poseer conocimientos básicos de programación. RESULTADO DE APRENDIZAJE EN TÉRMINOS DE COMPETENCIA GENÉRICAS Y ESPECÍFICAS COMPETENCIA GENÉRICA CG4.2. Trabajo en equipo: integrarse y colaborar de forma activa en la consecución de objetivos comunes con otras personas, áreas y organizaciones. Nivel 2: Contribuir en la consolidación y desarrollo del equipo, favoreciendo la comunicación, el reparto equilibrado de tareas, el clima interno y la cohesión. COMPETENCIA ESPECÍFICA CE1. Diseñar la arquitectura y el contenido de una aplicación web, de acuerdo a unos requisitos dados, separando la información de su formato, empleando las especificaciones, estándares, reglamentos, normas y recomendaciones correspondientes en cada caso y valorando el grado de cumplimiento necesario de cada una de ellas. COMPETENCIA ESPECÍFICA CE2. Seleccionar e implementar la tecnología cliente/servidor web adecuada, de acuerdo a unos requisitos dados, en lo referente al lenguaje de programación, plataforma empleada y servidor de aplicaciones. CONTENIDOS TEMA 1. INTRODUCCIÓN. ¿Qué es ingeniería web? Historia de la web, desde 1991 a nuestros días. Arquitecturas de las aplicaciones web. Lenguajes y estándares de Internet. Plataformas (frameworks) de programación web: parte servidora y parte cliente. TEMA 2. LOS LENGUAJES DE LA WEB. HTML5 y CSS3. Validación y cumplimiento de los estándares (W3C). Accesibilidad y "diseño para todos" en la web (WAI). Tecnologías XML. TEMA 3. TECNOLOGÍAS DE SERVIDOR. Servidores web y stack de soluciones: XAMPP. PHP como lenguaje de programación web. Symfony2 como plataforma (framework) de desarrollo web. TEMA 4. TECNOLOGÍAS DE CLIENTE. JavaScript como lenguaje de programación web. AJAX e interacción compleja mediante el framework jQuery. Introducción a AngularJS. Herramientas de gestión de proyectos JavaScript: Grunt, Bower, Yeoman. Hacia Full Stack JavaScript. TEMA 5. ARQUITECTURA ORIENTADA A SERVICIOS (SOA). Servicios Web: características y beneficios, estándares (SOAP, WSDL y UDDI) y REST. ESTRATEGIA DE ENSEÑANZA – APRENDIZAJE 1. Métodos y técnicas La estrategia de enseñanza utilizada en la asignatura plantea un desarrollo progresivo y paralelo de los contenidos teóricos y la realización de actividades de experimentación personal en aula y fuera del aula. Ambos aspectos complementan la formación del estudiante, siendo imprescindible la comprensión de los conceptos teóricos para desarrollar los ejercicios y actividades prácticas asociadas, así como la implementación práctica para dar un sentido real al estudio teórico relacionado. A continuación, se resumen los principales métodos o técnicas empleados que concretan la estrategia docente descrita: - Exposición y debate (clases expositivas de transmisión de conocimiento y activación de los procesos cognitivos del estudiante): el profesor expone los contenidos recogidos en el temario de la asignatura de manera organizada e introduce los conceptos base contextualizándolos mediante ejemplos y cuestiones a debate. Previamente, se proporciona a los estudiantes el material necesario en forma de transparencias, apuntes y lecturas sobre las que trabajar. - Estudio dirigido (estudio personal a partir del material recopilado de las actividades realizadas dentro del aula, para conseguir un aprendizaje autónomo y significativo): se plantean referencias de material y documentación necesarios para comenzar con el estudio, profundización y síntesis de los contenidos de los temas de la asignatura, algunos no impartidos por el profesor. - Exposición y ejercicios en máquina para experimentación personal en aula (resolución de ejercicios de ensayo y práctica de los conocimientos previamente adquiridos, así como clases prácticas en laboratorios asesoradas por el profesor, en las que se pondrán en práctica los conocimientos adquiridos en el resto de actividades que se realizan dentro del aula): se plantean mediante un documento técnico (guión de realización) con la explicación por parte del profesor y se realiza de forma supervisada en el aula de ordenadores. - Actividad para experimentación personal dentro y fuera del aula “prototipo web simple” (aprendizaje orientado a proyectos en los que el estudiante aplica los conocimientos y habilidades adquiridos mediante la realización de proyectos individuales): cada alumno desarrolla fuera del aula el prototipo de una aplicación web. - Actividad colaborativa para experimentación personal fuera del aula “proyecto web colaborativo” (aprendizaje orientado a proyectos en los que el estudiante aplica los conocimientos y habilidades adquiridos mediante la realización de proyectos grupales): actividad planificada para ser realizada en grupos fuera del aula, relativa al desarrollo de un proyecto web, y que tendrá dos fases de entrega: una a mitad del semestre y otra al final. El profesor explica cómo establecer roles interdependientes en el grupo, de forma que todas las partes sean necesarias para lograr el objetivo planteado. La actividad finaliza con la entrega del proyecto web desarrollado, junto con una breve documentación describiendo el proyecto y las partes que ha desarrollado cada miembro del grupo, y una presentación del mismo al profesor. - Autoevaluación (el estudiante podrá realizar cuestionarios online a través de la plataforma de e-learning, recibiendo feedback inmediato con el objetivo de que pueda mejorar su aprendizaje): actividad de generación colaborativa de preguntas de test entre el alumnado, creando posteriormente el profesor con ellas un cuestionario on-line y poniéndolo a su disposición. El cuestionario se podrá realizar tantas veces como se desee, ya que la puntuación que se obtiene en cada intento y la acumulada final solamente sirve para que cada estudiante se autoevalúe, dado que esta actividad simplemente pretende servir de ayuda al estudio de los contenidos de la asignatura. Todas las actividades, tanto las que se realizan en el aula como fuera, estarán apoyadas por el uso de un sistema de gestión de aprendizaje (Learning Management System - LMS) que contará con contenido multimedia mediante el cual cada estudiante podrá dedicar el esfuerzo que necesite a trabajar con cada "píldora" de conocimiento, pudiendo reducir su tiempo de aprendizaje. Este material estará permanentemente accesible para los estudiantes de manera que cada uno pueda organizar su tiempo y dedicar el esfuerzo necesario para adquirir dicho conocimiento, apelando a su disciplina y fuerza de voluntad. 2. Recursos Aula equipada con ordenadores, con conexión a la red, videoproyector y pantalla de proyección. Los ordenadores tendrán instalados los Sistemas Operativos Microsoft Windows y Ubuntu GNU/Linux necesarios, así como el software de virtualización VMware Player y Virtual Box. 3. Trabajo del estudiante De acuerdo con los 5 créditos ECTS asignados, la dedicación requerida para el seguimiento de la asignatura y el cumplimiento de sus requisitos es de 125 horas, que se distribuirán de acuerdo a los siguientes tiempos estimados de trabajo: - Trabajo dentro del aula (45 horas, aunque se ajustará al calendario escolar oficial de la facultad): + Exposición y debate teórico/práctico: 25 horas + Ejercicios en máquina: 20 horas - Trabajo fuera del aula (80 horas): + Trabajo personal: 75 horas + Preparación y realización de exámenes: 5 horas (1 examen de 1 hora y 4 horas de preparación previa). SISTEMA DE EVALUACIÓN El sistema de evaluación estará compuesto por tres partes bien diferenciadas: 1. Práctica individual para desarrollar un prototipo web simple a entregar durante las primeras semanas del semestre para poner en práctica las competencias específicas a adquirir (E1, 20% de la nota final). 2. Proyecto web colaborativo a elaborar en grupo para poner en práctica las competencias específicas a adquirir. Entrega en dos fases: una alrededor de la mitad del semestre (E2, valor 25%) y otra al final (E3, valor 25%), incluyendo la documentación sobre los desarrollos realizados (E4, valor 10%). (E2+E3+E4, 60% de la nota final). 3. Prueba individual final de índole teórico-práctico (E5, 20% de la nota final). Para superar la asignatura es preciso obtener 50 puntos sobre 100 en la nota final, siempre y cuando se haya obtenido al menos un 7 sobre 20 en el prototipo (E1), un 20 sobre 60 en el proyecto web (E2+E3+E4) y un 7 sobre 20 en la prueba individual final (E5). A continuación, se presenta de forma detallada el sistema global de evaluación y calificación, haciendo referencia a una estructura por competencias: - Competencia genérica: evaluada a partir de la memoria de la actividad colaborativa fuera del aula (proyecto web colaborativo) y una entrevista con el profesor, que supone el 10% de la calificación final. - Competencias específicas: la evaluación de éstas se realizará mediante la actividad de experimentación personal “prototipo web simple” (20%), la actividad colaborativa fuera del aula “proyecto web colaborativo” (50%), y la prueba individual final (20%). Suponen en total un 90% de la calificación final. DOCUMENTACIÓN Los materiales básicos para el adecuado seguimiento de la asignatura se encuentran en la plataforma online de aprendizaje (a saber: transparencias, enunciados de actividades y ejemplos de código). Bibliografía complementaria: «Ingeniería web - Wikipedia, la enciclopedia libre». [En línea]. Disponible en: http://es.wikipedia.org/wiki/Ingenier%C3%ADa_web. [Accedido: 10-jun-2015]. «Hearing on the “Digital Future of the United States: Part I -- The Future of the World Wide Web”.» [En línea]. Disponible en: http://dig.csail.mit.edu/2007/03/01-ushouse-future-of-the-web.html. [Accedido: 10-jun-2015]. «Web application - Wikipedia, the free encyclopedia». [En línea]. Disponible en: http://en.wikipedia.org/wiki/Web_application#Structure. [Accedido: 10-jun-2015]. «Standards - W3C». [En línea]. Disponible en: http://www.w3.org/standards/. [Accedido: 10-jun-2015]. «Web application framework - Wikipedia, the free encyclopedia». [En línea]. Disponible en: http://en.wikipedia.org/wiki/Web_application_framework. [Accedido: 10-jun-2015]. «Comparison of web application frameworks - Wikipedia, the free encyclopedia». [En línea]. Disponible en: http://en.wikipedia.org/wiki/Comparison_of_web_application_frameworks. [Accedido: 10-jun-2015]. «Comparison of JavaScript frameworks - Wikipedia, the free encyclopedia». [En línea]. Disponible en: http://en.wikipedia.org/wiki/Comparison_of_JavaScript_frameworks. [Accedido: 10-jun-2015]. «List of JavaScript libraries - Wikipedia, the free encyclopedia». [En línea]. Disponible en: http://en.wikipedia.org/wiki/List_of_JavaScript_libraries. [Accedido: 10-jun-2015]. «Introducción a XHTML». [En línea]. Disponible en: http://librosweb.es/libro/xhtml/. [Accedido: 11-jun-2015]. «HTML5». [En línea]. Disponible en: http://www.w3.org/TR/html5/. [Accedido: 10-jun-2015]. «HTML5 Rocks - Un recurso para desarrolladores de HTML5 para una Web abierta». [En línea]. Disponible en: http://www.html5rocks.com/es/. [Accedido: 10-jun-2015]. «HTML Tutorial». [En línea]. Disponible en: http://www.w3schools.com/html/default.asp. [Accedido: 10-jun-2015]. «Introducción a CSS». [En línea]. Disponible en: http://librosweb.es/libro/css/. [Accedido: 11-jun-2015]. «Cascading Style Sheets». [En línea]. Disponible en: http://www.w3.org/Style/CSS/. [Accedido: 10-jun-2015]. «CSS3 Introduction». [En línea]. Disponible en: http://www.w3schools.com/css/css3_intro.asp. [Accedido: 10-jun2015]. «Web Accessibility Initiative (WAI) - home page». [En línea]. Disponible en: http://www.w3.org/WAI/. [Accedido: 10jun-2015]. «Extensible Markup Language - Wikipedia, la enciclopedia libre». [En línea]. Disponible en: http://es.wikipedia.org/wiki/Extensible_Markup_Language. [Accedido: 10-jun-2015]. «XML Tutorial». [En línea]. Disponible en: http://www.w3schools.com/xml/. [Accedido: 10-jun-2015]. «Web server - Wikipedia, the free encyclopedia». [En línea]. Disponible en: http://en.wikipedia.org/wiki/Web_server. [Accedido: 11-jun-2015]. «Solution stack - Wikipedia, the free encyclopedia». [En línea]. Disponible en: http://en.wikipedia.org/wiki/Solution_stack. [Accedido: 11-jun-2015]. «XAMPP Installers and Downloads for Apache Friends». [En línea]. Disponible en: https://www.apachefriends.org/es/index.html. [Accedido: 11-jun-2015]. «Welcome to The Apache Software Foundation!». [En línea]. Disponible en: http://www.apache.org/. [Accedido: 11jun-2015]. «MySQL :: The world’s most popular open source database». [En línea]. Disponible en: https://www.mysql.com/. [Accedido: 11-jun-2015]. «PHP 5 Tutorial». [En línea]. Disponible en: http://www.w3schools.com/php/default.asp. [Accedido: 10-jun-2015]. «PHP: Manual de PHP - Manual». [En línea]. Disponible en: http://php.net/manual/es/. [Accedido: 10-jun-2015]. «Symfony, High Performance PHP Framework for Web Development». [En línea]. Disponible en: https://symfony.com/. [Accedido: 10-jun-2015]. «Symfony 2.4, el libro oficial». [En línea]. Disponible en: http://librosweb.es/libro/symfony_2_4/. [Accedido: 11-jun2015]. «Introducción a JavaScript». [En línea]. Disponible en: http://librosweb.es/libro/javascript/. [Accedido: 11-jun-2015]. «JavaScript | Codecademy». [En línea]. Disponible en: http://www.codecademy.com/es/tracks/javascript-traduccional-espanol-america-latina-clone. [Accedido: 11-jun-2015]. «JavaScript Tutorial». [En línea]. Disponible en: http://www.w3schools.com/js/. [Accedido: 11-jun-2015]. «Fundamentos de jQuery». [En línea]. Disponible en: http://librosweb.es/libro/fundamentos_jquery/. [Accedido: 11- jun-2015]. «jQuery». [En línea]. Disponible en: http://jquery.com/. [Accedido: 10-jun-2015]. «Introducción a AJAX». [En línea]. Disponible en: http://librosweb.es/libro/ajax/. [Accedido: 11-jun-2015]. «AngularJS — Superheroic JavaScript MVW Framework». [En línea]. Disponible en: https://angularjs.org/. [Accedido: 10-jun-2015]. «Grunt: The JavaScript Task Runner». [En línea]. Disponible en: http://gruntjs.com/. [Accedido: 10-jun-2015]. «Bower». [En línea]. Disponible en: http://bower.io/. [Accedido: 11-jun-2015]. «The web’s scaffolding tool for modern webapps | Yeoman». [En línea]. Disponible en: http://yeoman.io/. [Accedido: 10-jun-2015]. «Desarrollo Full Stack JavaScript. El conocido como Stack MEAN». [En línea]. Disponible en: https://carlosazaustre.es/blog/desarrollo-full-stack-javascript-tambien-conocido-como-mean/. [Accedido: 11-jun2015]. «Web service - Wikipedia, the free encyclopedia». [En línea]. Disponible en: http://en.wikipedia.org/wiki/Web_service. [Accedido: 12-jun-2015]. «Representational state transfer - Wikipedia, the free encyclopedia». [En línea]. Disponible en: https://en.wikipedia.org/wiki/Representational_state_transfer. [Accedido: 12-jun-2015]. «Web of Services - W3C». [En línea]. Disponible en: http://www.w3.org/standards/webofservices/. [Accedido: 12-jun2015]. «Web Services Tutorial». [En línea]. Disponible en: http://www.w3schools.com/webservices/. [Accedido: 12-jun2015]. «Recipes about Web Services (The Symfony CookBook)». [En línea]. Disponible en: http://symfony.com/doc/current/cookbook/web_services/index.html. [Accedido: 12-jun-2015]. «Getting Started With FOSRestBundle (The Symfony Bundles Documentation)». [En línea]. Disponible en: http://symfony.com/doc/current/bundles/FOSRestBundle/index.html. [Accedido: 12-jun-2015]. «RESTClient, a debugger for RESTful web services.» [En línea]. Disponible en: http://restclient.net/. [Accedido: 12jun-2015].