Guía docente de Sistemas Software Basados en Web (M50/56/2/16)
Máster
Módulo
Rama
Centro en el que se imparte la docencia
Centro Responsable del título
Semestre
Créditos
Tipo
Tipo de enseñanza
Profesorado
- José María Guirao Miras
Horario de Tutorías
José María Guirao Miras
Email- Tutorías 1º semestre
- Lunes 9:30 a 12:30 (Etsiit 3ª Planta Despacho 28)
- Miércoles 9:30 a 12:30 (Etsiit 3ª Planta Despacho 28)
- Tutorías 2º semestre
- Lunes 9:30 a 12:30 (Etsiit 3ª Planta Despacho 28)
- Miércoles 9:30 a 12:30 (Etsiit 3ª Planta Despacho 28)
Breve descripción de contenidos (Según memoria de verificación del Máster)
- Métodos de desarrollo para WEB: Ingeniería Web
- Marcos de desarrollo de software (Software frameworks)
- Tecnologías de desarrollo para WEB
- Servicios Web (Web services)
- Lenguajes de descripción de interfaces (Interface description languages)
- Integración con la Computación en la nube (Cloud computing): software como servicio ("Software as a service")
Prerrequisitos y/o Recomendaciones
Se recomienda a los alumnos haber cursado alguna asignatura de desarrollo web. Se presuponen conocimientos de HTML, CSS, python y javascript.
Competencias
Competencias Básicas
- CB6. Poseer y comprender conocimientos que aporten una base u oportunidad de ser originales en desarrollo y/o aplicación de ideas, a menudo en un contexto de investigación.
- CB7. Que los estudiantes sepan aplicar los conocimientos adquiridos y su capacidad de resolución de problemas en entornos nuevos o poco conocidos dentro de contextos más amplios (o multidisciplinares) relacionados con su área de estudio.
- CB8. Que los estudiantes sean capaces de integrar conocimientos y enfrentarse a la complejidad de formular juicios a partir de una información que, siendo incompleta o limitada, incluya reflexiones sobre las responsabilidades sociales y éticas vinculadas a la aplicación de sus conocimientos y juicios.
- CB9. Que los estudiantes sepan comunicar sus conclusiones y los conocimientos y razones últimas que las sustentan a públicos especializados y no especializados de un modo claro y sin ambigüedades.
- CB10. Que los estudiantes posean las habilidades de aprendizaje que les permitan continuar estudiando de un modo que habrá de ser en gran medida autodirigido o autónomo.
Competencias Generales
- G01. Capacidad para proyectar, calcular y diseñar productos, procesos e instalaciones en todos los ámbitos de la ingeniería informática.
- G03. Capacidad para dirigir, planificar y supervisar equipos multidisciplinares.
- G08. Capacidad para comprender y aplicar la responsabilidad ética, la legislación y la deontología profesional de la actividad de la profesión de Ingeniero en Informática.
- G09. Capacidad para aplicar los principios de la economía y de la gestión de recursos humanos y proyectos, así como la legislación, regulación y normalización de la informática.
Competencias Específicas
- CE04. Capacidad para modelar, diseñar, definir la arquitectura, implantar, gestionar, operar, administrar y mantener aplicaciones, redes, sistemas, servicios y contenidos informáticos.
- CE05. Capacidad de comprender y saber aplicar el funcionamiento y organización de Internet, las tecnologías y protocolos de redes de nueva generación, los modelos de componentes, software intermediario y servicios.
- CE09. Capacidad para diseñar y evaluar sistemas operativos y servidores, y aplicaciones y sistemas basados en computación distribuida.
- CE11. Capacidad de diseñar y desarrollar sistemas, aplicaciones y servicios informáticos en sistemas empotrados y ubicuos.
Competencias Transversales
- CT01. Capacidad de análisis y síntesis: Encontrar, analizar, criticar (razonamiento crítico), relacionar, estructurar y sintetizar información proveniente de diversas fuentes, así como integrar ideas y conocimientos
- CT02. Capacidad de organización y planificación así como capacidad de gestión de la información.
- CT05. Capacidad de trabajo en equipo.
- CT08. Capacidad para proyectar los conocimientos, habilidades y destrezas adquiridos para promover una sociedad basada en los valores de la libertad, la justicia, la igualdad y el pluralismo
Resultados de aprendizaje (Objetivos)
Conocer y aplicar métodos de desarrollo de software para la realización de sistemas software basados en Web.
Comprender, conocer y aplicar tecnologías concretas de desarrollo para sistemas software basados en Web.
Conocer los principales frameworks de desarrollo para web y diseñar software basado en ellos.
Conocer y aplicar lenguajes de descripción de interfaces y servicios web.
Conocer las características específicas del desarrollo web distribuido basado en la nube y en la utilización de servicios y diseñar sistemas software basados en ellos.
Programa de contenidos Teóricos y Prácticos
Teórico
- Tema 1. Ingeniería Web: Características de un aplicación web, tecnologías implicadas. Protocolos e interfaces.
- Tema 2. Back-end, Componentes: plantillas, formularios, middleware, autentificación , frameworks MVC
- Tema 3. Persistencia: ORMs con Bases de Datos SQL y No-SQL
- Tema 4. Servicios REST. Serialización de datos
- Tema 5. Front-end: Aplicaciones single-page. Frameworks de Front End
- Tema 6. Despliegue, integración en la nube, internacionalización y pruebas.
Práctico
Práctica 0. Preparación del entorno de desarrollo con docker-compose y Makefile
Práctica 1. Uso de frameworks para el back-end, plantillas
Práctica 2. Uso de Bases de Datos no-SQL con ORMs
Práctica 3: Frameworks CSS: Tailwind
Práctica 4: Frameworks: Django, autentificación de usuarios, autorización
Práctica 5: Front-end: Mejorando la UX
Práctica 6: Añadiendo servicios REST
Práctica 7: Single Page App con React
Práctica 8: Generación en el servidor (SSR)
Práctica 9: Despliegue en contenedores
Bibliografía
Bibliografía fundamental
- Beginning Django: Web Application Development and Deployment with Python. Daniel Rubio. Apress. 2017
Bibliografía complementaria
- Learning React: Functional Web Development with React and Redux, Alex Banks. O'Reilly. 2017
Enlaces recomendados
https://github.com/kamranahmedse/developer-roadmap
Metodología docente
- MD01 Clases Teóricas-Expositivas
- MD03 Resolución de Casos Prácticos
- MD04 Aprendizaje basado en Proyectos
- MD05 Prácticas en Laboratorio
- MD08 Debates
- MD10 Exposición de Trabajos Tutelados
- MD16 Tutorías Académicas
Evaluación (instrumentos de evaluación, criterios de evaluación y porcentaje sobre la calificación final.)
Evaluación Ordinaria
La asignatura tiene un carácter eminentemente práctico. Por tanto, la evaluación se llevará a cabo mediante una media ponderada entre las prácticas que se tendrán que entregar a lo largo del semestre, ninguna de las cuales superará el 70% del total de la nota.
Evaluación Extraordinaria
1.- Examen teórico sobre los contenidos de la asignatura, 50% de la nota final.
2.- Examen práctico, con algún ejercicio similar a los efectuados durante el curso, 50% de la nota final.
Evaluación única final
1.- Examen teórico sobre los contenidos de la asignatura, 50% de la nota fina y
2.- Examen práctico, con algún ejercicio similar a los efectuados durante el curso, 50% de la nota final.
Información adicional
Información de interés para estudiantado con discapacidad y/o Necesidades Específicas de Apoyo Educativo (NEAE): Gestión de servicios y apoyos (https://ve.ugr.es/servicios/atencion-social/estudiantes-con-discapacidad).