Materiales de Desarrollo de Aplicaciones en Internet

Universitat d’Alacant, curso 2019–2020

«The web is more a social creation than a technical one», Tim Berners-Lee

Novedades

30 Jun

Los siguientes son algunos comentarios adicionales respecto a los exámenes de teoría y prácticas de la convocatoria C4 a celebrar el día 9 de julio de 2020. Lee, en primer lugar, lo que se dice en el apartado de evaluación de la guía docente en el subapartado «Adaptación de la evaluación a la COVID-19 para el curso 2019-20». Ambos exámenes se realizarán online a través de una reunión en meet.google.com cuya dirección se ha anunciado a través de UACloud. Los estudiantes se incorporarán a la reunión con su cuenta de dominio gcloud.ua.es 5 minutos antes del inicio del examen con el micrófono y la cámara apagados, y así permanecerán hasta el fin del examen, atentos a cualquier aviso que el profesor pueda realizar. Las posibles dudas y preguntas se formularán por escrito al profesor a través de la plataforma chat.google.com en la que se identificarán con su cuenta gcloud.ua.es y en la que pueden encontrar al profesor. El URL para descargar el enunciado de los exámenes se anunciará al comienzo de cada uno de ellos. Las soluciones de ambos exámenes (un documento de texto con las respuestas para el examen de teoría y un zip con el código para el examen de prácticas) se entregarán antes del plazo correspondiente a través del servidor de entrega de prácticas. El profesor podrá requerir a cualquier estudiante que acuda a una reunión paralela privada en meet.google.com durante un corto periodo de tiempo para verificar su identidad o comentar cualquier otro aspecto relacionado con la prueba. El examen de teoría comenzará a las 9.00 y tendrá una duración de 75 minutos. El examen de teoría constará de 10 problemas similares a algunos de los de la página «Problemas»; es muy probable que el examen no incluya (o lo haga muy tangencialmente) problemas de los que piden la salida de la ejecución de un determinado programa o un dibujo sobre cómo representa el navegador una determinada página; sí habrá preguntas de las de rellenar agujeros en un código o una frase, o incluso de escribir pequeños fragmentos de código (en HTML, CSS o JavaScript) de unas pocas líneas de longitud (por ejemplo: «dado el siguiente código de HTML y CSS (que no puedes modificar), escribe un fragmento de código en JavaScript que haga que, al pulsar el primer botón, la palabra usuario se muestre de color rojo»). Se pedirá que cada respuesta vaya acompañada de una pequeña justificación (un par de líneas pueden ser suficientes). Esta justificación ha de ser 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 o de otros efectos colaterales. El profesor indicará al comienzo del examen de dónde descargar un fichero de texto que contendrá una plantilla para escribir las respuestas. Por otro lado, el examen práctico comenzará a las 10.30 y tendrá una duración de 110 minutos. Constará de una ampliación de la última práctica similar a las que se pueden consultar en el apartado «Ejemplos de posibles ejercicios para el examen práctico». Se recomienda que, antes del examen, te familiarices con las plataformas de videoconferencia y chat que se van a usar, así como con el editor de texto con el que vas a trabajar durante el examen teórico, si tienes que hacerlo, o con el entorno de desarrollo de Node.js, si tienes que hacer el práctico.

05 May

Por resolución rectoral, el examen del 1 de julio 9 de julio (la fecha se modificó a finales de mayo) de 2020 (correspondiente a la convocatoria C4) se llevará a cabo a través de mecanismos de evaluación no presencial. Recuerda que según la guía docente «la calificación final será la media del examen teórico final y la prueba práctica con ordenador» y que «las notas de la convocatoria C2 mayores de 4 se guardan para la convocatoria C4». Estos criterios de evaluación no se modificarán ante la nueva situación. El examen teórico y la prueba de ampliación de la última práctica serán similares a los de la convocatoria de enero, pero previsiblemente introducirán algunos cambios que se anunciarán más adelante (junto con otros aspectos como las horas asignadas para el examen). Por ejemplo, es de esperar que el examen teórico no incluya preguntas del tipo «di cuál es la salida por consola al ejecutar este programa en JavaScript», ya que como vas a realizar el examen en tu ordenador bastaría con copiar el código y ejecutarlo. Recuerda también que el profesor sigue estando a tu disposición para tutoría por Google Meet (con cámara o sin ella, como quieras), previa reserva por UACloud. En otro orden de cosas, mira la otra noticia que se ha publicado hoy sobre la nueva página de problemas que se ha creado.

05 May

Se han movido todos los problemas que estaban diseminados por las distintas páginas de cada tema a un nueva página titulada «Problemas». A esta página se le han incorporado también los enunciados de los problemas del examen de enero de 2020.

13 Ene

Lo siguiente son algunas normas y recomendaciones para los exámenes de la asignatura del 24 de enero de 2020.

  • Léete bien las normas de la asignatura que se encuentran en la guía docente en UACloud y más abajo en esta página.

  • 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 un fichero de texto.

  • Inmediatamente antes del inicio examen práctico tendrás 5 minutos para copiar desde tu memoria USB al ordenador del laboratorio el código de tu práctica 4 (que no tiene por qué coincidir al cien por cien con el que entregaste en diciembre, ya que probablemente le hayas hecho alguna mejora o corregido algunos errores) y preparar el entorno de trabajo; después de ese momento, no será posible tener conectado ningún dispositivo externo al ordenador durante la realización del examen.

  • Es recomendable llevar una par de memorias USB para evitar disgustos por fallos inesperados en el dispositivo.

  • El examen se realizará en el sistema operativo Linux de los ordenadores del laboratorio; asegúrate de que el sistema de ficheros de tu memoria USB es compatible con el Linux de los laboratorios para no tener problemas al copiar tu código.

  • Durante la realización del examen no habrá acceso a internet, excepto a esta página con una copia de los materiales de la asignatura (ubicación temporal) y al servidor de entrega de prácticas del departamento (para entregar tu solución al examen cuando acabes).

  • Desde la página con la copia de los materiales puedes descargar el fichero dai-bundle-dev (que ya hemos usado en clase) para instalar Node.js, así como el fichero dai-node_modules, que contiene los módulos de Node.js necesarios para ejecutar tu práctica (gracias a ello, ya no necesitarás hacer npm install antes de lanzar tu práctica, ya que esta orden necesita acceso a internet); este último fichero lo has de descomprimir en tu carpeta de código para que se cree allí el directorio node_modules.

  • El día del examen práctico realiza antes de empezar el examen estos pasos por este orden:

    1. Entra en Linux con tu usuario y contraseña.

    2. Accede a la página con una copia de los materiales y descarga de ella los ficheros dai-bundle-dev y dai-node_modules o llévalos ya copiados en tu memoria USB.

    3. Descomprime el fichero cuyo nombre comienza por dai-bundle-dev en cualquier directorio.

    4. Entra en el directorio creado y ejecuta desde un terminal install.sh.

    5. Cierra el terminal y abre uno nuevo.

    6. Crea una carpeta dai-enero2020 y copia dentro de ella los ficheros de tu práctica.

    7. Descomprime dentro de dai-enero2020 el fichero cuyo nombre comienza por dai-node_modules.

    8. Desde el terminal ejecuta npm start dentro del directorio dai-enero2020 y comprueba que tu práctica funciona en localhost:5000.

  • Asegúrate de que te familiarizas con toda la información anterior antes del examen.

13 Ene

Por un error en el texto de los materiales de la asignatura, las instancias de bases de datos que estábamos creando en Google Cloud SQL eran de un tipo excesivamente potente (y costoso) para el uso que les damos en la asignatura (unas pocas tablas con unos pocos registros cada una). El apartado «Publicación de la aplicación del carrito en Google App Engine» ya se ha corregido para indicar que la instancia que aloja la base de datos MySQL ha de ser de tipo db‑f1‑micro. También se indica al final de dicho apartado cómo dormir la instancia cuando vayamos a dejar de usar la aplicación y cómo despertarla posteriormente. Para evitar un gasto innecesario, el profesor ha destruido todas las instancias de bases de datos anteriores, por lo que tendrás que volver a crearla (esta vez indicando el tipo db‑f1‑micro al hacer gcloud sql instances create ...) si quieres usar tus aplicaciones en Google App Engine. Dado que la práctica 4 ya ha sido corregida y que en el examen práctico no se pedirá nada relacionado con la nube de Google, en realidad solo te podría interesar crear una nueva instancia de cara a recordar algunos conceptos cuando prepares el examen teórico; lamentablemente, en estos momentos no podrías hacerlo por problemas técnicos; espera unos días, por favor, hasta que se solucionen.

07 Ene

Ya están publicadas las notas de la práctica 4 en la web del departamento.

30 Dic

Las medianas del tiempo dedicado por los estudiantes a realizar cada una de las cuatro prácticas, según los datos indicados por los estudiantes al pie de la página web de la aplicación entregada, han sido 6, 12, 10 y 19 horas respectivamente. La suma de estas medianas supone 47 horas de trabajo, de las que en principio unas 26 serían horas de trabajo en las sesiones de prácticas y el resto, 21 horas, trabajo personal fuera del aula. Recordad que dado que la asignatura tiene 6 créditos ECTS, el tiempo medio dedicado a ella fuera del aula (incluyendo el repaso de la teoría, la realización de las prácticas, la preparación del examen, etc.) debería de ser de 90 horas en total.

09 Dic

Se ha añadido al final de la página web que contiene los enunciados de las prácticas algunos ejemplos de posibles ampliaciones de la práctica que te permitan preparar el examen práctico.

08 Dic

Las dos últimas sesiones de teoría del curso las dedicaremos principalmente a resolver algunos de los problemas que aparecen en los materiales de la asignatura, por lo que es recomendable haber trabajado con ellos antes de la clase. Recuerda que las preguntas del examen teórico serán similares a estas.

05 Dic

Ya está publicada en el enunciado la segunda parte (opcional) de la práctica 4. La primera parte permitirá obtener un 8 como nota máxima de la práctica. Los dos puntos restantes corresponden a la segunda parte, que no es obligatorio que implementes ni para la entrega de esta práctica ni para el examen de prácticas, ya que el enunciado del examen supondrá que no ha sido implementada.

25 Nov

Ya está publicado el enunciado de la primera parte de la práctica 4. Antes de ponerte a programar, asegúrate de que entiendes bien el contenido de los temas de servicios web y de la computación en la nube.

18 Nov

De cara a las próximas clases y a la práctica 4, asegúrate de que tienes habilitada la cuenta de correo electrónico que la universidad te asigna con dominio gcloud.ua.es; entra para ello en la opción Servicios externos de UACloud.

12 Nov

Léete la definición de computación en la nube del NIST (organización norteamericana de estandarización) antes de la clase del 19 de noviembre.

11 Nov

Ya están publicadas las notas de la práctica 2 en la web del departamento.

10 Nov

Léete la parte 1 de la introducción a los componentes web de Caleb Williams antes de la clase del 12 de noviembre.

05 Nov

Ya está publicado el enunciado de la práctica 3.

24 Oct

Ya están publicadas las notas de la práctica 1 en la web del departamento.

15 Oct

El día 29 de octubre no habrá clase de la asignatura por tener que asistir el profesor a una reunión de trabajo. Para que esta interrupción no afecte al normal discurrir de la asignatura se proponen las siguientes medidas: el plazo para la entrega de la práctica 2 se alarga una semana, hasta el 4 de noviembre; el día 22 de octubre no habrá clase de prácticas, pero se impartirá una clase de teoría más larga de lo habitual en el laboratorio OP-INF1 de la planta baja del edificio de Óptica (próximo al edificio Politécnica IV donde se imparten normalmente las clases) en uno de estos dos turnos a elegir libremente por el estudiante: de 9.00 a 12.00 o de 12.00 a 15.00 horas.

14 Oct

Léete los capítulos sobre desarrollo en el lado del cliente y peticiones Ajax del libro «Client-Side Web Development» antes de las clases del 22 de octubre.

07 Oct

Léete el capítulo sobre el Document Object Model del libro «Client-Side Web Development» antes de las clases del 15 de octubre.

01 Oct

Léete el capítulo de introducción a la programación funcional con JavaScript del libro «Client-Side Web Development» antes de las clases del 1 de octubre.

30 Sep

Ya está publicado el enunciado de la práctica 2.

23 Sep

Léete el capítulo de introducción a JavaScript del libro «Client-Side Web Development» antes de las clases del 1 de octubre.

22 Sep

Por error se había colado en la página de prácticas la afirmación de que las prácticas se podían hacer en parejas, pero este curso las prácticas de la asignatura son individuales. Si ya habías comenzado a realizar la práctica 1 en pareja y la tienes relativamente avanzada, habla con el profesor.

16 Sep

Léete el capítulo de introducción a CSS del libro «Client-Side Web Development» antes de las clases del 24 de septiembre.

09 sep

Antes de las clases del 17 de septiembre e necesario haber leído el capítulo sobre HTML del libro «Client-Side Web Development».

08 sep

Ya está publicado el enunciado de la práctica 1. Las clases de prácticas comienzan el 17 de septiembre.

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 (cuenta de Twitter: @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 5 faltas no justificadas. Si tienes alguna ocupación que te impide asistir a todas o gran parte de las prácticas, envía un justificante escaneado al profesor a través del sistema de tutoría de UACloud. Para justificar una falta puntual, enseña al profesor el justificante durante la próxima sesión de prácticas a la que acudas. 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. Si el horario no es compatible con tu agenda, escribe al profesor e intentará encontrar un hueco fuera de dicho horario. Si no resultara posible consensuar una hora de visita, también puedes contactar previa cita por chat, videollamada o teléfono. El despacho del profesor está en la segunda planta del módulo 2 del Edificio Politécnica 4, justo en este punto del mapa.

  • Las prácticas se realizan individualmente. Lee lo que se comenta más abajo sobre plagios.

  • Cada una de las cuatro prácticas contribuye un 25% a la nota final de las prácticas.

  • Los exámenes de teoría y prácticas se realizan uno a continuación del otro en la fecha oficial del calendario de exámenes. Salvo excepciones autorizadas expresamente por el profesor, el único material que puedes llevar a cada examen es un documento identificativo, un boligrafo y una hoja de tamaño ISO/DIN A5 (148 x 210 mm) en la que puedes escribir o imprimir toda la información que consideres útil. La hoja se entregará al profesor al acabar el examen y no puede compartirse con otros estudiantes. Puedes llevar una hoja diferente para el examen teórico y para el práctico, pero no puede superar las medidas indicadas.

  • El examen de prácticas se realizará en los ordenadores de los laboratorios de la Escuela Politécnica Superior; durante su realización no habrá acceso a internet.

  • Para acceder a Google Cloud Platform en las últimas semanas del curso necesitarás tu cuenta de correo electrónico de GCloud con dominio @gcloud.ua.es de 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/dai1920/index.html

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 Massachusettts 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. 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.

Contenidos: