Université Lille1

Vous êtes ici : FIL > Portail > Licence Info > L3S6 Info > ELFE

ELFE

Responsables

Volume horaire

Cette unité se déroule au S6 de la licence LST A - mention Informatique. Il s'agit d'une UE obligatoire de cette mention. L'enseignement est organisé sous la forme d'une séance de cours de 1h30 par semaine, d'un TD de 1h30 par semaine et d'une séance de TP de 2h par semaine.

Crédits

5 ECTS

dernière modification : 12/03/2012 à 16:57:30

Objectifs

L'objectif prinicipal de cette unité est la présentation d'autres paradigmes de programmation et de leurs fondements théoriques. A l'issue de cette UE l'étudiant aura un premier aperçu des paradigmes logique, ou "comment utiliser la logique des prédicats pour faire du calcul", et fonctionnel, ou "comment utiliser le lambda-calcul pour faire du calcul".

Contenu

Programmation logique

Contenu

  • Logique du 1er ordre
  • Résolution
  • Le langage Prolog
    • clauses de Horn
    • unification
    • SLD résolution
    • négation par l'échec
    • les listes
    • opérateur de coupure

Bibliographie

Programmation fonctionnelle

Contenu

  • Fondements théoriques de la programmation fonctionnelle : éléments de lambda-calcul
  • Typage simple, inférence de types, types polymorphes
  • Programmer avec des fonctions
  • Ordre supérieur et fonctionnelles
  • Le langage OCaml (son aspect fonctionnel uniquement)

Bibliographie

  • Sur le lambda-calcul:
    An introduction to Lambda Calculus for Computer Scientists. Chris Hankin, King's College LONDON Publications.
  • Pour découvrir et approfondir la connaissance du langage OCaml:
    Développement d'applications avec Objective Caml, Chailloux, Manoury et Pagano, O'Reilly.
  • Pour situer la programmation fonctionnelle par rapport à la programmation impérative et la programmation objet:
    Programmation fonctionnelle, generique et objet, Philippe Narbel, Vuibert.

dernière modification : 08/01/2012 à 20:40:16
Gpe Nature Horaire Salle Enseignant e-mail
Cours jeudi 8h30-10h Amphi Bacchus C. Lhoussaine / E. Wegrzynowski Cédric Lhoussaine
1 TD mardi 8h30-10h M5 A6 C. Kuttler Céline Kuttler
1 TP mardi 10h15-12h15 M5-A14 C. Kuttler Céline Kuttler
2 TD mardi 15h15-16h45 M5-A5 E. Wegrzynowski Eric Wegrzynowski
2 TP jeudi 10h15-12h15 M5-A16 E. Wegrzynowski Eric Wegrzynowski
3 TD mardi 8h30-10h M5 A9 A. Ndione Antoine Ndione
3 TP mardi 10h15-12h15 M5-A13 A. Ndione Antoine Ndione
4 TD mardi 15h15-17h15 M5 A9 C. Lhoussaine Cédric Lhoussaine
4 TP jeudi 10h15-12h15 M5-A11 C. Lhoussaine Cédric Lhoussaine

dernière modification : 08/01/2012 à 21:23:05
Séance Cours TD TP Remarque
1 1 du 02/01 au 07/01 Introduction
  • Rappels de logique popositionnelle et de logique des prédicats.
  • Premiers pas en Prolog
  • support
  • exemple de mise sous FNC.
Feuille 1 congé le lundi 2 janvier
2 2 du 09/01 au 14/01 Unification Feuille 2
3 3 du 16/01 au 21/01 Résolution Feuille 3 Résolution - récursivité Une solution possible pour les entiers de Peano
4 4 du 23/01 au 28/01 Suite résolution et operateur de coupure. Feuille 4 Les listes
5 5 du 30/01 au 04/02 TP de mise à niveau en OCAML à 8h pour étudiants listés ici Feuille 5 Récursivité terminale Pas de cours cette semaine! Séance de TP sur le créneau de cours à 8h
6 6 du 06/02 au 11/02 Cours reporté. Pas de TD cette semaine Pas de TP cette semaine DS1 sur la programmation logique mercredi 8/02 de 8h30 à 10h bât M1 amphi Cauchy
7 7 du 13/02 au 18/02

Programmation fonctionnelle

TD reporté. TP reporté.
8 8 du 20/02 au 25/02

Programmation fonctionnelle

  • Fonctions en paramètres
  • Impératif vs fonctionnel
    • Instruction <-> Application
    • Séquence <-> Composition
    • Instruction conditionnelle <-> Expression conditionnelle
    • Boucles <-> Itération d'une fonction
Fichiers illustrant le cours
TD PF1

TP PF1

9 du 27/02 au 03/03 interruption pédagogique hiver
9 10 du 05/03 au 10/03

Sémantique des langages fonctionnels

  • Stratégies d'évaluation
Notes de cours
TD PF2

TP PF2

Le sujet.
Deux séances de cours cette semaine :
  • Mercredi 8h30-10h M5 amphi Bacchus.
  • Jeudi 8h30-10h M5 amphi Bacchus.
10 11 du 12/03 au 17/03

Lambda-calcul

Notes de cours sur le lambda calcul

Tout programmer uniquement avec des fonctions en \caml

TP PF4

Le sujet.
Rattrapage TD/TP :
  • Gpe 1 : jeudi 15 mars TD 13h30-15h M5 A1, TP 15h15-17h15 M5 A13.
  • Gpe 2 : lundi 12 mars TD 13h30-15h M1 Borel, TP 15h15-17h15 SUP 117.
  • Gpe 3 : lundi 12 mars TD 13h30-15h M5 A1, TP 15h15-17h15 M5 A14.
  • Gpe 4 : lundi 12 mars TD 15h15-16h45 M5 A1, jeudi 15 mars TP 13h30-15h30 A11.
11 12 du 19/03 au 24/03

dernière modification : 13/03/2012 à 14:10:37

L'évaluation s'effectue suivant une procédure de contrôle continu.

Trois notes seront attribuées à chaque étudiant durant le semestre :

  • DS1: une note sur 20 de devoir surveillé sur la partie Programmation Logique
  • DS2 : une note sur 20 de devoir surveillé sur la partie Programmation Fonctionnelle.
  • TP : une note sur 20 pour les TP rendus.

La note finale sur 20 (N) est calculée comme une moyenne de ces trois notes :

N= (DS1+DS2+TP)/3

Pour la seconde session d'examen, les notes DS1 et DS2 sont remplacées par la note obtenue lors de la seconde session.

L'unité acquise apporte 5 ECTS.


dernière modification : 08/01/2012 à 20:40:04

Annales

  • Examens 2010-2011
  • sujet et correction de l'interro de PL du 3 novembre 2005.
  • devoir de PF, novembre 2005 sujet et correction
  • devoir de PL, décembre 2005 sujet et correction
  • janvier 2006 - première session
  • Examens 2006-2007
  • Examens 2007-2008

    Programmation logique

    Documents de cours

    • l'algorithme de résolution avec un exemple d'illustration (étudier l'arbre de résolution fourni et le déroulement pas à pas de l'algorithme en parallèle)

    Configuration de SWI-PROLOG

    Fichier de configuration à ajouter dans son répertoire personnel : .plrc, dont le contenu est
    :-  set_prolog_flag(prompt_alternatives_on, groundness).
    

    Mode Prolog pour Emacs

    • récupérez le fichier prolog.el ici
    • ajoutez les lignes suivantes dans le fichier .emacs situé à la racine de votre répertoire personnel (ou créez le si il n'existe pas).
      (setq load-path (cons "LE REPERTOIRE QUI CONTIENT prolog.el" load-path))
      (autoload 'prolog-mode "prolog" "Major mode for editing Prolog programs." t)
      (setq auto-mode-alist (cons '("\\.pl\$" . prolog-mode) auto-mode-alist))
      (setq prolog-system 'swi)

      Le mode sera activé automatiquement pour un fichier d'extension .pl (il peut éventuellement venir en conflit avec un mode pour le langage Perl).
    • Vous pouvez utiliser les menus proposés, notamment le menu Prolog (NB : dans un menu C-c signifie Ctrl-C et M-x signifie Esc x).

    Autres ressources

    Programmation fonctionnelle

    Mode Caml pour Emacs

    • récupérez le fichier tuareg-mode-1.45.5 ;
    • décompressez-le dans un dossier de votre dossier personnel ;
    • ajoutez les lignes suivantes dans le fichier .emacs situé à la racine de votre répertoire personnel (ou créez le si il n'existe pas).
      (setq load-path (cons "LE REPERTOIRE QUI CONTIENT tuareg.el" load-path))
      (setq auto-mode-alist (cons '("\\.ml\\w?" . tuareg-mode) auto-mode-alist))
      (autoload 'tuareg-mode "tuareg" "Mode majeur pour �diter du code Caml" t)
      (autoload 'camldebug "camldebug" "Ex�cuter le d�bogueur Caml" t)

      Le mode sera activé automatiquement pour un fichier d'extension .ml.
    • Vous pouvez utiliser les menus proposés, notamment le menu Tuareg (NB : dans un menu C-c signifie Ctrl-C et M-x signifie Esc x).

    Autres ressources


    dernière modification : 02/02/2012 à 18:19:50