I1M2015: Ejercicios de definiciones por composición sobre números, listas y booleanos

En la segunda parte e la clase de hoy del curso de Informática de 1º del Grado en Matemáticas hemos comentado las soluciones de los ejercicios de la 1ª relación sobre definiciones por composición de funciones sobre números, listas y booleanos.

Los ejercicios y su solución se muestran a continuación
Read More “I1M2015: Ejercicios de definiciones por composición sobre números, listas y booleanos”

I1M2015: Métodos elementales de definición de funciones en Haskell

En la primera parte de la clase de hoy del curso Informática (de 1º de Grado en Matemáticas) se ha explicado el tema 4 donde se estudia cómo definir funciones en Haskell usando los formas básicas: composición, condicionales, guardas y patrones.

Como tarea para la próxima clase se ha propuesto resolver de manera colaborativa los ejercicios de la 2ª relación.

Las transparencias usadas en la clase son las del tema 4

LI2015: Semántica de la lógica proposicional

El objetivo fundamental de primera parte de la clase de hoy del curso Lógica Informática ha consistido en responder estas dos preguntas:

  • ¿cómo se puede construir un programa para que dada una fórmula decida si es verdadera?
  • ¿cómo se puede construir un programa para que dada un conjunto de fórmulas S una fórmula F decida si es consecuencia de S?

Para responder a la primera pregunta, desarrollamos la semántica de la lógica proposicional. En primer lugar, el valor de verdad de una fórmula en una interpretación se define por recursión. A partir del valor de verdad podemos, dada una fórmula F, dividir las interpretaciones entre las que son modelo de F y las que no lo son. Además, las fórmulas pueden clasificarse en satisfacibles (las que tienen modelos) e insatisfacibles (en caso contrario). Las fórmulas satisfacibles se pueden clasificar en tautologías (para las que todas las interpretaciones son modelo) y contingentes (en caso contrario).

Hemos continuado planteando los problemas SAT y TAUT y presentando dos algoritmos para su solución: tablas de verdad y método de Quine.

Además, se han definidos los conceptos de equivalencia de fórmulas, modelos de conjuntos de fórmulas, conjuntos consistentes e inconsistentes y la relación de consecuencia lógica.

En la segunda parte de la clase se han comentado las soluciones de los ejercicios 22, 23, 24.1 y 25 del capítulo 1 del libro de ejercicios. Se propusieron para la próxima clase los ejercicios 26 a 31.

Las transparencias de esta clase son las páginas 14-34 del tema 1

I1M2015: Tipos y clases en Haskell

En la segunda parte de la clase de hoy de Informática de 1º del Grado en Matemáticas se ha explicado el tema 3 en el que se introducen los tipos y las clases en Haskell. Los objetivos de tema son aprender

  • qué es un tipo,
  • cómo expresar que una expresión tiene un tipo determinado,
  • cómo preguntar a Haskell por el tipo de una expresión,
  • cómo determinar el tipo de una expresión,
  • cuáles son los tipos básicos (Bool, Char, String, Int, Integer, Float y ,
  • cuáles son los tipos compuestos (listas, tuplas y funciones),
  • qué es el polimorfismo y la sobrecarga de funciones y
  • cuáles son las clases básicas (Eq, Ord, Show, Read, Num, Integral y Fractional), sus métodos e instancias.

Finalmente, se comentó el programa de la noria.

Las transparencias usadas en la clase son las del tema 3:

I1M2015: Introducción a la programación con Haskell

En la primera parte de la clase de hoy del curso Informática (de 1º de Grado en Matemáticas se ha explicado el tema 2 en el que se hace una introducción a la programación con Haskell usando emacs como entorno de programación. Concretamente, se ha explicado cómo

  • usar Haskell como calculadora aritmética (con las funciones +, -, *, /, div y ^).
  • escribir guiones de Haskell en emacs.
  • cargar los guiones y evaluar expresiones con las funciones definidas.

También se han comentado las funciones sobre números, listas y booleanos en el resumen de funciones.

Las transparencias usadas son las del tema 3