Curso de Verano 2022: Programación Funcional

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 5 al 9 de septiembre de 2022 en el Laboratorio de Aragón [Gobierno] Abierto, situado en la Plaza del Pilar nº3, edificio C, planta calle (50003 Zaragoza).

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

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

Noticias

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. El coste de inscripción es de 150€ (tarifa reducida) o 190€ (tarifa general). Puedes consultar los “Patrocinadores y ayudas” de este curso para conocer más sobre posibles descuentos en la matrícula.

Programa

El curso cubrirá los temas siguientes:

El horario del curso se divide en tres franjas para cada día: - 09:00 a 11:00 - 11:30 a 13:30 - 15:00 a 17:00

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

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 a través de una plataforma para la comunicación por vídeoconferencia. Más información sobre este asunto 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 titular de universidad 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 survivability, análisis de programas y forense digital.

Patrocinadores y ayudas

El curso está patrocinado por la OCaml Software Foundation. En concreto, se subvencionarán hasta 90 euros de matrícula por estudiante.