Materiales de Desarrollo de Aplicaciones en Internet
Universitat d’Alacant, curso 2023–2024
«The web is more a social creation than a technical one», Tim Berners-Lee
Materiales con licencia CC BY-NC-SA 4.0
Novedades
22 dic |
Ya puedes consultar en la web del departamento las notas de la práctica 4. Los apartados marcados con un asterisco cuentan la cuarta parte que los otros. |
05 dic |
Lo siguiente son algunas normas y recomendaciones para los exámenes de la asignatura de enero de 2024. El examen de teoría y el de prácticas de la convocatoria de enero tendrán lugar el 10 de enero por la mañana en el horario y aulas que se indica en la guía docente. Ambos exámenes se realizarán en el mismo laboratorio: el de teoría comenzará a las 9.00 y el de prácticas cuando termine este, con un pequeño descanso entre ambos. El examen de teoría tendrá una duración aproximada de 100 minutos y el de prácticas de 120 minutos. El examen de prácticas se realizará en el ordenador del laboratorio sin conexión a internet. En previsión de posibles problemas con estos ordenadores, ven al examen con tu portátil si lo tienes. Asegúrate de traer una versión funcional de tu práctica 4 en una unidad de almacenamiento externa, ya que el examen de prácticas consistirá en una ampliación de esta. Es recomendable llevar una par de memorias USB para evitar disgustos por fallos inesperados en el dispositivo. Los resultados de la evaluación de la práctica 4 se publicarán previsiblemente varios días antes del examen, pero probablemente no necesitarás el informe del profesor para saber qué cosas no funcionan de la práctica que entregaste y corregirlas antes del examen. El examen de teoría constará de unos 10 problemas similares a algunos de los de la página «Problemas»; se pedirá que cada respuesta vaya acompañada de una pequeña justificación, la mínima necesaria para que el profesor, que también conoce la materia, pueda concluir que eres capaz de defender tu respuesta y que esta no es consecuencia del azar. Recuerda que puedes traer al examen teórico una chuleta de tamaño máximo A5. Al examen práctico puedes traer otra chuleta del mismo tamaño, pero dado que también traerás tu propio código de la práctica 4 en una memoria USB, puedes añadir allí cualquier información suplementaria en ficheros adicionales. En esta misma página, más abajo, se explica cómo crear una versión offline de los materiales de la asignatura con |
05 dic |
Ya puedes consultar en la web del departamento las notas de la práctica 3. Los apartados marcados con un asterisco cuentan la mitad que los otros. |
14 nov |
Ya puedes consultar en la web del departamento las notas de la práctica 2. Los apartados marcados con un asterisco cuentan la cuarta parte que los otros. |
17 oct |
Ya puedes consultar en la web del departamento las notas de la práctica 1. |
06 sep |
En la sección «Actividades previas a las clases» podrás ir encontrando cada semana las actividades a realizar antes de la clase siguiente. Habrá también un enlace a un pequeño cuestionario que tienes que rellenar antes de las 23.59 del día anterior. Recuerda que estos cuestionarios contribuyen a la nota final. Consulta tras cada clase la sección «Actividades previas a las clases» para comprobar si esa semana hay que realizar actividades antes de la clase siguiente. Ya tienes disponible las actividades y el cuestionario a realizar antes de la clase del 19 de septiembre de 2023. |
05 sep |
Ya está publicado el enunciado de la primera práctica. De hecho, están publicados los enunciados de todas las prácticas. Las clases de teoría y prácticas comienzan el día 12 de septiembre. |
Actividades previas a las clases
Antes de la clase del 19/12/2023: realiza la actividad «Elementos adicionales de CSS» en la que has de ver un par de vídeos sobre características adicionales de CSS (duración total de los vídeos: unas 2 horas y media; un poco más de 1 hora y media a 1,5x). A continuación, contesta el test sobre características adicionales de CSS (plazo límite: 18/12/2023, 23:59 horas).
Para la próxima sesión de clase (12/12/2023) no hay actividades previas a realizar. Se estudiará en clase la plataforma Docker, pero sin necesidad de una preparación anterior por parte del estudiante. Así podrás avanzar más en la práctica 4 o simplemente desconectar un poco durante los varios días festivos :-)
Antes de la clase del 05/12/2023: realiza la actividad «Una definición de computación en la nube», que incluye la lectura de una definición concisa de lo que es la computación en la nube y el visionado de unos vídeos; a continuación, contesta el test sobre computación en la nube (plazo límite: 04/12/2023, 23:59 horas). Después, realiza la actividad «Publicación avanzada de la aplicación del carrito en Google App Engine integrada con Google Cloud SQL», en la que aprenderás a desplegar en la nube la aplicación del carrito, lo que necesitarás saber hacer por ti mismo como paso final de la práctica 4.
Antes de la clase del 28/11/2023: sigue (si no lo hiciste ya) la actividad «Configuración del entorno de trabajo para Google Cloud Platform», donde se muestra cómo configurar tu entorno de trabajo para poder trabajar con la nube de Google, y, a continuación, la actividad «Caso de uso: integración de servicios de Google Cloud Platform» en la que tendrás que ver unos vídeos (duración: 40 minutos), leer unos tutoriales y realizar un pequeño ejercicio. A continuación, contesta el test sobre Google Cloud Platform (plazo límite: 27/11/2023, 23:59 horas)
Antes de la clase del 21/11/2023: practica con lo que se comenta en las actividades siguientes: «Configuración del entorno de trabajo para ejecutar localmente una aplicación web», «Prueba de la aplicación del carrito», «Modificación de la API REST», «Despliegue básico de la aplicación web en Google App Engine con persistencia limitada vía SQLite3» y «La política del mismo origen y el estándar CORS». A continuación, contesta el test sobre despliegue de aplicaciones web (plazo límite: 20/11/2023, 23:59 horas)
Antes de la clase del 14/11/2023: lee detenidamente y practica con lo discutido en las actividades siguientes: «La arquitectura REST», «Envío de peticiones desde JavaScript» y «Programación de servicios web en Node.js»; la última incluye un vídeo con una traza de la aplicación del carrito (duración: 28 minutos; unos 20 a 1,5x). Para poder practicar con el código de esas actividades, tendrás que configurar tu entorno de trabajo como se indica en la actividad «Configuración del entorno de trabajo para ejecutar localmente una aplicación web». A continuación, contesta el test sobre implementación de servicios web (plazo límite: 13/11/2023, 23:59 horas).
Antes de la clase del 07/11/2023: lee detenidamente y practica con lo discutido en las actividades siguientes: «Introducción a los componentes web», «Un ejemplo sencillo de componente web» y «Características adicionales de los componentes web». A continuación, contesta el test sobre componentes web (plazo límite: 06/11/2023, 23:59 horas).
Antes de la clase del 31/10/2023: realiza las actividades «El protocolo HTTP», «Promesas de JavaScript», «Los objetos de tipo XMLHttpRequest» y «La API Fetch». Todas las actividades menos la segunda consisten principalmente en el estudio de una serie de vídeos (duración total de los vídeos: 50 minutos; unos 35 a 1,5x). Para la la segunda actividad, sin embargo, tienes que leer su contenido (tiempo estimado de lectura: 30 minutos). A continuación contesta el test sobre acceso a servicios web (plazo límite: 30/10/2023, 23:59 horas).
Antes de la clase del 24/10/2023: realiza la actividad «Objetos y prototipos» (en esta actividad tienes que leer un texto con un tiempo estimado de lectura de unos 80 minutos); después, lee y practica con lo que se discute en la actividad «Ámbitos y clausuras» (tiempo estimado de lectura: 15 minutos). A continuación contesta el test sobre prototipos y clausuras en JavaScript (plazo límite: 23/10/2023, 23:59 horas).
Antes de la clase del 17/10/2023: estudia los vídeos de la actividad «Las APIs del navegador para programar el lado del cliente» (duración total de los vídeos: unos 55 minutos; unos 40 a 1,5x). A continuación, contesta el test sobre la API de los navegadores para JavaScript (plazo límite: 16/10/2023, 23:59 horas).
Antes de la clase del 10/10/2023: estudia el código y los vídeos de la actividad «Una aplicación web sencilla» (duración total de los vídeos: unos 50 minutos; unos 35 a 1,5x). A continuación, contesta el test sobre la aplicación web sencilla con JavaScript (plazo límite: 09/10/2023, 23:59 horas).
Antes de la clase del 03/10/2023: estudia los vídeos de la actividad «Introducción al lenguaje de programación JavaScript» (duración total de los vídeos: unos 55 minutos; unos 40 a 1,5x). A continuación, contesta el test sobre la introducción a JavaScript (plazo límite: 02/10/2023, 23:59 horas). Utiliza tu cuenta de
gcloud.ua.espara acceder a todos los materiales que requieran autenticación.Antes de la clase del 26/09/2023: lee detenidamente y practica con lo discutido en las actividades siguientes: «Elementos en línea y de bloque», «Modelo de caja en CSS» y «Posicionamiento». A continuación, contesta el test sobre el modelo de caja de CSS (plazo límite: 25/09/2023, 23:59 horas). Recuerda utilizar tu cuenta de
gcloud.ua.espara acceder a los materiales que requieran autenticación.Antes de la clase del 19/09/2023: estudia los vídeos y practica con la actividad «Selectores y propiedades del lenguaje CSS» (duración total de los vídeos: unos 35 minutos; unos 25 a velocidad 1,5x). A continuación, contesta el test sobre la introducción a CSS (plazo límite: 18/09/2023, 23:59 horas). Utiliza tu cuenta de
gcloud.ua.espara acceder a todos estos materiales. Si tu ancho de banda te lo permite, puedes elegir explícitamente una resolución de 1080 píxeles para el vídeo.
Guía docente y normas del curso
Estos son los materiales de clase de la asignatura Desarrollo de Aplicaciones en Internet, coordinada por el profesor Juan Antonio Pérez Ortiz (@japer3z) de la Universitat d’Alacant. Para obtener información sobre la evaluación de la asignatura puedes consultar la guía docente. Algunos aspectos adicionales que no están recogidos en la guía son los siguientes:
La asistencia a prácticas es obligatoria, aunque se puede tener un máximo de 4 faltas no justificadas. Si tienes alguna ocupación que te impide asistir a todas o gran parte de las prácticas incluso online, envía un justificante escaneado al profesor a través del sistema de tutoría de UACloud. Para justificar una falta puntual, envía al profesor el justificante por una tutoría de UACloud. Cada falta no justificada por encima de las permitidas, restará una parte de la nota final de prácticas.
La visita al profesor durante sus horas de tutoría no puede ser obligatoria por cuestiones normativas, pero es muy recomendable, ya que es la oportunidad de recibir supervisión sobre tus conocimientos de la materia o la calidad del código que has desarrollado. Reserva turno a través de UACloud con anterioridad tanto para un encuentro bien virtual bien presencial. Si el horario no es compatible con tu agenda, escribe al profesor e intentará encontrar un hueco fuera de dicho horario para atenderte.
Las prácticas se realizan individualmente. Lee lo que se comenta más abajo sobre plagios. Si tienes alguna duda sobre si algo que estás haciendo puede considerarse plagio, consulta al profesor.
No se prohíbe explícitamente el uso de asistentes basados en inteligencia artificial (Github Copilot, ChatGPT, etc.), pero ten en cuenta varios potenciales problemas: por un lado, tanto durante el examen teórico como durante el práctico no estará permitido utilizar ningún asistente ni local ni disponible online (no habrá acceso a internet); por otro lado, los asistentes son recomendables cuando uno domina la materia y quiere ahorrar tiempo, pero no cuando uno está aprendiendo, ya que pueden inducir a errores difíciles de detectar o generar código perfecto que no entendemos o no intentamos entender; por último, no es descartable que el código generado por tu asistente sea considerado como plagio al coincidir con el de otro compañero que usa asistentes en aspectos que no son triviales.
Cada una de las cuatro prácticas contribuye según lo indicado en la sección de prácticas a la nota final.
Para acceder a Google Cloud Platform necesitarás tu cuenta de correo electrónico de GCloud con dominio
@gcloud.ua.esde la que dispones como alumno de la Universitat d’Alacant. Asegúrate antes de la cuarta semana de clase de que la tienes activada entrando en la sección Servicios externos de UACloud.
Puedes encontrar algo de información adicional en las diapositivas usadas en la presentación del curso.
El código fuente de estas páginas, escrito en reStructuredText, está disponible en Github.
Puedes obtener una copia local de estas páginas (por ejemplo, para poder consultarlas sin conexión) ejecutando:
wget --mirror --no-parent --convert-links --page-requisites https://jaspock.github.io/dai2324/index.html
Contenidos
La asignatura aborda el estudio de las tecnologías de desarrollo de aplicaciones web, tanto desde el punto de vista del cliente como del servidor, pero enfatizando los elementos más fundamentales y evitando centrarnos en un framework concreto en la medida de lo posible. Los frameworks pueden llegar a ser tremendamente útiles y ahorrar mucho trabajo, pero suelen ocultar detalles de bajo nivel que son necesarios si queremos poder adaptarnos rápidamente a otros frameworks o utilizar elementos del desarrollo web no cubiertos por el framework en cuestión. Sin ánimo de polarizar el debate y reconociendo la utilidad de los frameworks, algunos desarrolladores han alertado de potenciales problemas (como el llamado hype driven development) con argumentos como los que puedes leer en este tweet.
Cómo compartir código con el profesor
Si quieres que el profesor pueda ayudarte con algún código que estás desarrollando, mandar un pantallazo no es la mejor opción. Envíale el código completo, por ejemplo, compartiendo con su usuario un repositorio privado de Github.
Recomendaciones
Este prefacio es un buen lugar para decir unas palabras sobre integridad profesional y ética académica. Durante este cuatrimestre, la carga de trabajo producida por esta y otras asignaturas puede hacer que en ocasiones te sientas desbordado por la faena pendiente. Esta situación también se producirá frecuentemente en el ámbito profesional para el que te estás formando. Es muy importante que afrontes esos momentos de presión con integridad. El Massachusetts Institute of Technology (MIT) da una serie de recomendaciones a sus estudiantes al respecto que es importante que leas. Este tipo de universidades suelen tener bien especificado los procedimientos y sanciones posibles en caso de fraude académico; también la Universitat d’Alacant tiene un reglamento al respecto, que probablemente ya conoces. Además, la Ley 3/2022 de Convivencia Universitaria impone sanciones importantes ante faltas de este tipo. Todos estos aspectos también has de tenerlos en cuenta en esta asignatura: se pueden discutir soluciones en equipo pero nunca compartir código.
Este es el momento también en el que enfatizar la importancia de tomar apuntes para poder preparar la asignatura con garantías. Las diapositivas, por ejemplo, solo contienen una parte de lo estudiado en clase. Por si se nos ha olvidado mencionarlo, también es muy aconsejable que acudas de vez en cuando a una tutoría presencial; usa antes para ello el sistema electrónico de solicitud de cita de UACloud.
Por otro lado, es importante señalar que los vídeos que se publiquen no pretenden ser una fuente de información que tengas que ver una y otra vez para asimilar la materia. El profesor te aconseja que los veas quizás un par de veces y que tomes apuntes que te permitan afrontar el visionado como una tarea activa y consultar luego la información de forma mucho más rápida y eficiente. Busca en fuentes fiables de internet o pregunta todas aquellas cosas que no te hayan quedado claras e incorpora también tus conclusiones a tus apuntes. A la hora de preparar el examen, puede ser interesante realizar un visionado adicional (probablemente a velocidad 1,5x) para refrescar ideas y asegurarte de que no se dice nada en los vídeos que no sepas ya por tus apuntes.
Contenidos:
- 1. Lenguajes de marcado
- 2. Lenguajes de estilo
- 3. Programar el lado del cliente
- 4. Acceso a servicios web de terceros
- 5. Componentes web
- 6. Implementación de servicios web
- 6.1. La arquitectura REST
- 6.2. Envío de peticiones desde JavaScript
- 6.3. Programación de servicios web en Node.js
- 6.4. Configuración del entorno de trabajo para ejecutar localmente una aplicación web
- 6.5. Modificación de la API REST
- 6.6. Despliegue básico de la aplicación web en Google App Engine con persistencia limitada vía SQLite3
- 6.7. La política del mismo origen y el estándar CORS
- 6.8. Autenticación de usuarios
- 6.9. Términos de uso de las APIs web
- 7. Computación en la nube
- 7.1. Configuración del entorno de trabajo para Google Cloud Platform
- 7.2. Caso de uso: integración de servicios de Google Cloud Platform
- 7.3. Una definición de computación en la nube
- 7.4. Publicación avanzada de la aplicación del carrito en Google App Engine integrada con Google Cloud SQL
- 7.5. Ejecución de contenedores en la nube
- 8. Problemas
- 9. Enunciados de las prácticas
- 9.1. Calendario
- 9.2. Instrucciones de entrega de las prácticas
- 9.3. Práctica 1: una página web con HTML5 🖥️
- 9.4. Práctica 2: una aplicación web local 🖥️
- 9.5. Práctica 3: una aplicación con acceso a servicios web de terceros y con componentes web 🖥️
- 9.6. Práctica 4: una aplicación en la nube 🖥️
- 9.7. APÉNDICE: Ejemplos de posibles ejercicios para el examen práctico