Le but de ce cours est d'elargir et d'approfondir vos connaissances en programmation, en paradigmes, sémantique, abstraction et concurrence.  Nous allons voir un large éventail de concepts de programmation à la fois théorique et pratique, comme la programmation fonctionnelle et la sémantique formelle, et des paradigmes importants comme le dataflow déterministe et le dataflow multi-agent.

Ce cours est conçu comme une suite pour le cours LEPL1402.  Nous allons construire sur les bases créées dans LEPL1402 pour compléter vos connaissances dans un esprit d'ouverture et de rigueur.

Voici une liste partielle des concepts que nous allons aborder dans ce cours:

  • La programmation d'ordre supérieure ("higher order programming")
  • La sémantique opérationnelle des langages de programmation: "La sémantique est l'ultime langage de programmation"
  • Introduction au lambda calcul, qui est la base théorique de tous les langages de programmation
  • L'abstraction dans toutes ces facettes, abstraction de données et abstraction procédurale
  • La programmation concurrente y compris la programmation multi-agent
  • Introduction au langage industriel Erlang basé sur les multi-agents
  • Introduction à la programmation répartie basée sur Erlang et au principe "Laisser échouer" ("Let it fail")
  • Un large éventail de techniques de programmation pratiques