LAMP: Programmation IV

Logo EPFL Ecole Polytechnique F馘駻ale de Lausanne
Programmation IV
French only
?LAMP
Page d'accueil
Collaborateurs
Recherche
Publications
Ev駭ements
Enseignement
Emplois
?MENU
Page d'accueil
Pr駸entation
Transparents
Exercices
Outils Scala










Cours: mercredi 13:15-15:00, salle C01
(mercredi 15:15-17:00, salle INM202)
Exercices: mercredi 15:15-17:00, salle INF2
? Nouveaut駸

11 ao?t 2006
  • La correction de l'examen final ? 騁? mise en ligne environ l?.

? Survol

Le cours porte sur les paradigmes de programmation avanc駸, en couvrant notamment:

  • la Programmation Fonctionnelle
  • la Programmation Logique

Pour la programmation fonctionnelle on utilisera le langage Scala.

? Transparents

Semaine 1 (15 mars):
  • Introduction. Programmation imp駻ative : transformeurs de pr馘icats. Programmation fonctionnelle : Scala, environnement et 騅aluation d'une fonction, appel par valeur, appel par nom, fonctions imbriqu馥s, port馥 lexicale. Requ黎es XML. (pdf, ps, 2on1.ps, 4on1.ps).
Semaine 2 (22 mars):
  • Programmation fonctionnelle?: mod鑞e d'騅aluation, r馗ursion terminale, d馭inition de valeurs, fonctions d'ordre sup駻ieur, fonctions anonymes, currification, types fonctionnels. (pdf, ps, 2on1.ps, 4on1.ps).
Semaine 3 (29 mars):
  • Abstractions de donn馥s?: objets, m騁hodes, auto-r馭駻ence, classes et substitutions, op駻ateurs, classes abstraites, extension d'une classe, liaison dynamique, classes standards. (pdf, ps, 2on1.ps, 4on1.ps).
Semaine 4 (5 avril):
  • Filtrage de motifs?: d馗omposition OO contre d馗omposition fonctionnelle, classes "cas". Listes?: constructeurs, op駻ations primitives, polymorphisme, concat駭ation. Exceptions. La classe List. Tri de listes, sch駑as r馗urrents avec les listes, motifs de calcul avec fonctions d'ordre sup駻ieur. (pdf, ps, 2on1.ps, 4on1.ps).
Semaine 5 (12 avril):
Semaine 6 (26 avril):
  • Preuve de programmes fonctionnels: induction structurelle. La notation For?: syntaxe, exemples, traduction. (pdf, ps, 2on1.ps, 4on1.ps).
Semaine 7 (3 mai):
  • Fonctions et objets. Application du filtrage de motif ? la diff駻entiation symbolique. D駮mposition orient?-objet et d駮mposition utilisant le filtrage de motif. (pdf, ps, 2on1.ps, 4on1.ps).
Semaine 8 (10 mai):
  • Effets de bord: application ? la simulation d'駘駑ents discrets. (pdf, ps, 2on1.ps, 4on1.ps).
Semaine 9 (17 mai):
Semaine 10 (24 mai):
Semaine 11 (31 mai):
Semaine 12 (7 juin):
Semaine 13 (14 juin):
  • Programmation logique (1/2): Prolog, pr駸entation et impl駑entation (unification). (pdf, ps, 2on1.ps, 4on1.ps).

? Exercices

Semaine 1 (15 mars): Racine carr馥, racine cubique, triangle de Pascal.
Enonc? en (pdf) ou (ps).
Solution en (pdf) ou (ps).
Semaine 2 (22 mars): Factorielle, Fibonacci, 駘騅ation ? la puissance, polyn?me de Lagrange.
Enonc? en (pdf) ou (ps).
Solution en (pdf) ou (ps).
Semaine 3 (29 mars): Ensembles d'entiers.
Enonc? en (pdf) ou (ps). Source des classes IntSet.
Solution en (pdf) ou (ps).
Semaine 4 (5 avril): Listes associatives.
Enonc? en (pdf) ou (ps).
Solution en (pdf) ou (ps).
Semaine 5 (12 avril): Ensemble des parties, combinaisons de pi鐵es, addition de grands entiers, preuve par induction structurelle.
Enonc? en (pdf) ou (ps).
Solution en (pdf) ou (ps).
Semaine 6 (26 avril): Induction structurelle, preuve de l'inversion de listes, probl鑪e des n-reines.
Enonc? en (pdf) ou (ps).
Squelette: queens-partial.scala.
Solution en (pdf) ou (ps).
Semaine 7 (3 mai): Langage d'images pour les fractales.
Enonc? en (pdf) ou (ps).
Biblioth鑷ue : Painter-partial.scala.
Solution en (pdf) ou (ps).
Semaine 8 (10 mai): Simulateur de circuit logique.
Enonc? en (pdf) ou (ps).
Squelette: Simulator-partial.scala.
Solution en (pdf) ou (ps).
Semaine 9 (17 mai):
Examen interm馘iaire. (pdf) ou (ps).
Solution en (pdf) ou (ps).
Semaine 10 (24 mai): Fibonacci, ln(2), nombres premiers.
Enonc? en (pdf) ou (ps).
Squelette: week10-partial.scala.
Solution en (pdf) ou (ps).
Semaine 11 (25 mai): R駸eaux de contraintes.
Enonc? en (pdf) ou (ps).
Squelette: solver-partial.scala.
Solution en (pdf) ou (ps).
Pour vous faciliter la pr駱aration de l'examen final, voici quelques examens des ann馥s pass馥s.
(2004 fin) (2005 fin) (2004 mid) (2005 mid)
Et voici les solutions.
(2004 fin) (2005 fin) (2004 mid) (2005 mid)
Semaine 12 (7er juin): Lisp.
Enonc? en (pdf) ou (ps).
Squelette: lisp-partial.scala.
Solution en (pdf) ou (ps). Code de la solution: lispNew.scala?powerset.lisp.
Semaine 13 (14 juin): Prolog, Lisp.
Enonc? en (pdf) ou (ps).
Interpr騁eur Prolog: prolog.scala.
Solution en (pdf) ou (ps).
Semaine 14 (21 juin): Examen final
Enonc? en (pdf) ou (ps).
Solution en (pdf) ou (ps).

? Scala

Utilisation en salle INF2 (Windows)

Nous avons pr駱ar? quelques instructions pour l'utilisation de Scala en salle INF2.

Comment 馗rire un programme en Scala

Pour compiler et ex馗uter un programme, suivez les instructions sur la page d'exemples de Scala.

Lien de r馭駻ence

Le site web de Scala contient toutes les informations utiles au programmeur Scala, en particulier la documentation du language et de la biblioth鑷ue standard.

Vous pouvez egalement profiter des EclipseTutorials.zip (format .doc, anglais) pour installation et execution des programmes en Eclipse.

? Forum de discussion

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

N'h駸itez pas ? y exprimer vos interrogations, vos probl鑪es. D'autres 騁udiants pourront peut-黎re vous aider et les assistants s'engagent ? traiter r馮uli鑽ement les nouveaux messages. C'est aussi par ce biais que nous vous communiquerons des annonces g駭駻ales concernant le cours.

Le plus simple pour acc馘er au forum est de le faire?:

Enfin, si vous avez des questions g駭駻ales concernant l'utilisation des forums de discussion ? l'EPFL vous trouverez tout sur le site?: Usenet News

? Note

L'int馮ration des notes de programmation III et IV est termin馥. Vous pouvez consulter votre r駸ultat final sur ce document.

? Examens

L'examen final a 騁? corrig?.

Les r駸ultats d騁aill駸 pour le cours sont disponible sur ce document.

Le calcul de votre note se fait sur la somme des points que vous avez obtenus sur les deux examens, d'apr鑚 une 馗helle lin饌ire (4 ? partir de 50% du nombre maximum de points possibles, 6 ? partir de 90%).

Toutefois, vu les r駸ultats alarmants du second exercice de l'examen final (sauce au curry), le nombre maximum de points possibles est d馭ini sans les 20 points de cet exercice qui devient effectivement un bonus.

Le cours est donc not? sur 150 points, d'apr鑚 le bar鑪e suivant.

Points Note
0 1.0
1-14 1.5
15-29 2.0
30-44 2.5
45-59 3.0
60-74 3.5
75-89 4.0
90-104 4.5
105-119 5.0
120-134 5.5
135-149 6.0
150-170 6.0 Avec nos f駘icitations les plus vives

Vous pouvez consulter votre copie dans le bureau INR 320. Pour 黎re s?rs de trouver quelqu'un, prenez rendez-vous par email.

? Contact

Professeur

Assistants Assistants-Etudiants
? Livres recommand駸
  • Structure and Interpretation of Computer Programs.
    Harold Abelson and Gerald J. Sussman. 2nd edition. MIT Press 1996.
    Consultable 馮alement 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.
?

AltStyle によって変換されたページ (->オリジナル) /