Programmation IV
Summer Semester 2003
School of Computer and Communication Sciences
Programming Methods Laboratory (LAMP)
 
 
Home
Staff
Research
Publications
Events
Teaching
  Prog IV
    Survol
    Horaires
    Transparents
    Exercices
    Livres
    Contacts
Jobs
   
 
  
     

Nouveautés

20/06/03
17/06/03
13/06/03
12/06/03

Examen

Les résultats de l'examen final sont disponibles. Les personnes désirant consulter leur copie peuvent passer au bureau INR 318.

L'énoncé de l'examen final est disponible aux formats .ps, .ps.gz et .pdf. Le corrigé est également disponible, lui aussi aux formats .ps, .ps.gz et .pdf.

Une séance de réponse aux questions pour l'examen aura lieu le lundi 16 juin 2003 de 11h00 à 12h00 (13h au besoin) dans la salle INR 219.

L'examen final aura lieu le mardi 17 juin de 10h15 à 12h00, dans les salles CO2 (noms de famille de Achache à Hauer inclus) et CO3 (noms de famille de He à Zbinden inclus). Pour cet examen, vous avez droit à tout votre matériel de cours.

Les résultats de l'examen de test sont disponibles. Les personnes désirant consulter leur copie peuvent passer au bureau INR 318.

Survol

Le cours porte sur les paradigmes de programmation avancés, en couvrant notamment :
  • la Programmation Fonctionnelle
  • la Programmation Logique
Pour la programmation fonctionnelle on utilisera le langage Scala.

Horaires

Cours: mardi 10:15-12:00, salle CO2
Exercices: mardi 14:15-16:00, salle CM3 / INF3

Transparents

Cours 1 (11 mars).
Introduction, programmation impérative : transformeurs de prédicats, programmation fonctionnelle : Scala, environnement et évaluation d'une fonction, appel par valeur, appel par nom, fonctions imbriquées, portée lexicale.
Cours 2 (18 mars).
Programmation fonctionnelle : modèle d'évaluation, récursion terminale, définition de valeurs, fonctions d'ordre supérieur, fonctions anonymes, currification, types fonctionnels.
Cours 3 (25 mars).
Abstraction des données : objets, méthodes, auto-référence, classes et substitutions, opérateurs, classes abstraites, extension d'une classe, liaison dynamique, classes standards.
Cours 4 (1er avril).
Filtrage de motifs: décomposition OO contre décomposition fonctionnelle, classes "cas". Listes : constructeurs, opérations primitives, polymorphisme, concaténation. Exceptions. La classe List. Tri de listes, schémas récurrents avec les listes, motifs de calcul avec fonctions d'ordre supérieur.
Cours 5 (8 avril).
Fonctions d'ordre supérieur sur les listes, preuves de programmes fonctionnels, induction structurelle.
La définition des listes en Scala se trouve dans les fichiers List.scala et Predef.scala.
Cours 6 (15 avril).
La notation For : syntaxe, utilisation, traduction, généralisation. Expressions de création d'objet.
Cours 7 (29 avril).
Fonctions et objets. Application du filtrage de motif à la différentiation symbolique. Deux formes de décomposition.
Cours 8 (6 mai).
Effets de bord, application à la simulation d'évènements discrets.
Cours 9 (13 mai).
Programmation par contraintes.
Cours 10 (20 mai).
Flots et itérateurs.
Cours 11 (27 mai).
Lisp : présentation du langage, conception d'un interpréteur en Scala.
Cours 12 (3 juin).
Un interpréteur Lisp en Scala.
Cours 13 (10 juin).
Programmation logique (1): Prolog, présentation et implémentation (unification).
Cours 14 (17 juin).
Programmation logique (2): Implantation de la recherche par retour arrière, traitement de la négation, non correction et incomplétude.

Exercices

Voici une page expliquant comment utiliser le langage Scala à l'école ou chez vous et aussi un tutoriel pour le langage Scala mis à jour en même temps que le cours (donc inutile de l'imprimer totalement à chaque fois).

Livres recommandés

  • Structure and Interpretation of Computer Programs. Harold Abelson and Gerald J. Sussman. 2nd edition. MIT Press 1996. Consultable également en ligne.
  • Approche Fonctionnelle de la Programmation. Guy Cousineau et Michel Mauny. Ediscience International. 1998.
  • Introduction to Functional Programming using Haskell. Richard Bird. Prentice Hall 1998.
  • Foundations of Logic Programming. J.W. Lloyd. Springer Verlag. 1984.
  • Effective Java. Joshua Bloch. Addison Wesley, 2001.

Forum de discussion

Le cours a maintenant son forum de discussion : epfl.ic.cours.programmationIV.

N'hésitez pas à y exprimer vos interrogations, vos problèmes D'autres étudiants pourront peut-être vous aider et les assistants s'engagent à traiter régulièrement les nouveaux messages. C'est aussi par ce biais que nous vous communiquerons des annonces générales concernant le cours.

Le plus simple pour accéder aux news est de le faire : Enfin, si vous avez des questions générales concernant l'utilisation des forums de discussion à l'EPFL vous trouverez tout sur le site : Usenet News

Contacts

Professeur Assistants Assistants étudiants
     
   [an error occurred while processing this directive]  
Last modified: Monday, 13-Nov-2006 13:03:06 CET