Nombre: APLICACIONES EN INTERNET
Código: 505104003
Carácter: Obligatoria
ECTS: 6
Unidad Temporal: Cuatrimestral
Despliegue Temporal: Curso 4º - Primer cuatrimestre
Menciones/Especialidades:
Lengua en la que se imparte: Castellano
Carácter: Presencial
[CG3 ]. Conocimiento de materias básicas y tecnologías, que le capacite para el aprendizaje de nuevos métodos y tecnologías, así como que le dote de una gran versatilidad para adaptarse a nuevas situaciones.
[T1 ]. Capacidad de construir, explotar y gestionar las redes, servicios, procesos y aplicaciones de telecomunicaciones, entendidas éstas como sistemas de captación, transporte, representación, procesado, almacenamiento, gestión y presentación de información multimedia, desde el punto de vista de los servicios telemáticos
[T7 ]. Capacidad de programación de servicios y aplicaciones telemáticas, en red y distribuidas
Se recomienda haber cursado las asignaturas: Redes y servicios de telecomunicaciones, Fundamentos de programación, Sistemas y servicios distribuidos y Programación para Ingeniería Telemática.
[TR3 ]. Aprender de forma autónoma
[TR5 ]. Aplicar a la práctica los conocimientos adquiridos
Al finalizar el plan formativo, el estudiante debe ser capaz de:
Explicar el funcionamiento de la Web: tecnologías, protocolos y recursos.
Describir la evolución de los distintos componentes de la Web, las razones de su desarrollo inicial, las necesidades funcionales que cubren y sus limitaciones.
Distinguir las necesidades funcionales de una aplicación de la tecnología concreta con la que se cubre.
Desarrollar aplicaciones web, cuyo contenido se genera de manera dinámica, usando PHP, HTML, javascript y CSS.
Diseñar la arquitectura de una aplicación para la Web, sus componentes y funcionalidad asociada.
Conocer los fundamentos del aprendizaje de máquinas aplicados a servicios web.
Aplicar algoritmos de análisis de datos masivos (Big Data).
Adaptar, modificar y ajustar los algoritmos de procesamiento de datos masivo a las necesidades particulares de un sistema o aplicación.
Arquitecturas distribuidas. Aplicaciones web. Aplicaciones para dispositivos móviles. Aplicaciones basadas en el contexto. Paradigma "Internet de las cosas".
1. Introducción a la Web
Tema 1. Introducción: la Red Global (World Wide Web)
Al finalizar con éxito el tema el estudiante será capaz de:
Explicar el funcionamiento de la Web: tecnologías, protocolos y recursos.
Describir la evolución de los distintos componentes de la Web, las razones de su desarrollo inicial y las necesidades funcionales que cubren.
Enumerar otros sistemas distribuidos que funcionan sobre Internet y describir sus diferencias respecto a la Web.
Tema 2. Funcionamiento de la Web estática.
Al finalizar con éxito el tema el estudiante será capaz de:
Explicar el funcionamiento del protocolo HTTP y sus formas de uso para obtener recursos de la Web.
Describir el formato, las partes de una URL, su utilidad y sus inconvenientes.
Reconocer un recurso en la Web y describir diferentes representaciones de los recursos de la Web.
Describir el funcionamiento básico de un servidor HTTP.
Describir los módulos funcionales que componen un navegador.
Tema 3. Documentos estructurados y lenguajes de marcas
Al finalizar con éxito el tema el estudiante será capaz de:
Reconocer la utilidad de los lenguajes de marcas y metalenguajes para estructurar la información/datos en el contexto de la Web.
Explicar la necesidad y utilidad de las plantillas de diseño.
Explicar la necesidad de una API neutral para el procesado de documentos estructurados.
Desarrollar documentos HTML con múltiples elementos.
Desarrollar y aplicar plantillas de diseño con CSS.
Reconocer un documento HTML e indicar la función de los diferentes elementos (marcas).
2. La Web dinámica
Tema 4. Funcionamiento de la Web dinámica.
Al finalizar con éxito el tema el estudiante será capaz de:
Desarrollar aplicaciones interactivas en el lado cliente con el lenguaje javascript.
Generar documentos HTML con múltiples elementos y formularios.
Identificar los métodos del protocolo HTTP para recibir información del usuario.
Distinguir el servidor HTTP de la aplicación que procesa la información de usuario.
Explicar la interacción entre servidor HTTP y aplicaciones externas y los procedimientos de comunicación entre ambas.
Describir cómo se procesa información y genera contenido dinámico en lado del servidor
Describir la necesidad de mantener información de estado para el desarrollo de aplicaciones.
Utilizar mecanismos básicos para el mantenimiento de sesiones de usuario.
Describir métodos para la persistencia de datos y estado en aplicaciones web.
3. Desarrollo de aplicaciones web en el lado servidor
Tema 5. Desarrollo de aplicaciones web con Python
Explicar el funcionamiento y la estructura de componentes de una aplicación web con Flask.
Diseñar aplicaciones web con separación básica de responsabilidades: rutas, lógica y acceso a datos.
Modelar y persistir datos mediante ORM.
Integrar funcionalidades de validación y manejo de errores.
Tema 6. Arquitectura de aplicaciones web
Organizar aplicaciones en capas y módulos utilizando patrones básicos.
Identificar responsabilidades y flujo de información entre componentes.
Aplicar principios de desacoplamiento para facilitar evolución y testabilidad.
Evaluar decisiones arquitectónicas y trade-offs en función del contexto.
Tema 7. Aprendizaje automático para aplicaciones web
7.1. Fundamentos de aprendizaje automático e ingeniería de datos.
Describir el ciclo completo de un sistema de aprendizaje automático dentro de una aplicación.
Identificar riesgos y limitaciones del aprendizaje automático.
Reconocer patrones de integración de modelos en aplicaciones.
7.2. Representación de datos
Transformar datos textuales en representaciones vectoriales útiles para modelos.
Diseñar pipelines reproducibles de procesamiento de datos para entrenamiento e inferencia.
Gestionar y persistir artefactos necesarios para el procesado de datos.
7.3. Aprendizaje supervisado
Formular problemas de predicción en el contexto de la aplicación.
Describir la diferencia entre regresión y clasificación.
Entrenar y validar modelos de predicción a partir de un conjunto de datos.
Aplicar las métricas adecuadas para evaluar cada tipo de modelo.
Explicar el problema del sobreajuste.
Desarrollar e integrar modelos de clasificación en las aplicaciones.
7.4. Aprendizaje incremental y toma de decisiones
Identificar cuándo es necesario el aprendizaje incremental.
Aplicar técnicas de optimización online para ajuste de modelos en producción.
Implementar algoritmos de toma de decisiones basadas en contexto.
Integrar estos mecanismos en aplicaciones.
Tema 8. Fundamentos de ingeniería de sistemas
Describir la evolución de arquitecturas y sus implicaciones en cuanto a complejidad.
Reconocer los elementos que determinan el rendimiento de un sistema.
Explicar las técnicas que permiten escalar el sistema.
Describir los fundamentos básicos de fiabilidad y observabilidad.
Entender el funcionamiento de pipelines de datos en producción.
Desarrollo en lado cliente (frontend)
Práctica 1.- Servidores HTTP Práctica 2.- HTML y CSS. Práctica 4.- Javascript. Práctica 4.- Formularios HTML. Práctica 6.- Cookies y persistencia de datos.
Desarrollo en lado servidor (backend)
Práctica 7. Introducción a Flask Práctica 8. Aplicación web básica Práctica 9. Arquitectura modular en capas Práctica 10. Pipeline de datos Práctica 11. Algoritmos de predicción Práctica 12. Algoritmos de aprendizaje incremental
La Universidad Politécnica de Cartagena considera como uno de sus principios básicos y objetivos fundamentales la promoción de la mejora continua de las condiciones de trabajo y estudio de toda la Comunidad Universitaria. Este compromiso con la prevención y las responsabilidades que se derivan atañe a todos los niveles que integran la Universidad: órganos de gobierno, equipo de dirección, personal docente e investigador, personal de administración y servicios y estudiantes. El Servicio de Prevención de Riesgos Laborales de la UPCT ha elaborado un "Manual de acogida al estudiante en materia de prevención de riesgos" que puedes encontrar en el Aula Virtual en el apartado actúa sobre una emergencia, pestaña "guías técnicas", y en el que encontrarás instrucciones y recomendaciones acerca de cómo actuar de forma correcta, desde el punto de vista de la prevención (seguridad, ergonomía, etc.), cuando desarrolles cualquier tipo de actividad en la Universidad. También encontrarás en el apartado actúa sobre una emergencia, recomendaciones sobre cómo proceder en caso de emergencia o que se produzca algún incidente. En especial, cuando realices prácticas docentes en laboratorios, talleres o trabajo de campo, debes seguir todas las instrucciones del profesorado, que es la persona responsable de tu seguridad y salud durante su realización. Consúltale todas las dudas que te surjan y no pongas en riesgo tu seguridad ni la de tus compañeros.
1. Introduction to the Web
1.1. Introduction: Internet, the Global Network (World Wide Web)
Learning outcomes:
o Understanding the operation of the Web: its components, protocols and resources.
o Describing the evolution of the various components of the Web and its transformation from a system of distributed documents to an platform for applications and services.
1.2. Operation of the static Web.
Learning outcomes:
o Understanding HTTP protocol operation and its forms of use to get web resources.
o Knowing the parts of an URL, its usefulness and limitations.
o Knowing what a Web resource is and describing different representations of Web resources.
o Understanding the operation of a browser.
1.3. Structured languages
Learning outcomes:
o Understanding the utility of markup and meta languages for structuring and information/data in the context of the Web.
o Recognizing the need and usefulness of the design templates.
o Understanding the need for a neutral API for processing structured documents.
o Developing HTML documents with multiple elements.
o Developing and apply design templates with CSS.
o Understanding an HTML document and the role of different elements (marks).
2. The Dynamic Web
2.1. Operation of the dynamic Web.
Learning outcomes:
Develop interactive client-side applications using JavaScript.
Generate HTML documents with multiple elements and forms.
Identify the HTTP protocol methods for receiving user information.
Distinguish between the HTTP server and the application that processes user information.
Explain the interaction between the HTTP server and external applications, and the communication procedures between them.
Describe how information is processed and dynamic content is generated on the server side.
Describe the need to maintain state information for application development.
Use basic mechanisms for maintaining user sessions.
Describe methods for data and state persistence in web applications.
3. Backend development of web applications
Topic 5. Web Application Development with Python
Explain the functionality and component structure of a web application using Flask.
Design web applications with a basic separation of responsibilities: routing, logic, and data access.
Model and persist data using ORM.
Integrate validation and error handling functionalities.
Topic 6. Web Application Architecture
Organize applications into layers and modules using basic patterns.
Identify responsibilities and information flow between components.
Apply decoupling principles to facilitate evolution and testability.
Evaluate architectural decisions and trade-offs based on context.
Topic 7. Machine Learning for Web Applications
7.1. Fundamentals of Machine Learning and Data Engineering
Describe the complete lifecycle of a machine learning system within an application.
Identify risks and limitations of machine learning.
Recognize patterns for integrating models into applications.
7.2. Data Representation
Transform textual data into vector representations useful for models.
Design reproducible data processing pipelines for training and inference.
Manage and persist artifacts necessary for data processing.
7.3. Supervised Learning
Formulate prediction problems in the context of the application.
Describe the difference between regression and classification.
Train and validate prediction models from a dataset.
Apply appropriate metrics to evaluate each type of model.
Explain the overfitting problem.
Develop and integrate classification models into applications.
7.4. Incremental Learning and Decision Making
Identify when incremental learning is necessary.
Apply online optimization techniques for model tuning in production.
Implement context-aware decision-making algorithms.
Integrate these mechanisms into applications.
Topic 8. Fundamentals of Systems Engineering
Describe the evolution of architectures and their implications in terms of complexity.
Recognize the elements that determine a system's performance.
Explain the techniques that allow the system to scale.
Describe the basic principles of reliability and observability.
Understand how data pipelines work in production.
Labs
1. HTTP Servers
2. HTML and CSS
3. JavaScript
5. HTML Forms
6. Cookies and Data Persistence
7. Introduction to Flask
8. Basic Web Application
9. Modular Layered Architecture
10. Data Pipeline
11. Prediction Algorithms
12. Incremental Learning Algorithms
Se recomienda haber cursado las asignaturas: Redes y servicios de telecomunicaciones, Fundamentos de programación, Sistemas y servicios distribuidos y Programación para Ingeniería Telemática.
Estudio personal o en grupo de alumnos
Estudio del material y apuntes de la asignaturas. Resolución de ejercicios.
60
100
Preparación de trabajos y ejercicios (incluye tiempo para consulta bibliográfica y documentación)
Realización del trabajo de prácticas y resolución de los ejercicios disponibles
60
100
Clase de teoría
Asistencia a clases de teoría
21
100
Clase orientada a la resolución de problemas y caso de estudio
Resolución y discusión de problemas en clase
9
100
Clase práctica en laboratorio
Realización de las prácticas de laboratorio
24
100
Asistencia a seminarios, conferencias, visitas guiadas, etc.
Asistencia a seminarios, conferencias, visitas guiadas, etc. No aplica para el curso 26-27. Estas horas se dedicarán a P3
1.5
100
Presentación de trabajos ante el profesor
Presentación de trabajos ante el profesor
1.5
100
Realización de pruebas de evaluación (tiempo de duración de los exámenes y otras pruebas de evaluación en el aula)
Realización de pruebas de evaluación (tiempo de duración de los exámenes y otras pruebas de evaluación en el aula)
3
100
Trabajo Final
Tipo de actividad: Se desarrollará una aplicación web siguiendo las especificaciones que se publicarán en el transcurso del curso. El trabajo se realizará por parejas o individualmente. En las convocatorias finales ordinaria y extraordinaria, se podrá entregar la aplicación completa o las entregables no superados o faltantes.
Mínimos: no se requiere nota mínima para realizar el promedio.
Repetición de pruebas: en caso de repetición de esta actividad para optar a una mejor calificación (subir nota) se considerará la que corresponda al último intento.
Resultados del aprendizaje que se evalúan:
Distinguir las necesidades funcionales de una aplicación de la tecnología concreta con la que se cubre.
Desarrollar aplicaciones web, cuyo contenido se genera de manera dinámica, usando HTML, javascript y CSS y tecnologías del lado servidor, incluyendo la aplicación de algoritmos de aprendizaje máquina.
Diseñar la arquitectura de una aplicación para la Web, sus componentes y funcionalidad asociada.
Conocer los fundamentos del aprendizaje de máquinas aplicados a servicios web.
Adaptar, modificar y ajustar los algoritmos de aprendizaje máquina a las necesidades particulares de un sistema o aplicación
Competencias: T7, TR5, TR3
20 %
Exámenes escritos y/u orales (evaluación de contenidos teóricos, aplicados y/o prácticas de laboratorio)
Tipo de actividad: se realizará un único examen final que evaluará los contenidos de la asignatura. El examen consistirá en preguntas teóricas cortas a desarrollar y problemas teórico-prácticos. Los detalles se expondrán en la convocatoria de examen.
Este examen se podrá realizar en la convocatoria ordinaria y extraordinaria.
Mínimos: es necesario aprobar el examen con un 5 para considerarla superada y que pueda computar en la calificación final de la asignatura.
Repetición: En caso de repetición de esta actividad para optar a una mejor calificación (subir nota) se considerará la que corresponda al último intento.
Resultados del aprendizaje que se evalúan:
Explicar el funcionamiento de la Web: tecnologías, protocolos y recursos.
Describir la evolución de los distintos componentes de la Web, las razones de su desarrollo inicial, las necesidades funcionales que cubren y sus limitaciones.
Distinguir las necesidades funcionales de una aplicación de la tecnología concreta con la que se cubre.
Resultados del aprendizaje que se evalúan:
Distinguir las necesidades funcionales de una aplicación de la tecnología concreta con la que se cubre.
Desarrollar aplicaciones web, cuyo contenido se genera de manera dinámica, usando HTML, javascript y CSS y tecnologías del lado servidor, incluyendo la aplicación de algoritmos de aprendizaje máquina.
Diseñar la arquitectura de una aplicación para la Web, sus componentes y funcionalidad asociada.
Conocer los fundamentos del aprendizaje de máquinas aplicados a servicios web.
Adaptar, modificar y ajustar los algoritmos de aprendizaje máquina a las necesidades particulares de un sistema o aplicación
Competencias: T7, TR5, TR3
60 %
Entregables de ejercicios y/o prácticas
Tipo de actividad: Cuestionarios relacionados con los contenidos de prácticas. Cada cuestionario, tipo test con múltiples respuestas y algunas preguntas cortas de desarrollo (el detalle se publicará al anunciar la actividad a los estudiantes), se realizará mediante aula virtual pero exclusivamente en el laboratorio de prácticas. Se realizarán 3 ó 4 cuestionarios a lo largo del curso.
En caso de no superar los cuestionarios o no realizarlos se podrán realizar en la convocatoria final ordinario o extraordinaria para optar al 100% de la nota.
Mínimos: no se requiere nota mínima para realizar el promedio.
Repeticiones: en caso de repetición de esta actividad para optar a una mejor calificación (subir nota) se considerará la que corresponda al último intento.
20 %
El peso en la evaluación de las pruebas escritas es de un 60%.
Si un estudiante que ha superado una actividad de evaluación en el sistema de evaluación continua, desea presentarse a esa misma actividad en el sistema de evaluación final, debe renunciar a la calificación obtenida en el sistema de evaluación continua. Es decir, prevalece la nota del último intento.
No se guardará la nota de ninguna actividad de evaluación para cursos siguientes, solo se conservarán las notas de las partes superadas hasta la convocatoria extraordinaria de Julio.
Autor: David Gourley
Título: HTTP: The Definitive Guide (Definitive Guides)
Editorial: O'Reilly Media
Fecha Publicación:
ISBN: 978-1565925090
Autor: Gerón, Aurélien
Título: Hands-on machine learning with scikit-learn and TensorFlow: concepts, tools, and techniques to build intelligent systems
Editorial: O'Reilly Media
Fecha Publicación: 2019
ISBN: 9781492032649
Autor: Percival, H. J. W., Gregory, B
Título: Architecture Patterns with Python: Enabling Test-Driven Development, Domain-Driven Design, and Event-Driven Microservices
Editorial: O¿Reilly Media.
Fecha Publicación:
ISBN:
Autor: Huyen, C.
Título: Designing Machine Learning Systems: An Iterative Process for Production-Ready Applications
Editorial: O¿Reilly Media.
Fecha Publicación:
ISBN:
Autor: Ceri, Stefano,
Título: Designing data-intensive Web applications /
Editorial: Morgan Kaufmann Publishers,
Fecha Publicación: 2003
ISBN: 0080503934
Autor: Kew, Nick
Título: Tha Apache modules book application development with Apache
Editorial: Prentice Hall
Fecha Publicación: 2007
ISBN: 0132409674
Autor: Fowler, Susan L.
Título: Web application design handbook: best practices for web-based software /
Editorial: Elsevier/Morgan Kaufmann,
Fecha Publicación: 2004
ISBN: 9780080481708|
Autor: Leskovec, Jurij
Título: Mining of massive datasets
Editorial: Cambridge University Press,
Fecha Publicación: 2014
ISBN: 9781107077232
Autor: Purvis, Michael
Título: Beginning Google maps applications with PHP and Ajax from novice to professional
Editorial: Apress
Fecha Publicación: 2006
ISBN: 9781590597071
Autor: Zhang, Yan-Qing.
Título: Computational Web intelligence
Editorial: World Scientific,
Fecha Publicación: 2004
ISBN: 9812388273
Autor: Vaswani, Vikram.
Título: How to do everything with PHP & MySQL
Editorial: McGraw-Hill/Osborne,
Fecha Publicación: 2005
ISBN: 0072257954
Autor: Taylor, Ian J.
Título: From P2P and grids to services on the web evolving distributed communities
Editorial: Springer,
Fecha Publicación: 2009
ISBN: 9781848001220
Autor: Steinmetz, William.
Título: Wicked cool PHP
Editorial: No Starch Press,
Fecha Publicación: 2008
ISBN: 1593271735
Autor: Kleppmann, M., & Riccomini, C
Título: Designing data-intensive applications: The big ideas behind reliable, scalable, and maintainable systems (2nd ed.)
Editorial: O¿Reilly Media
Fecha Publicación: 2026
ISBN: 978-1098119065
Apuntes de la asignatura en aula virtual
Boletines de problemas en aula virtual.
Conjunto de tutoriales y ejemplos básicos de las principales tecnologías y lenguajes: www.w3schools.com/
Plantillas CSS: www.oswd.org/
Especificaciones del W3C: www.w3c.org
Tutoriales de python: https://docs.python.org/3/tutorial/index.html
Guías de desarrollo de Mozilla: https://developer.mozilla.org/en-US/docs/Web/Guide
La propia Web. Prácticamente todas las tecnologías y conceptos tratados en la asignatura se pueden experimentar libremente y de manera autónoma simplemente con un navegador como Firefox o Chrome.