I1M2017: El TAD de los polinomios en Haskell

En la clase de hoy de Informática de 1º del Grado en Matemáticas hemos estudiado el tipo abstracto de los polinomios y su implementación en Haskell.

Comenzamos la clase analizando las posibles representaciones de los polinomios y, como consecuencia, establecer la signatura y las propiedades del TAD de los polinomios.

A continuación, estudiamos tres prosibles representaciones del TAD de los polinomios mediante tipos algebraicos, mediantes listas dispersas y mediante listas densas y sus implementaciones en Haskell

Finalmente, hemos estudiado las operaciones con los polinomios usando el TAD de los polinomios.

Los apuntes correspondientes a la clase son

I1M2017: Las librerías de conjuntos y de diccionarios en Haskell

En la segunda parte de la clase de hoy de Informática de 1º del Grado en Matemáticas se han estudiado las librerías de diccionarios y de conjuntos en Haskell.

Como primera aproximación se ha explicado su exposición en ¡Aprende Haskell por el bien de todos!. Concretamente las secciones: Data.Map y Data.Set.

En segundo lugar se ha comentado las funciones con las librerías con sus ejemplos:

Finalmente, para comentar las complejidades de las funciones, se ha visto la documentación de las librerías Data.Set y Data.Map.

I1M2017: El TAD de los conjuntos en Haskell

En la primera parte de la clase de hoy de Informática de 1º del Grado en Matemáticas hemos estudiado el tipo abstracto de datos de los conjuntos y tres de sus implementaciones en Haskell.

Se ha seguido el mismo patrón que en los anteriores tipos de datos:

  • elección de las operaciones básicas,
  • especificación de sus propiedades,
  • implementación en Haskell mediante no ordenadas con duplicados,
  • implementación en Haskell mediante listas no ordenadas sin duplicados,
  • implementación en Haskell mediante listas ordenadas sin duplicados,
  • análisis de la complejidad de las definiciones de las operaciones básicas en las tres implementaciones y
  • verificación con QuickCheck de sus propiedades características.

Los apuntes correspondientes a la clase son

I1M2017: Escritura de documentos, LaTeX, PDF y HTML con el modo Org de Emacs

En la clase de hoy del curso de Informática de 1º del Grado en Matemáticas se ha explicado cómo escribir documentos en distintos formato (LaTeX, PDF o HTML) escribiendo el documento con el modo Org de Emacs y exportándolo a los distintos formatos.

La explicación se ha basado en la introducción al modo Org de Carlos
Ríos Monje. Dicha introducción consta del texto de la memoria en modo org junto con sus exportaciones a PDF y a HTML. Para la exportación se usa esta imagen.

Durante la explicación se ha ido comparando los fragmentos en el modo Org con sus correspondientes exportaciones a LaTeX y a HTML.

Los apuntes correspondientes a la clase son

I1M2017: Programación dinámica: Apilamiento de barriles

En la tercera parte de la clase de hoy de Informática de 1º del Grado en Matemáticas se han explicado las soluciones de los ejercicios de la relación 30, en el que se comparan distintas soluciones del problema del apilamiento de barriles. Se ha mostrado como transformar las definiciones recursivas en definiciones con programación dinámica. Además, se han comparado experimentalmente la eficiencia de las distintas definiciones.

Los ejercicios, y sus soluciones, se muestran a continuación.
Read More “I1M2017: Programación dinámica: Apilamiento de barriles”