Página de soporte de la asignatura de Fundamentos de Algoritmia (FAL) (grupo G), de la Facultad de Informática de la UCM.
En esta página aparece el periodo de clases de Fundamentos de Algoritmia (FAL) dividido en distintos periodos. Para cada periodo aparece una lista de ejercicios de Acepta el Reto mencionados en clase y los usuarios que han hecho envíos y los han resuelto en ese intervalo de tiempo.
Aparece, además, una especie de "ranking" general en el que se ve qué usuarios han resuelto el mayor número de esos ejercicios mencionados.
En las listas aparecen únicamente los envíos realizados por los alumnos del grupo G durante el periodo de tiempo en el que la pestaña estuvo activa. Si tienes usuario en el portal, eres alumno del grupo G y tus envíos no aparecen, ponte en contacto con el profesor.
Recuerda que este ranking y los envíos aceptados que aparecen aquí no forman parte de las pruebas ejercicios de evaluación continua, sino de los problemas que durante las clases el profesor fue aconsejando hacer para practicar los conceptos de la asignatura.
También recuerda que aunque hacer todos estos problemas ayuda mucho en la preparación para el examen, los contenidos de FAL cubren más aspectos que su simple resolución en C++.
Otros enlaces de interés:
Sesión | |
---|---|
#1 | Antes de empezar... |
#2 | Poniéndonos en marcha |
#3 | De qué va la algoritmia... |
#4 | Algoritmos iterativos |
#5 | Algoritmos iterativos (2) |
#6 | Algoritmos recursivos |
#7 | Divide y vencerás |
El cuatrimestre está dividido en distintos periodos de tiempo no necesariamente iguales pues se corresponden más con "secciones temáticas" que con "semanas" o "quincenas".
Cada periodo tiene su propia pestaña donde se ven los detalles (entre ellos el intervalo de fechas correspondiente a ese periodo y los problemas aconsejados en él).
Para cada periodo se muestra una clasificación con los usuarios que han resuelto más ejercicios (y en caso de empate, en menos tiempo). En la lista sólo aparecen los envíos realizados por alumnos del grupo G. Si tienes usuario en el portal, eres alumno del grupo G y tus envíos no aparecen, ponte en contacto con el profesor.
La tabla que aparece a continuación condensa el número total de problemas resueltos de cada periodo por cada usuario.
Antes de empezar con las clases, un calentamiento para aquellos que quieran ir poniéndose en marcha. Tres problemas sencillos que cualquiera con unas pocas nociones de programación puede realizar correctamente.
Lo único que pretenden estos ejercicios es dar una excusa para utilizar el juez y comprobar si la configuración de ésta página es correcta y tus envíos aparecen.
La lista de problemas mencionados aparece en la tabla de la derecha. Puedes pulsar sobre el número o el título del problema para ir a su enunciado. La tabla también muestra el número de envíos correctos (número absoluto, no durante el periodo por alumnos de FAL) y el número de envíos totales.
En la parte inferior aparece una tabla con los últimos envíos realizados a los problemas. Y un poco más abajo aparecen todos los usuarios que hicieron algún envío a ellos, ordenados por número de problemas correctos; en caso de empate se utiliza como desempate el tiempo total acumulado. Entre paréntesis se muestra el número de intentos antes de conseguir el primer envío correcto.
Eso sí, aparecen únicamente los envíos realizados hasta el 9 de septiembre a las 10:00 (como bien pone arriba, donde indica el periodo de tiempo). Es decir, se tienen en cuenta los envíos que tengan lugar hasta, como muy tarde, el momento en el que comienza la primera clase del curso.
La persona que ocupe el primer puesto en el ranking recibirá como recompensa una camiseta de manga corta en esa primera clase siempre y cuando 1) esté presente y 2) haya conseguido al menos un problema correcto.
¿Has hecho envíos antes de la primera clase y no aparece tu nombre? Para aparecer tienes que rellenar este formulario y esperar a que el profesor procese las respuestas. Los envíos que hagas terminarán apareciendo en la web, aunque los hayas hecho antes de rellenar el formulario.
Presentación de la asignatura. Para aquellos que no intentaron los problemas antes del comienzo de las clases, una nueva oportunidad de ponerse en marcha. Tres problemas sencillos que cualquiera con unas pocas nociones de programación puede realizar correctamente.
Lo único que pretenden estos ejercicios es dar una excusa para utilizar el juez y comprobar si la configuración de ésta página es correcta y tus envíos aparecen.
Primeros problemas para descubrir que la algoritmia no es únicamente programar.
Algunos de estos problemas parecen tener solución obvia, pero al programarla se descubre que es demasiado lenta. En eso consiste la algoritmia: en encontrar métodos más eficientes que la primera solución que viene a la cabeza.
Si no conseguís escapar del time-limit, no os preocupéis. Los algoritmos eficientes son el objeto de la asignatura, y estamos empezando...
Algunos algoritmos iterativos.
Lo importante no es únicamente conseguir el AC, sino implementarlos con un código compacto y claro, pensando el algoritmo antes de programarlo.
Algunos algoritmos iterativos.
Lo importante no es únicamente conseguir el AC, sino implementarlos pensando en el invariante del bucle y que su código sea compacto y claro.
La recursión se utiliza mucho en FAL. El tema 4 construye las bases de los algoritmos recursivos que no se abandonarán el resto del cuatrimestre y que forman parte importante de algunos temas de ED (asignatura del segundo cuatrimestre).
Algunos de los ejercicios que aparecen aquí pueden implementarse también de forma iterativa. Pero para practicar los conceptos del tema, es mejor que los resuelvas con recursión. O mejor aún, con recursión que luego conviertes a recursión final para terminar con la versión iterativa del algoritmo.
Hay un problema, incluso, que puede resolverse con una expresión.
Algoritmos relacionados con Divide y vencerás.
El problema 357 - La prueba de las cajas y las bolas no es un ejercicio de divide y vencerás como tal, pero la estrategia seguida por el protagonista del concurso sí sigue esa idea.
Por su parte, el problema 342 - ¡No lo puedes saber! NO es de divide y vencerás, pero la temática es el juego de adivinar el número, por lo que se incluye aquí como testigo de que el juego es un ejemplo típico de divide y vencerás y búsqueda binaria.
Por último, el problema 662 - Las crecidas del Nilo requiere, además de divide y vencerás un algoritmo recursivo complicado que no hemos visto en clase pero que es interesante explorar.