I1M2019: Ejercicios de definiciones por composición sobre números y listas (1)

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

En el comentario de algunos ejercicios se ha indicado:
+ la comprobación con QuickCheck de equivalencia de soluciones y
+ la comparación de eficiencia de soluciones, activando las estadísticas con :set +s

Los ejercicios y su solución se muestran a continuación
Read More “I1M2019: Ejercicios de definiciones por composición sobre números y listas (1)”

I1M2019: Introducción a la programación funcional con Haskell

En la primera parte de la clase del 27 de septiembre del curso de Informática (de 1º del Grado en Matemáticas) se han comentado algunas de las soluciones publicadas de programación de dibujos con CodeWorld; concretamente

En la segunda parte, se ha explicado cómo instalar los sistemas Haskell y Emacs.

En la tercera parte, se ha realizado una introducción a la programación con Haskell usando dos entorno de programación: Emacs e IHaskell]. 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 del resumen de funciones y ejemplos.

Finalmente, se ha mostrado el uso de Haskell y emacs (la sesión está grabada en este vídeo) y el proceso para la solución colaborativa de ejercicios (la sesión está grabada en este vídeo).

Se han propuesto como ejercicios los de la 1ª relación

El libro de IHaskell utilizado está aquí

Los apuntes utilizados son los del tema 2

I1M2019: Introducción a la programación funcional

En primera parte de la clase del 25 de septiembre del curso de Informática (de 1º de Grado en Matemáticas) se ha presentado la asignatura siguiendo el resumen del proyecto docente y los materiales en la página de la asignatura:

Se ha comentado el sistema de evaluación y se ha anunciado las fechas de los exámenes de todo el curso.

La segunda parte de la clase ha consistido en una introducción a la
programación funcional basada en el tema 0 en el que se usa CodeWorld/Haskell para mostrar cómo escribir las funciones de los programas para hacer dibujos. En concreto se han estudiado

  • cómo programar dibujos elementales
  • cómo programar dibujos compuestos
  • cómo transformar dibujos con traslaciones, rotaciones, escalamiento y
  • coloreado.
  • cómo programar animaciones

Los apuntes utilizados son los del tema 0

Como ejercicio se ha propuesto la publicación de programas de dibujo y animaciones en la wiki de la asignatura.

I1M2019: Comienzo del curso

El curso Informática (de 1º de Grado en Matemáticas)] comenzará el miércoles 25 de septiembre de 2019.

Las clases son los miércoles y viernes de 9:00 a 11:00 en el aula EC04.

La página con los materiales del curso se encuentra en https://www.cs.us.es/~jalonso/cursos/i1m-19. En dicha página hay enlaces a

I1M2018: Razonamiento sobre programas

En la clase de hoy de Informática de 1º del Grado en Matemáticas se ha estudiado cómo demostrar propiedades de programas Haskell.

Los tipos de razonamiento estudiado son

  • Razonamiento ecuacional sin variables.
  • Razonamiento ecuacional con variables.
  • Razonamiento ecuacional con análisis de casos
  • Razonamiento por inducción sobre los naturales
  • Razonamiento por inducción sobre listas.

En las demostraciones por inducción se ha destacado la elección de variables, las demostraciones anidadas y la generalización de propiedades para su prueba por inducción.

Los apuntes correspondientes a la clase son los del tema 8

Además, se ha mostrado cómo automatizar las demostraciones usando Isabelle/HOL.