www.editrice-esculapio.it
)
2002, ISBN 88-7488-031-6
Bruno Petazzoni
Éditions Springer, Paris, 2001, ISBN 3-540-67387-3.
Cet ouvrage rassemble 16 problèmes corrigés d'informatique. Chaque problème est précédé d'une rapide présentation, et le corrigé est complet: chaque question y trouve une réponse. Des notes historiques et bibliographiques apportent des précisions complémentaires, et donnent au lecteur curieux des pistes vers d'autres sources d'information. Les réponses aux questions de programmation sont données dans le langage de programmation fonctionnelle Caml, à la fois concis et élégant.
Ce recueil est destiné aux étudiants qui suivent l'enseignement optionnel d'informatique en filière MPSI/MP (classes préparatoires aux grandes écoles d'ingénieurs). Il intéressera également les étudiants de licence ou en maîtrise d'informatique.
Disponible chez Springer.
Michel Quercia
Éditions Vuibert, Paris, mai 2000, ISBN 2-7117-8990 X.
Si l'apprentissage de l'informatique requiert une solide base théorique, on ne peut pas l'envisager sans une exploration par la pratique.
Ces cent trois exercices et ces cinq problèmes d'algorithmique répondent à cette nécessité. Ils recouvrent la totalité du programme officiel de l'option informatique des prépas scientifiques et conviendront aussi aux étudiants des premiers cycles universitaires scientifiques.
Rédigés en langage Caml, les programmes permettent d'appliquer les algorithmes étudiés. Chaque sujet est intégralement corrigé et fait l'objet d'un rappel de cours.
Sommaire
Michel Quercia est aussi l'auteur d'un cours d'informatique
librement disponible à l'adresse suivante
http://pauillac.inria.fr/~quercia/
.
Disponible chez Vuibert.
Emmanuel Chailloux, Pascal Manoury, et Bruno Pagano
Éditions O'Reilly, Paris, avril 2000, ISBN 2-84177-121-0.
Le texte de ce livre est consultable sur le Web.
Dernier-né de la famille Caml, Objective Caml est l'un des langages fonctionnels les plus intéressants du moment, qui allie programmation fonctionnelle, impérative, et orientée objet.
Outre les avantages bien connus des langages fonctionnels, on y trouve tout ce qui fait l'attrait des langages modernes, notamment son modèle objet original, ses fonctionnalités de multithreading, d'accès réseau, etc. Par ailleurs, le typage statique, l'inférence de type, ou le mécanisme de traitement des exceptions, combinées à une gestion automatique de la mémoire le rangent définitivement dans la catégorie des langages ultra-puissants.
Cet ouvrage vous dira tout sur Objective Caml et vous permettra de réaliser des applications étonnamment efficaces :
Diffusé librement par ses créateurs de l'INRIA (sous licences LGPL et QPL), la distribution officielle d'Objective Caml s'installe sans difficulté aussi bien sur Unix que sur Windows.
Le CD-ROM inclus dans cet ouvrage contient non seulement les toutes dernières versions (sources et binaires) d'Objective Caml, mais aussi les sources complets du livre en HTML, les solutions aux exercices, et de nombreux programmes et outils, parmi lesquels le fameux HEVEA (convertisseur LaTeX -> HTML).
Pierre Weis et Xavier Leroy
Seconde édition, Dunod, Paris, 1999, ISBN 2-10-004383-8. Première édition, InterEditions, Paris 1993.
Ce livre permet d'aborder la programmation en Caml de façon aisée et concrète. Véritable cours de programmation, il introduit progressivement les mécanismes du langage et les montre à l'oeuvre face aux problèmes fondamentaux de la programmation. Les possibilités graphiques de Caml Light sont étudiées par l'implémentation d'un crayon électronique et le dessin de fractales. L'analyse syntaxique à l'aide de flux est utilisée abondamment, en particulier pour implémenter un langage graphique similaire à Logo. Des algorithmes classiques comme la compression de données, la recherche de motif dans les chaînes de caractères ou le tri sont également implémentés en Caml. On étudie la logique à l'aide d'un programme de démonstration automatique de formules du premier ordre, et la structure d'un micro-processeur est mise en évidence par l'implémentation d'un simulateur de machine RISC simplifiée. Les problèmes réputés difficiles, comme la compilation (mini-compilateur Pascal) et l'analyse automatique de programmes sont abordés (en particulier l'évaluation et la synthèse de type pour un sous-ensemble de Caml). La présentation simple et claire de tous ces problèmes non triviaux met cependant le livre à la portée du novice.
Choisis pour leur intérêt pédagogique ou pratique, de très nombreux exemples sont détaillés par les auteurs. Ils facilitent une assimilation rapide du langage et passent en revue un large échantillon de ses possibilités.
Toutes les personnes intéressées par Caml - et les nouveaux langages de programmation -, étudiants, enseignants, professionnels ou amateurs, liront avec intérêt cette démonstration magistrale de la puissance et de la simplicité de ce langage de programmation.
Xavier Leroy et Pierre Weis
InterEditions, Paris 1993, ISBN 2-7296-0492-8
Rédigé par les implémenteurs de Caml, cet ouvrage décrit de manière exhaustive toutes les constructions du langage de programmation Caml et documente complètement le système Caml Light, son compilateur le plus répandu actuellement.
Avant tout destiné aux utilisateurs déjà familiers de Caml, auxquels il deviendra vite indispensable, il constitue un manuel complet et concis de ce langage qui s'adresse à tous ceux qui écrivent des programmes Caml, qu'ils soient étudiants, enseignants, professionnels ou amateurs.
Thérèse Accart Hardin et Véronique Donzeau-Gouge Viguié
InterEditions, Paris 1991, ISBN 2-7296-0419-7
Cet ouvrage repose sur l'expérience pédagogique des auteurs en premier cycle du CNAM et en enseignement de second cycle des universités.
L'ouvrage présente une méthode d'apprentissage de la programmation, fondée sur des notions sémantiques, qui ne nécessite pas de connaissances préalables. Les concepts fondamentaux des langages fonctionnels aussi bien que impératifs sont décrits à l'aide d'un modèle sémantique. Ce modèle prend en compte le typage, y compris polymorphe, l'évaluation, le filtrage, le traitement des exceptions et les effets de bord, la modularité et la généricité. Cependant, la définition formelle du modèle reste occultée aux étudiants, on recherche d'abord une vision intuitive - mais correcte et non réductrice - de la sémantique des constructions syntaxiques.
L'ouvrage commence par une approche des concepts du monde fonctionnel (avec CAML) suivie par l'étude de ceux du monde impératif (avec Ada). Il montre comment passer harmonieusement d'un texte écrit dans le style fonctionnel à un texte écrit dans un langage de programmation classique. Le choix des langages n'est pas indifférent: bien que de styles fort éloignés, CAML et Ada ont un commun une approche d'assez haut niveau de la programmation et des constructions de Ada réputées d'abord difficile comme les génériques sont ici vues comme un cas un peu particulier du polymorphisme et de la pleine fonctionnalité. Il est à noter que cet ouvrage contient de nombreux exercices corrigés.
Guy Cousineau et Michel Mauny
Ediscience (Collection Informatique), Paris 1995, ISBN 2-84074-114-8 (page web du livre)
Ce livre est principalement issu du cours de programmation donné par le premier auteur à l'école normale supérieure depuis 1991. Il utilise le langage CAML un peu à la facon dont le livre d'Abelson et Sussman utilise SCHEME, c'est-à-dire comme support d'un cours introductif aux concepts de la programmation.
Le livre est divisé en trois parties. La première est une introduction progressive à CAML et à l'esprit de la programmation fonctionnelle. On introduit le noyau de CAML c'est-à-dire la structure fonctionnelle et les types de données puis on pose les principes de l'évaluation par réécriture et on introduit la notion de stratégie avant d'aborder les preuves de programmes. Enfin, une fois posés les principes de la programmation fonctionnelle, on décrit aussi les aspects non-fonctionnels de CAML.
La seconde partie du livre est consacrée à la description d'applications relevant de différents domaines et susceptibles d'intéresser différents types de lecteurs ou d'étudiants. Les domaines abordés sont l'arithmétique exacte (entiers,rationnels), les algorithmes sur les termes (filtrage, unification et applications), les arbres équilibrés pour la représentation d'ensembles et de dictionnaires, les algorithmes d'exploration de graphes avec application à des jeux à un joueur (âne rouge, solitaire), l'analyse lexicale et l'analyse syntaxique, le dessin d'arbres et la réalisation de pavages du plan.
Enfin, la troisième partie du livre est consacré à l'implantation. On décrit l'évaluation puis la compilation en abordant succintement les problèmes de gestion de la mémoire, et enfin la synthèse de types. Il ne s'agit pas décrire de facon exhaustive des implantations existantes à destination de futurs "pros" des langages fonctionnels mais plutôt de satisfaire la curiosité des lecteurs qui après avoir appris à aimer CAML se demandent assez naturellement "comment ca peut marcher". La description du synthétiseur de types est cependant très proche de celui de CAML.
Denis Monasse
Vuibert (Enseignement supérieur & Informatique), Paris 1996, ISBN 2-7117-8831-8
L'informatique est une discipline désormais enseignée dans les classes préparatoires à travers une option informatique en Sup MPSI et en Spé MP.
Ce manuel couvre le programme de première année en quatre grands thèmes: Itération et récursivité. Diviser pour régner. Logique des propositions. Listes. En préliminaire, on trouvera également deux autres chapitres: une introduction générale à l'algorithmique et une description du langage Caml, l'un des deux langages retenus pour l'enseignement en classes préparatoires. Il a été choisi pour sa puissance, son élégance et sa lisibilité, mais aussi pour sa simplicité et sa bonne adaptation aux thèmes étudiés.
Tout au long de l'ouvrage, la plus grande rigueur est accordée aux raisonnements: les descriptions mathématiques des objets sont reliées aux structures de données du langage de programmation. Les algorithmes sont validés et sont illustrés par des nombreux programmes en Caml.
Option informatique s'adresse essentiellement aux étudiants des classes préparatoires scientifiques qui suivent l'enseignement optionnel; il rendra aussi de grands services à tous ceux qui entreprennent l'étude de l'informatique fondamentale, que ce soit en DEUG, en licence ou pour préparer l'agrégation de mathématiques. Par ailleurs il conviendra aux enseignants de mathématiques et d'informatique.
Jacques Rouablé
Eyrolles, Paris 1997, ISBN 2-212-08944-9
Ce livre s'adresse au débutant qui y trouvera les notions de base de la programmation. L'enseignant y puisera la matière de base de ses séances de travaux pratiques.
L'ouvrage est constitué de deux parties:
Trois programmes complets sont donnés en exemple: un traducteur, un tableur et un éditeur de texte.
Le livre est accompagné d'un CD-Rom qui contient les sources Caml des exemples du livre, une distribution complète de Caml 0.71 (y compris les sources des modules de bibliothèques), une version HTML de la première partie du livre, et un brouteur du commerce pour lire le tout.
Pour contacter l'auteur: <Jacques.Rouable@wanadoo.fr>
Denis Monasse
Vuibert (Enseignement supérieur & Informatique), Paris 1997, ISBN 2-7117-8839-3
Discipline à part entière, l'informatique est désormais enseignée dans les classes préparatoires - Sup MPSI, Spé MP et MP* - à travers une option informatique.
Ce manuel couvre le programme de deuxième année en quatre grands thèmes: Arbres - Expression algébriques - Automates et langages - Programmation Caml: les flux.
L'ouvrage est enrichi d'un index de plus de 120 entrées et l'on y trouvera plus de 200 programmes en Caml, le langage choisi pour sa puissance, son élégance et sa lisibilité mais aussi pour sa simplicité et sa bonne adéquation aux thèmes étudiés.
Comme dans le cours de première année, la plus grande rigueur a toujours été accordée aux raisonnements: les descriptions mathématiques des objets sont reliées aux structures de données du langage de programmation: les algorithmes sont validés et illustrés chaque fois par un programme.
Initialement destiné aux étudiants des classes préparatoires scientifiques qui suivent l'enseignement optionnel, Option informatique rendra de grands services à tous ceux qui entreprennent l'étude de l'informatique fondamentale, que ce soit en DEUG, en licence ou pour préparer l'agrégation de mathématiques. Ce livre conviendra par ailleurs aux enseignants de mathématiques et d'informatique.
Ouvrage collectif -- Coordination Luc Albert
Thomson Publishing Internationl, Paris 1997, ISBN 2-84180-106-3
Fruit de la collaboration entre des professeurs d'université et des professeurs de classes préparatoires aux grandes écoles, cet ouvrage est destiné à la fois aux étudiants de CPGE suivant l'option informatique et aux étudiants des premiers cycles universitaires. Toute personne désireuse d'acquérir une formation de base en informatique théorique sera également intéressée par ce livre.
Il constitue à la fois un manuel d'initiation au langage Caml, un cours d'algorithmique, de structures de données, de théorie des automates et de logique formelle.
Il comprend 135 exercices corrigés et couvre, avec de nombreux approfondissements, le programme de l'option informatique des classes préparatoires MPSI et MP; les textes officiels sont aussi donnés en annexe. Les enseignants trouveront dans ce livre une base de cours, d'exercices et de travaux dirigés.
Les auteurs
Luc Albert, Bruno Petazzoni et Nicolas Puech sont professeurs de classes préparatoires dans les lycées Fénelon, Marcelin Berthelot et Newton. Antoine Petit est professeur à l'ENS Cachan, Pascal Weil est chercheur au CNRS et Paul Gastin enseigne à l'université Paris VII.
Les auteurs ont souhaité que leurs droits d'auteurs soient reversés intégralement à des organisations caritatives: l'AICF (lutte contre la faim dans le monde), l'OPC (aide aux aveugles) et le ROC (sauvegarde de l'environnement).
Catherine Dubois et Valérie Ménissier-Morain
Edition Hermès Sciences, Paris 2004, ISBN 2-7462-0819-9
L'apprentissage de la programmation permet de maîtriser les trois points forts d'un ordinateur, à savoir : une mémoire très grande et ordonnée, une capacité à effectuer inlassablement des tâches répétitives et surtout une grande rapidité de calcul. Pour pouvoir écrire des programmes corrects et répondant au besoin énoncé, il est indispensable de connaître la sémantique précise du langage. Cet ouvrage est destiné à des débutants en informatique, plus précisément en programmation. Il est également un support pédagogique pour tout programmeur désireux d'aborder le style fonctionnel, disons le style ML. Les notions retenues dans cet ouvrage sont disponibles dans tout dialecte de ML, en particulier que ce soit Caml-Light, OCaml et Standard ML. La plupart des concepts mis en oeuvre dans cet ouvrage, illustrés en OCaml, peuvent se transposer aisément à d'autres langages de programmation.
Jon D. Harrop
Available from
Flying Frog Consultancy Ltd..
This book teaches the fundamentals of programming using OCaml, assuming little prior knowledge of computer programming. Particular emphasis is placed upon programming paradigms rarely seen in current scientific computing, such as exceptions, polymorphism, higher-order functions, nested functions, pattern matching and modules.
Guy Cousineau and Michel Mauny
Cambridge University Press, Cambridge, 1998, ISBN 0-521-57183-9
(hardcover), 0-521-57681-4 (paperback) (page
web du livre)
A programming course should concentrate as much as possible on a program's logical structure and design rather than simply show how to write code. The Functional Approach to Programming achieves this aim because logical concepts are evident and programs are transparent so can be written quickly and cleanly. In this book the authors emphasise the notions of function and function application which relate programming to familiar concepts from mathematics and logic. They introduce functional programming via examples but also explain what programs compute and how to reason about them. They show how the ideas can be implemented in the Caml language, a dialect of the ML family, and give examples of how complex programs from a variety of areas (such as arithmetic, tree algorithms, graph algorithms, text parsing and geometry) can be developed in close agreement with their specifications. Many exercises and examples are included throughout the book; solutions are also available.
Juergen Wolff v. Gudenberg
Addison-Wesley, Bonn 1996
La conception des algorithmes, leur programmation et la manipulation des structures de données sont les outils de base des informaticiens.
Ce livre est une introduction à l'informatique, dans laquelle algorithmes et structures de données sont étudiés sous l'angle fonctionnel. Il est conçu comme un ouvrage d'accompagnement pour les cours élémentaires d'informatique mais convient aussi à l'autodidacte.
Dans la première partie, on présente les algorithmes de façon précise
et concise, en utilisant le langage Caml comme une espèce de
pseudo-code (ou langage de description de haut-niveau).
Ainsi les idées importantes ne sont pas cachées par trop de détails.
L'autre avantage de cette approche est que le pseudo-code décrit des
programmes complets, et que les spécifiactions sont directement
exécutables.
De surcroît le lecteur se familiarise avec la programmation fonctionnelle.
La deuxième partie présente une introduction didactique au langage Caml, et dans le dernier chapitre, une description complète du noyau du langage.
Caml est un langage fonctionnel typé, facilement portable, qui
est interprété mais qui peut aussi être compilé si nécessaire.
Il comporte un nombre considérable de modules de bibliothèque
intéressants.
De même que le système Caml Light, les programmes qui implémentent les algorithmes décrits dans le livre sont disponibles gratuitement.
Pour en savoir plus.
Carla Limongelli e Marta Cialdea
Societa' Editrice Esculapio, 2002, ISBN 88-7488-031-6.