|
|
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
|
|