Guía docente de Desarrollo de Aplicaciones para Internet (Especialidad Tecnologías de la Información) (296114M)

Curso 2023/2024
Fecha de aprobación: 26/06/2023

Grado

Grado en Ingeniería Informática

Rama

Ingeniería y Arquitectura

Módulo

Formación de Especialidad 5: Tecnologías de Información

Materia

Programación en Tecnologías de la Información

Curso

4

Semestre

1

Créditos

6

Tipo

Obligatoria

Profesorado

Teórico

José María Guirao Miras. Grupo: A

Práctico

José María Guirao Miras Grupos: 1 y 3

Tutorías

José María Guirao Miras

Email
  • Primer semestre
    • Lunes de 09:30 a 12:30 (Etsiit 3ª Planta Despacho 28)
    • Martes de 09:30 a 12:30 (Etsiit 3ª Planta Despacho 28)
  • Segundo semestre
    • Lunes de 09:30 a 12:30 (Etsiit 3ª Planta Despacho 28)
    • Martes de 09:31 a 12:31 (Etsiit 3ª Planta Despacho 28)

Prerrequisitos y/o Recomendaciones

Es muy recomendable que los alumnos hayan cursado alguna asignatura donde se impartan contenidos de internet:
Tecnologías Web, Programación Web, Sistemas de Información Basados en Web.

Se parte de que los alumnos conocen HTML, CSS, y fundamentos de Bases de Datos.

Breve descripción de contenidos (Según memoria de verificación del Máster)

  • Desarrollo por componentes para servicios web.
  • Desarrollo de aplicaciones avanzadas en el cliente: programación en navegadores web, HTML dinámico

Competencias

Competencias Generales

  • CG04. Capacidad para definir, evaluar y seleccionar plataformas hardware y software para el desarrollo y la ejecución de sistemas, servicios y aplicaciones informáticas.
  • CG08. Conocimiento de las materias básicas y tecnologías, que capaciten para el aprendizaje y desarrollo de nuevos métodos y tecnologías, así como las que les doten de una gran versatilidad para adaptarse a nuevas situaciones.

Competencias Transversales

  • CT04. Capacidad de comunicación en lengua extranjera, particularmente en inglés. 
  • 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 el funcionamiento y las posibilidades de los protocolos de comunicación usados en internet.
  • Saber realizar aplicaciones multi-plataforma, para que funcionen en cualquier ordenador conectado a Internet.
  • Conocer las distintas posibilidades de persistencia para una aplicación web.
  • Familiarizarse con las técnicas para programar sobre los navegadores web.
  • Saber estructurar las aplicaciones para favorecer la reusabilidad de código, utilizando componentes estándar.
  • Uso detallado de componentes y frameworks para programación Web.
  • Saber conectar una API con una Base de Datos siguiendo las recomendaciones RESTful.

Programa de contenidos Teóricos y Prácticos

Teórico

  • Tema 1. Introducción y repaso de conceptos fundamentales de Internet y la WWW. Protocolos e interfaces. Arquitectura de aplicaciones web.
  • Tema 2. Programación de aplicaciones web en Servidor: Modelo MVC, templates, frameworks MVC.
  • Tema 3. Persistencia con bases de datos SQL y no SQL. Object Relational Mappings.
  • Tema 4. Autentificación y autorización de usuarios
  • Tema 5. Serialización de datos, servicios REST Full.
  • Tema 6. Programación del Cliente: JavaScript ES6, DOM
  • Tema 7. Frameworks de Front End
  • Tema 8. Internacionalización y despliegue de aplicaciones web.

Práctico

  1. Preparación de entorno de desarrollo con docker-compose y Makefile
  2. Uso de microframeworks: Flask
  3. Frameworks CSS 'responsive'. uso de sesiones
  4. Pesistencia con bases de datos NO-SQL
  5. API RESTFul
  6. Frameworks en el servidor: Django
  7. ORMs, formularios, validaciones en el servidor
  8. Autentificación y autorización de usuarios
  9. Programación del navegador, jQuery, AJAX
  10. Frameworks de front end: React

Bibliografía

Bibliografía fundamental

  • Beginning Django: Web Application Development and Deployment with Python.Daniel Rubio. Apress. 2017
  • Learn Web Development with Python. Fabrizio Romano, Gaston C. Hillar, Arun Ravindran. Packt Publishing, 2018

Metodología docente

  • MD01. Lección Magistral (Clases Teóricas-Expositivas) 
  • MD02. Actividades Prácticas (Resolución de Problemas, Resolución de Casos Prácticos, Desarrollo de Proyectos, Prácticas en Laboratorio, Taller de Programación, Aula de Informática, Prácticas de Campo). 
  • MD03.  Seminarios (Debates, Demos, Exposición de Trabajos Tutelados, Conferencias, Visitas Guiadas, Monografías). 
  • MD04. Actividades no presenciales Individuales. 
  • MD05. Actividades no presenciales Grupales. 
  • MD06. Tutorías Académicas. 

Evaluación (instrumentos de evaluación, criterios de evaluación y porcentaje sobre la calificación final)

Evaluación Ordinaria

  • Se usará preferentemente un método de evaluación continua
  • 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 (75%) y una prueba teórica que se realizará al finalizar el semestre (25%). Pese a la ponderación, es IMPRESCINDIBLE aprobar ambas partes (teoría y práctica).

Evaluación Extraordinaria

  1. Examen teórico sobre los contenidos de la asignatura, y
  2. Examen práctico, con algún ejercicio similar a los efectuados durante el curso

Evaluación única final

  1. Examen teórico sobre los contenidos de la asignatura, y
  2. Examen práctico, con algún ejercicio similar a los efectuados durante el curso