Última actualización: 20/04/2023


Curso Académico: 2023/2024

Computación Web
(13432)
Grado en Ingeniería Telemática (Plan: 447 - Estudio: 215)


Coordinador/a: ARIAS FISTEUS, JESUS

Departamento asignado a la asignatura: Departamento de Ingeniería Telemática

Tipo: Obligatoria
Créditos: 6.0 ECTS

Curso:
Cuatrimestre:




Requisitos (Asignaturas o materias cuyo conocimiento se presupone)
- Programación - Programación de Sistemas - Arquitectura de Sistemas I - Aplicaciones Telemáticas - Procesamiento de formatos en aplicaciones telemáticas - Arquitectura de Sistemas II
Objetivos
El objetivo de esta asignatura es aprender a desarrollar aplicaciones Web completas con bases de datos, aplicando las principales tecnologías del lado del cliente (HTML, CSS, JavaScript), comprendiendo la estructura de las bases de datos relacionales y el lenguaje SQL, y empleando un framework del lado del servidor combinado con un sistema de mapeo objeto-relacional para el acceso a los datos.
Competencias y resultados del aprendizaje
Descripción de contenidos: Programa
El contenido de la asignatura se divide en los siguientes temas: 1.- Tecnologías del lado del cliente 1.1.- Introducción a la Web y repaso de HTTP 1.2.- El lenguaje HTML 1.3.- Hojas de estilo CSS 1.4.- El lenguaje de programación Javascript 2.- Tecnologías para el almacenamiento de datos 2.1.- Introducción a las bases de datos relacionales 2.2.- El lenguaje SQL 2.3.- Acceso a bases de datos desde programas Java: JDBC e introducción al mapeo objeto-relacional 3.- Tecnologías del lado del servidor 3.1.- El patrón modelo-vista-controlador 3.2.- Servlets 3.3.- Páginas JSP 4.- Seguridad en aplicaciones Web 4.1.- Introducción 4.2.- Ataques al almacenamiento de datos 4.3.- Ataques para esquivar controles en el lado del cliente 4.4.- Ataques a los mecanismos de autenticación y autorización 4.5.- Ataques a los mecanismos de gestión de sesiones 4.6.- Ataques a otros usuarios de la aplicación 5.- Otros aspectos de desarrollo Web 5.1.- La API XMLHttpRequest 5.2.- Introducción a otras APIs modernas de Javascript (almacenamiento en el cliente, geolocalización, notificaciones en el escritorio, websockets, etc.) 5.3.- Escalabilidad de aplicaciones Web
Actividades formativas, metodología a utilizar y régimen de tutorías
Las actividades que se llevan a cabo en la impartición de la asignatura son las siguientes: - Clases magistrales: sesiones de introducción teórica a los contenidos fundamentales de la asignatura. Se fomentan tanto la interactividad como la discusión de los principales problemas planteados. - Clases de laboratorio: los alumnos resuelven en el ordenador ejercicios de programación para familiarizarse de forma práctica con los principales contenidos de la asignatura. - Proyecto de aplicación Web: los alumnos deben llevar a cabo a lo largo del curso, en parejas, un proyecto de programación relativamente complejo consistente en el diseño y desarrollo de una aplicación Web con base de datos, dados unos requisitos y restricciones realistas. Los alumnos dispondrán de apoyo de los profesores en clases de laboratorio y tutorías para desarrollar el proyecto. El proyecto tendrá un papel fundamental en el desarrollo de la asignatura, y servirá como hilo conductor desde el principio hasta el final del curso. Además de apoyar la adquisición de las competencias específicas, estarán enfocados a la adquisición de las competencias generales mencionadas anteriormente: - Los alumnos deben aplicar conocimientos previos de programación y protocolos de transporte (TCP) y aplicación (HTTP, DNS). - Los alumnos deben diseñar una aplicación Web compleja dados unos requisitos y restricciones realistas. - Los alumnos deben diseñar la aplicación Web teniendo en cuenta su responsabilidad en la protección adecuada de los datos privados de sus usuarios y la seguridad de la información en general. - Los alumnos deben presentar y defender de forma oral el proyecto desarrollado. - Se fomentará la aplicación en el proyecto de tecnologías de programación Web recientes no explicadas por el profesor en clase. Se espera de esta forma que los alumnos desarrollen su habilidad para aprender de forma autónoma, lo cual resulta fundamental para su vida profesional futura. La evaluación del proyecto se centrará no sólo en aspectos técnicos sino también en la adquisición de los objetivos de aprendizaje enumerados.
Sistema de evaluación
  • Peso porcentual del Examen Final 30
  • Peso porcentual del resto de la evaluación 70
Calendario de Evaluación Continua
Bibliografía básica
  • Dafydd Stuttard, Marcus Pinto. The Web Application Hacker's Handbook 2nd ed.. John Wiley & Sons. 2011
  • David Flanagan. JavaScript: The Definitive Guide, 6th Edition. O'Reilly Media Inc.. 2011
  • Larry Rockoff. The Language of SQL. Course Technology PTR. 2010
  • Rob Larsen. Beginning HTML and CSS. Wrox. 2013
  • Shameer Kunjumohamed, Hamidreza Sattari, Alex Bretet, Geoffroy Warin. Spring MVC: Designing Real-World Web Applications. Packt Publishing. 2016
Bibliografía complementaria
  • David Flanagan. jQuery Pocket Reference. O'Reilly Media, Inc.. 2010
  • Douglas Crockford. JavaScript: The Good Parts. O'Reilly Media, Inc.. 2008
  • Martin L. Abbott, T. Fisher. Scalability Rules: 50 Principles for Scaling Web Sites. Addison-Wesley Professional. 2011
  • Miguel Grinberg. Flask Web Development, 2nd Edition. O'Reilly Media, Inc.. 2018
  • Simon Harris. HTML5 Unleashed. Sams. 2013

El programa de la asignatura podría sufrir alguna variación por causa de fuerza mayor debidamente justificada o por eventos académicos comunicados con antelación.