Última actualización: 20/01/2025


Curso Académico: 2024/2025

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.
Resultados del proceso de formación y aprendizaje
CB1: Que los estudiantes hayan demostrado poseer y comprender conocimientos en un área de estudio que parte de la base de la educación secundaria general, y se suele encontrar a un nivel que, si bien se apoya en libros de texto avanzados, incluye también algunos aspectos que implican conocimientos procedentes de la vanguardia de su campo de estudio CB2: Que los estudiantes sepan aplicar sus conocimientos a su trabajo o vocación de una forma profesional y posean las competencias que suelen demostrarse por medio de la elaboración y defensa de argumentos y la resolución de problemas dentro de su área de estudio CG1: Capacidad para redactar, desarrollar y firmar proyectos en el ámbito de la ingeniería de telecomunicación que tengan por objeto, de acuerdo con los conocimientos adquiridos según lo establecido en el apartado 5 de esta orden, la concepción y el desarrollo o la explotación de redes, servicios y aplicaciones de telecomunicación y electrónica. ECRT1: Capacidad para aprender de manera autónoma nuevos conocimientos y técnicas adecuados para la concepción, el desarrollo o la explotación de sistemas y servicios de telecomunicación. ECRT13: Capacidad de diferenciar los conceptos de redes de acceso y transporte, redes de conmutación de circuitos y de paquetes, redes fijas y móviles, así como los sistemas y aplicaciones de red distribuidos, servicios de voz, datos, audio, video y servicios interactivos y multimedia. ETEGT5: Capacidad de seguir el progreso tecnológico de transmisión, conmutación y proceso para mejorar las redes y servicios telemáticos. ETEGT6: Capacidad de diseñar arquitecturas de redes y servicios telemáticos. ETEGT7: Capacidad de programación de servicios y aplicaciones telemáticas, en red y distribuidas. RA1: Conocimiento y comprensión de los fundamentos básicos generales de la ingeniería, los principios científicos y matemáticos, así como los de su rama o especialidad, incluyendo algún conocimiento a la vanguardia de su campo. RA3: Los egresados tendrán la capacidad de realizar diseños de ingeniería de acuerdo a su nivel de conocimiento y comprensión, trabajando en equipo. El diseño abarca dispositivos, procesos, métodos y objetos, y especificaciones más amplias que las estrictamente técnicas, lo cual incluye conciencia social, salud y seguridad, y consideraciones medioambientales y comerciales. RA4: Los titulados serán capaces de usar métodos apropiados para llevar a cabo investigaciones y estudios detallados de aspectos técnicos, en consonancia con su nivel de conocimiento. La investigación implica búsquedas bibliográficas, diseño y ejecución de experimentos, interpretación de datos, selección de la mejor propuesta y simulación por ordenador. Puede requerir la consulta de bases de datos, normas y procedimientos de seguridad. RA5: Los egresados tendrán la capacidad de aplicar su conocimiento y comprensión para poder resolver problemas, dirigir investigaciones y diseñar dispositivos o procesos de ingeniería. Estas habilidades incluyen el conocimiento, uso y limitaciones de materiales, modelos informáticos, ingeniería de procesos, equipos, trabajo práctico, bibliografía técnica y fuentes de información. Deben tener conciencia de todas las implicaciones de la práctica de la ingeniería: éticas, medioambientales, comerciales e industriales RA6: Los titulados tendrán las capacidades genéricas necesarias para la práctica de la ingeniería, y que son aplicables de manera amplia. En primer lugar, trabajar de forma efectiva, tanto de forma individual como en equipo, así como comunicarse de forma efectiva. Además, demostrar conciencia sobre la responsabilidad de la práctica de la ingeniería, el impacto social y medioambiental, y compromiso con la ética profesional, responsabilidad y normas de la práctica de la ingeniería. También deben tener conocimiento de las prácticas empresariales y de gestión de proyectos, así como la gestión y control de riesgos, y entender sus limitaciones. Finalmente, tener la capacidad para el aprendizaje continuo.
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


Convocatoria extraordinaria: normativa
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
  • Andrew Hoffman. Web Application Security, 2nd Edition. O'Reilly Media, Inc.. 2024
  • 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.