Programación funcional UZ 2022

Te damos la bienvenida a la página web del curso Técnicas avanzadas de programación: el paradigma funcional.

El curso se celebrará del 4 al 8 julio de 2022.

Puedes consultar la descripción del curso en la web de los cursos de verano.

Ante cualquier pregunta, no dudes en contactar con los directores del curso.

Noticias

  • 22 de febrero de 2022

    Confirmación de celebración del curso por la Universidad de Zaragoza.

Presentación

La programación funcional es la principal alternativa al modelo “estándar” de programación imperativa. Mientras que esta se basa en un modelo de cálculo en torno a la manipulación de datos almacenados en la memoria de un computador, la programación funcional se orquesta alrededor de valores puros y funciones que operan sobre los mismos.

Estos dos modelos de computabilidad son equiparables, pero dan como resultado estilos de programación muy distintos. La proximidad de la programación funcional al modelo matemático tradicional da como resultado programas particularmente fáciles de comprender y analizar, en los que la presencia de errores es mucho menos probable e incluso puede demostrarse la ausencia de ciertos tipos de fallos, bien de forma automática, bien con un esfuerzo muy reducido.

Estas características, junto con la influencia reciente del paradigma funcional en la evolución de la mayoría de lenguajes de programación imperativos generalistas, hacen de la programación funcional una de las herramientas más útiles para toda persona interesada en el desarrollo de software de calidad, así como el camino más corto para obtener programas correctos y eficientes.

El curso presenta estos útiles fundamentales por medio de OCaml, uno de los principales lenguajes de programación funcional moderna. Estudiaremos los principios de la programación funcional a través de sesiones eminentemente aplicadas que aúnan la explicación de los principios y su puesta en práctica y su puesta en práctica por medio de ejercicios y aplicaciones reales. Asimismo, utilizaremos los entornos de desarrollo y ecosistemas existentes alrededor del lenguaje.

Al finalizar el curso, los participantes serán capaces de resolver problemas y escribir programas reales en el estilo funcional y podrán aplicar lo aprendido a sus labores habitual de programación, independientemente del lenguaje utilizado.

El evento está organizado en estrecha colaboración con los responsables del desarrollo del lenguaje OCaml. En un evento dedicado, discutiremos estos temas con desarrolladores del lenguaje y usuarios industriales del mismo, que nos explicarán los beneficios prácticos de su uso y la variedad de aplicaciones en las que sus cualidades resultan indispensables.

Requisitos e inscripción

El curso es accesible a cualquier persona con conocimientos generales de programación, por ejemplo los adquiridos en primeros cursos de grados en ingeniería informática, matemáticas y disciplinas relacionadas, o cualquier experiencia ampliamente asimilable.

Puede ser especialmente interesante para ingenieros titulados, investigadores y profesionales de las tecnologías de la información, así como estudiantes de cursos avanzados de grado, máster y doctorado.

Las inscripciones se realizan a través de este formulario.

Programa

El curso cubrirá los temas siguientes:

4 de julio de 2022

  • Introducción. El entorno de programación de OCaml

  • Tipos y funciones

  • Estructuras de datos fundamentales

  • Programación imperativa y multiparadigma

5 de julio de 2022

  • Estructuras de datos avanzadas

  • Programación de orden superior

  • Programación modular

  • Programación de sistemas

6 de julio de 2022

  • Casos de estudio

  • Testing y calidad del software

  • Ecosistemas de software

  • Programación defensiva y segura

7 de julio de 2022

  • Fundamentos teóricos

  • Foreign Function Interface

  • Proyectos de programación

  • Laboratorio

8 de julio de 2022

  • Evento con el equipo de desarrollo

  • Evento con usuarios industriales

En función de las necesidades e de los participantes, podrán enfatizarse los temas que resulten de especial interés. Todas las sesiones combinan teoría y ejercicios.

El último día se dedicará a presentaciones y discusiones con miembros distinguidos de la comunidad de programación de OCaml. Este evento estará abierto al público además de a los participantes del curso. El horario definitivo estará disponible próximamente.

Idioma

Las clases del 4 al 7 de julio se impartirán en español.

El evento del 8 de julio se celebrará en inglés.

Evaluación

La organización de los cursos de verano expedirá un diploma de participación a todos aquellos que asistan al menos al 85% de las sesiones del curso, que totalizan 30 horas lectivas sumadas a 10 horas de trabajo personal en los ejercicios asignados.

La superación formal del curso conlleva la obtención de 1,5 créditos ECTS. Los participantes interesados en esta modalidad de evaluación deberán coordinar con los profesores la realización y exposición de un trabajo de profundización sobre alguna de las partes del curso de unas 10 horas adicionales.

Materiales

Disponibles próximamente.

Lugar de celebración

El curso se celebrará en un formato híbrido, presencialmente en Zaragoza y de manera remota en caso necesario.

Más información disponible próximamente.

Espacios participativos

Disponibles próximamente.

Equipo docente

Roberto Blanco es ingeniero en informática por la Universidad de Zaragoza y doctor en informática por la École polytechnique/Université Paris-Saclay, e investigador en el Max Planck Institute for Security and Privacy, y antes en la sede de París de Inria, centro de desarrollo del lenguage OCaml. Su trabajo gira en torno al desarrollo de métodos formales y su aplicación a la verificación de sistemas informáticos y de su seguridad, concentrado en la actualidad en la compilación segura.

Ricardo J. Rodríguez es ingeniero en informática por la Universidad de Zaragoza y doctor en informática por la misma universidad. Actualmente es profesor en la Escuela de Ingeniería y Arquitectura de la Universidad de Zaragoza, donde realiza tareas docentes y de investigación. Su trabajo de investigación gira en torno al análisis de propiedades de sistemas como rendimiento, seguridad y dependability.

Patrocinadores y ayudas

El curso está patrocinado por la OCaml Software Foundation.