I1M2011: Ejercicios sobre árboles binarios en Haskell

En la clase de hoy de Informática de 1º del Grado en Matemáticas se han explicado las soluciones de los ejercicios de la 19ª relación.

En esta relación se plantean ejercicios sobre árboles binarios. En concreto, se definen funciones para calcular:

  • el número de hojas de un árbol,
  • el número de nodos de un árbol,
  • la profundidad de un árbol,
  • el recorrido preorden de un árbol,
  • el recorrido postorden de un árbol,
  • el recorrido preorden de forma iterativa,
  • la imagen especular de un árbol,
  • el subárbol de profundidad dada,
  • el árbol infinito generado con un elemento y
  • el árbol de profundidad dada cuyos nodos son iguales a un elemento.

Los ejercicios, y sus soluciones, se muestran a continuación.
Read More “I1M2011: Ejercicios sobre árboles binarios en Haskell”

I1M2011: Libro de ejercicios resueltos de programación en Haskell (v. 18-Feb-12)

A lo largo del curso iré actualizando un libro de ejercicios resueltos de programación con Haskell con las relaciones de ejercicios del curso de Informática (de 1º del Grado en Matemáticas)

En la versión actual contiene las soluciones de las 16 primeras relaciones y los 3 primeros exámenes:

  1. Definiciones elementales de funciones (1).
  2. Definiciones elementales de funciones (2).
  3. Definiciones por comprensión (1).
  4. Definiciones por comprensión (2).
  5. Definiciones por comprensión (3): El cifrado César.
  6. Definiciones por recursión.
  7. Definiciones por recursión y por comprensión (1).
  8. Definiciones por recursión y por comprensión (2).
  9. Definiciones sobre cadenas, orden superior y plegado.
  10. Definiciones por plegado.
  11. Codificación y transmisión de mensajes.
  12. Resolución de problemas matemáticos.
  13. Demostración de propiedades por inducción.
  14. El 2011 y los números primos.
  15. Listas infinitas.
  16. Ejercicios de exámenes del curso 2010-11.
  17. Exámenes:
    • Examen 1 (26 de Octubre de 2011).
    • Examen 2 (30 de Noviembre de 2011).
    • Examen 3 (25 de Enero de 2012).

I1M2011: Combinatoria en Haskell (2)

En segunda parte de la clase de hoy de Informática de 1º del Grado en Matemáticas se han explicado las soluciones de los ejercicios 7 a 12 de la 17ª relación.

El objetivo de esta relación es estudiar la generación y el número de las principales operaciones de la combinatoria. En concreto, se
estudia

  • Permutaciones.
  • Combinaciones sin repetición..
  • Combinaciones con repetición
  • Variaciones sin repetición.
  • Variaciones con repetición.

Además, se estudia dos temas relacionados:

  • Reconocimiento y generación de subconjuntos y
  • El triángulo de Pascal

Los 12 primeros ejercicios, y sus soluciones, se muestran a continuación.
Read More “I1M2011: Combinatoria en Haskell (2)”

I1M2011: Definición de tipos de datos recursivos en Haskell

En la primera parte de la clase de hoy de Informática de 1º del Grado en Matemáticas se ha estudiado la definición de tipos de datos recursivos y de funciones sobre dichos tipos. Concretamente, se han estudiado las listas y los árboles.

Se ha insistido en la metodología de definición de funciones recursivas sobre tipos de datos escribiendo una ecuación por cada uno de los constructores del tipo de dato.

Las transparencias usadas en la clase son las páginas 17-21 del tema 9:
Read More “I1M2011: Definición de tipos de datos recursivos en Haskell”

LMF2012: Panorama de la lógica. La lógica proposicional como sistema de representación del conocimiento

La clase de hoy del curso Lógica matemática y fundamentos ha tenido tres partes.

En la primera parte se ha presentado un panorama de la lógica en la que se ha visto sus objetivos (representar el conocimiento y automatizar el razonamiento), distintas lógicas (proposicional, primer orden, orden superior y modales) y aplicaciones de la lógica en computación.

En la segunda parte se ha presentado la lógica proposicional como sistema de representación del conocimiento. También se ha presentado el sistema APLI2 que sirve de tutor para el aprendizaje de la representación lógica del conocimiento.

En la tercera parte se ha iniciado el estudio de la sintaxis de la lógica proposicional mostrando cómo se definen las fórmulas por recursión, cómo se definen funciones sobre las fórmulas mediante recursión y cómo se demuestran propiedades de las fórmulas mediante inducción.

Las tareas pendientes son:

  • registrarse en APLI2 y
  • resolver ejercicios de formalización proposicional con APLI2

Las transparencias de esta clase son las páginas 1-10 del tema 1
Read More “LMF2012: Panorama de la lógica. La lógica proposicional como sistema de representación del conocimiento”