Informática (2015-16)
Este curso aborda la programación funcional con Haskell y el cálculo simbólico con Maxima, estructurándose en cuatro partes. La primera parte introduce los fundamentos de Haskell, desde conceptos básicos como tipos, clases y funciones recursivas hasta temas avanzados como evaluación perezosa y analizadores funcionales. La segunda parte se centra en algorítmica, cubriendo estructuras de datos como pilas, colas, grafos y técnicas de diseño de algoritmos. La tercera parte explora temas complementarios, incluyendo gráficos con Gloss, fractales, animaciones y análisis de complejidad. Finalmente, en la cuarta parte se presenta Maxima, tratando desde operaciones básicas hasta programación, matrices y visualización de datos.
Esta asignatura constituye una materia troncal del primer curso del Grado en Matemáticas de la Universidad de Sevilla.
Temas
- 1ª parte: Programación funcional
- Tema 1: Introducción a la programación funcional.
- Tema 2: Introducción a la programación con Haskell.
- Tema 3: Tipos y clases.
- Tema 4: Definición de funciones.
- Tema 5: Definiciones de listas por comprensión.
- Tema 6: Funciones recursivas.
- Tema 7: Funciones de orden superior.
- Tema 8: Razonamiento sobre programas.
- Tema 9: Declaraciones de tipos y clases.
- Tema 10: Evaluación perezosa.
- Tema 11: Aplicaciones de la programación funcional.
- Tema 12: Analizadores funcionales.
- Tema 13: Programas interactivos.
- 2ª parte: Algorítmica
- Tema 14: El TAD de las pilas.
- Tema 15: El TAD de las colas.
- Tema 16: El TAD de las colas de prioridad.
- Tema 17: El TAD de los conjuntos.
- Tema 18: El TAD de las tablas.
- Tema 19: El TAD de las árboles binarios de búsqueda.
- Tema 20: El TAD de los montículos.
- Tema 21: El TAD de los polinomios.
- Tema 22: Algoritmos sobre grafos.
- Tema 23: Técnicas de diseño descendente de algoritmos.
- Tema 24: Técnicas de diseño ascendente de algoritmos.
- 3ª parte: Complementarios
- 4ª parte: Cálculo simbólico con Maxima
- Tema CS1: Introducción a Maxima con wxMaxima y ejercicios.
- Tema CS2: Funciones de una variable y ejercicios.
- Tema CS3: Aritmética y ejercicios.
- Tema CS4: Sucesiones y recursión y ejercicios.
- Tema CS5: Programación y ejercicios.
- Tema CS6: Matrices en Maxima y ejercicios.
- Tema CS7: Gráficos y animaciones.
Libros con temas, ejercicios y exámenes
- En Temas de "Programación funcional" (2015-16) se encuentran las transparencias de la introducción a la programación funcional en forma de libro.
- En Ejercicios de "Informática de 1º de Matemáticas" (2015–16) se encuentran todas las relaciones de ejercicios con sus soluciones.
- En Exámenes de "Programación funcional con Haskell" (2015–16) se encuentran todos los exámenes con sus soluciones.
- En Introducción al cálculo simbólico con Maxima se encuentran una introducción al cálculo simbólico mediante ejercicios con sus soluciones.
Códigos
- En Códigos de los Temas de "Programación funcional" se encuentra los códigos de los temas del curso.
- En Resumen de los tipos abstractos de datos se encuentra las especificaciones de los TAD estudiados desde el tema 14 al 21.
- Manual de funciones de los tipos abstractos de datos con ejemplos.
- En Manual navegable de TAD se encuentran las especificaciones de los tipos abstractos de datos (estudiados desde el tema 14 al 21) con enlaces a sus definiciones
Manuales de referencia de Haskell
- Resumen de funciones de Haskell.
- Manual de funciones básicas de Haskell con ejemplos.
- Manual de la librería de números primos Data.Numbers.Primes.
- Manual de la librería de vectores Data.Vector.
- Manual de la librería de matrices Data.Matrix.
- Manual de la librería de conjuntos Data.Set.
- Manual de la librería de diccionarios Data.Map.
Referencias
Programación funcional con Haskell
Libros programación funcional con Haskell
- R. Bird. Introduction to functional programming using Haskell. (Prentice-Hall, 1998).
- H.C. Cunningham. Notes on functional programming with Haskell.
- Hal Daume III et al. Yet another Haskell tutorial.
- A.J.T. Davie. An introduction to functional programming systems using Haskell. (Cambridge University Press, 1992).
- K. Doets y J. van Eijck. The Haskell road to logic, maths and programming.
- J. Fokker. Programación funcional.
- J. Gallardo, P. Gutiérrez y B. Ruiz. Una introducción agradable a Haskell versión 98 (es una traducción de P. Hudak, J. Peterson y J. Fasel A Gentle Introduction to Haskell, Version 98).
- G. Hutton. Programming in Haskell. (Cambridge University Press, 2007).
- M. Lipovača. Learn you a Haskell for great good!
- B. O'Sullivan, J. Goerzen y D. Stewart. Real world Haskell. (O'Reilly Media, Inc., 2008).
- The Haskell wikibook.
Manuales de referencia de Haskell
- J. Bailey. Haskell cheat sheet.
- Haskell. Reference card.
- B. Pope y A. van IJzendoorn. A tour of the Haskell prelude.
- A. van IJzendoorn. Tour of the Haskell syntax.
- M. Nic. Haskell reference.
- Prelude.
- Haskell Hierarchical Libraries.
Buscador de funciones de Haskell
Ejercicios de Haskell
Cursos sobre programación funcional con Haskell
- J.A. Alonso. Programación declarativa (2008-09).
- J.E. Gallardo. Programación declarativa - Haskell.
- G. Hutton. Functional programming.
- P. Wadler. Informatics 1 – Functional programming.
Cálculo simbólico
- J.A. Alonso. Resumen de funciones de Maxima.
- J. Arántegui. Introducción a Maxima.
- R. Rodríguez. Maxima con wxMaxima: software libre en el aula de matemáticas.
- M. Rodríguez. Primeros pasos en Maxima.
Sistemas
En esta sección se encuentran enlaces a los sistemas utilizados en la asignatura "Informática" y a los procedimientos de instalación.
Instalación de los sistemas en Windows
Los ficheros para instalar los sistemas en Windows son los siguientes
Instalación de los sistemas en Ubuntu
Se pueden instalar los sistemas en Ubuntu con el gestor de paquetes Synaptic, buscando los paquetes ghc6, emacs23, haskell-mode, quickcheck2, maxima y wxmaxima.
Además, copiar en el directorio del usuario el fichero de configuración de emacs.
Instalación de los sistemas en Mac
Los pasos de la instalación en Mac son los siguientes:
- Instalar MacPorts usando su guía de instalación.
- Instalar aquamacs desde aquí.
- Configurar aquamacs: En la pestaña Options seleccionar Option, Command, Meta keys y después Meta & Spanish .
- Instalar la plataforma Haskell desde aquí.
Sitios de los sistemas
Los sitios oficiales de los sistemas son los siguientes