MÉTHODES ET OUTILS DE L’INFORMATIQUE :
APPROCHE FONCTIONNELLE
VERSION 2.3
JUIN 2003
A. FORET, D. HERMAN
89
MÉTHODES ET OUTILS DE L’INFORMATIQUE: APPROCHE FONCTIONNELLE 1
Méthodes et outils de
l’informatique: approche
fonctionnelle
Cours conçu par
Annie FORET et Daniel HERMAN
Université de Rennes 1 - Ifsic
Avant-propos
CecoursaétédispensédanslecadredesDeugscientifiquesdelUniversité
deRennes1de1990à1998.Laversion2,destinéeauxétudiantsdupremier
niveauduDeugSciences,mentionsMassetMias,estunerefonteassezpro-
fonde d’un cours (version 1.0 en 1991) créé dans le cadre du Deug SSM,sec-
tion MPI et du Deug Mass. Depuis la création du Deug Sciences et
Technologies (1999) cet enseignement n’est plus dispensé en tant que mo-
dule homogène d’initiation à l’algorithmique, même si la matière qui le
composeestreprisedansdiversesU
E.
Sous sa forme initiale, cet enseignement est conçu pour un volume hebdo-
madairede2hdecours,2hdeTDet2hdeTPsurunsemestredelapre-
mière année.
Il s’agit du premier cours d’informatique d’un cursus universitaire et, pour
la plupart des étudiants, de leur premier contact avec la discipline. L’idée
que nous avons retenue est de limiter le champ de l’étude à des notions
d’algorithmique et de programmation en faisant l’impasse sur les notions
de variable, de fichier et de système. En revanche, nous avons voulu faire
porter l’effort de réflexion sur les méthodes de raisonnement (couches
d’abstractions, récurrence et structures de données récursives). Compte
tenu de ce cahier des charges, le langage Lisp, par le biais d’un de ses dia-
lectes (Scheme), a été retenu comme support d’expérimentation.
Au cours de la seconde année du Deug, les étudiants concernés doivent sui-
vre, en tronc commun, un cours de programmation impérative. À Rennes 1
ils avaient la possibilité de s’inscrire à un cours consacré à la fois à la réalisa-
tion d’un projet (génie logiciel) et à des bases plus théoriques d’informati-
que (logique et théorie des langages).
2A. FORET, D. HERMAN, UNIVERSITÉ DE RENNES 1 - IFSIC
L’idée d’utiliser une approche fonctionnelle pour l’initiation à l’informati-
que n’est pas propre à Rennes et de nombreuses expériences similaires ont
été développées, tant en France qu’à l’étranger. Au plan hexagonal, on peut,
entre autres, consulter:
Les langages applicatifs dans l’enseignement de l’informatique. Actes de
la journée MRT,Paris,20mars1991.Bigrd.
Les langages applicatifs dans l’enseignement de l’informatique. Actes des
2es journées, Rennes, 25 et 26 mars 1993. Spécif, bulletin spécial hors série
(novembre 1993).
Avertissements
Il y a toujours une différence entre le contenu d’un polycopié et l’enseigne-
ment réellement dispensé. Nous avons souhaité que l’étudiant curieux
puisse trouver dans un support écrit des compléments ou des approfondis-
sements des sujets effectivement traités. Il y a donc plus d’informations
dans cet ouvrage que ce qui est nécessaire pour l’examen. En revanche, tout
le travail expérimental (TPet libre service), composante indispensable de
tout enseignement d’informatique, n’y est pas abordé. L’étudiant doit donc
être conscient de la nécessité d’un minimum de pratique sur machine.
Ce document comporte encore de nombreuses erreurs ou imperfections. Le
lecteur est donc prié d’être indulgent et de communiquer ses réactions et
commentaires (sur la forme comme sur le fond) à Daniel.Herman@irisa.fr.
Bibliographie
Fallait-il, compte tenu du côté naturellement imparfait de ce type d’exerci-
ce,rédigerunpolycopié?Puisquelelecteuraenmainunteldocument,il
est clair que nous avons choisi de donner une réponse positive à cette ques-
tion. Les raisons en sont doubles:
les étudiants français n’achètent que très peu de livres,
un enseignement de masse nécessite un référentiel commun à tous les in-
tervenants.
Il est cependant important de donner une bibliographie, et nous avons rete-
nutroisouvragespermettantdapprofondirlesconnaissancesacquisesen
première initiation.
Le premier d’entre eux est un cours d’initiation à l’algorithmique et à la pro-
grammation fonctionnelle: il poursuit donc des buts semblables aux nôtres.
•HaroldA
BELSON,GeraldJaySUSSMAN avec Julie SUSSMAN,Structure et in-
terprétation des programmes informatiques. InterEditions (traduction 1989,
édition originale 1985).
MÉTHODES ET OUTILS DE L’INFORMATIQUE: APPROCHE FONCTIONNELLE 3
Le titre qui suit trace un panorama remarquablement complet de l’algorith-
mique et des outils mathématiques indispensables à l’art de la programma-
tion.
•AlfredV.A
HO, Jeffrey D. ULLMAN,Concepts fondamentaux de l’informatique,
Dunod (traduction 1993).
Enfin, l’ouvrage de vulgarisation scientifique qui termine cette liste évoque
une question fondamentale, celle des rapports entre intelligence et machi-
nes.
•DouglasH
OFSTADTER,Gödel, Escher, Bach. Les Brins d’une Guirlande Eternel-
le. InterEditions (traduction 1985, édition originale 1979).
Remerciements
Parmi les intervenants, il y a, chaque année, de nombreux doctorants. En-
thousiastes et sérieux, à l’écoute des étudiants et compétents, ils sont une
desplusgrandesrichessesdenotresystèmducatif.
L’enseignement de masse suppose une organisation lourde: merci à vous,
Anne GRAZON et Sophie ROBIN, tant pour vos talents que pour votre gen-
tillesse.
L’apport de Martine VERGNE est inestimable: ses propositions sont à l’origi-
ne de la deuxième version du polycopié.
Serge LEHUITOUZE a pris le temps de nous communiquer de nombreuses
remarques ou suggestions: c’est toujours un immense plaisir que d’être con-
fronté à son esprit acéré.
L’enseignement, et surtout l’enseignement en Deug, est un travail d’équipe.
Depuis 1990, nombreux sont ceux qui ont fait vivre, donc évoluer, cet ensei-
gnement. Que tous ceux qui ont contribué à cette expérience pédagogique
soient ici remerciés.
Annie FORET,DanielHERMAN
Rennes
Janvier 1997
Daniel HERMAN
Rennes
Janvier 1999
Juin 2003
4A. FORET, D. HERMAN, UNIVERSITÉ DE RENNES 1 - IFSIC
Architecture générale du cours
Le cours comporte 8 chapitres et une annexe; la table des matières et l’index
sont à la fin de l’ouvrage.
Informatique, machines et algorithmes 1
Programmation fonctionnelle 25
Analyse descendante 51
Conception de fonctions récursives 61
Données, types et abstraction 85
Une structure de données récursive à droite: la liste 101
•Arbres 121
•Conclusions 139
Séquentialité et effets de bord 145
Table des matières 153
•Index 159
1 / 168 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !