Functional programming UZ 2022

Welcome to Advanced programming techniques: the functional paradigm!

The course will take place in 2022.

News

  • 22 February 2022

    Course proposal approved by the University of Zaragoza.

Description

Functional programming is the main alternative to the standard model of imperative programming. It is based on an equivalent but very different model of computability, based around values and functions that operate on those values. Its proximity to this familiar mathematical model results in programs that are especially simple to understand and analyze, where the presence of programming errors is much less likely. Even more, it is possible to completely rule out certain classes of bugs automatically or with relative ease. These qualities, together with the growing influence of the functional programming paradigm in the evolution of mainstream general-purpose imperative languages, make functional programming into one of the most useful tools for anyone interested in the development of quality software, and the shortest path to fully correct and efficient programs. This course introduces these important concepts through OCaml, one of the leading modern functional programming languages, through applied sessions that combine the exploration of principles and their practice, together with the development environments and software ecosystems grown around the language.

Registration

Available soon.

Syllabus

The course will cover these topics and follow this preliminary schedule, with the possibility small adjustments to accommodate and emphasize topics of special interest to participants. All sessions combine theory and exercises.

The last day is devoted entirely to conversations and discussion with prominent members of the OCaml community and will be open to the general public. A detailed schedule will be available soon.

4 July 2022

  • Introduction. The OCaml programming environment

  • Types and functions

  • Fundamental data structures

  • Imperative and multi-paradigm programming

5 July 2022

  • Advanced data structures

  • Higher-order programming

  • Modular programming

  • Systems programming

6 July 2022

  • Case studies

  • Testing and software quality

  • Software ecosystem

  • Secure and defensive programming

7 July 2022

  • Theoretical foundations

  • Foreign function interface

  • Programming projects

  • Lab

8 July 2022

  • Development team and industry event

Grading

All students who attend the sessions will receive a certificate of participation.

Students taking the class for credit will need to propose and carry out a small programming project in consultation with the organizers.

More details will be available soon.

Materials

Available soon.

Times and dates

Available soon.

Online spaces

Available soon.

Organizers

Roberto Blanco is a postdoctoral researcher at the Max Planck Institute for Security and Privacy (MPI-SP), previously at the Inria research center in Paris—home of the Cambium research team, where development of the OCaml programming language originates. He holds degrees in computer engineering from the University of Zaragoza and a doctorate in computer science from Université Paris-Saclay, prepared at École polytechnique. His research interest revolve around the development of formal methods and their application to the verification and security of computer systems, with a focus on secure compilation.

Ricardo J. Rodríguez is an associate professor at the School of Engineering and Architecture of the University of Zaragoza. He holds degrees and a doctorate in computer engineering from the University of Zaragoza. His research is focused on the analysis of systems properties such as performance, security and dependability.

Sponsors

The course is generously sponsored by the OCaml Software Foundation.