See discussions, stats, and author profiles for this publication at: https://ww
See discussions, stats, and author profiles for this publication at: https://www.researchgate.net/publication/220575448 L'enseignement de la programmation logique à l'École des Mines de Nantes. Article · January 2003 Source: DBLP CITATIONS 0 READS 332 1 author: Narendra Jussien IMT Atlantique 176 PUBLICATIONS 2,002 CITATIONS SEE PROFILE All content following this page was uploaded by Narendra Jussien on 03 June 2014. The user has requested enhancement of the downloaded file. L’enseignement de la programmation logique à l’École des Mines de Nantes Narendra Jussien École des Mines de Nantes 4 rue Alfred Kastler – BP 20722 F-44307 Nantes Cedex 3 Narendra.Jussien@emn.fr RÉSUMÉ. La programmation logique est enseignée à l’École des Mines de Nantes depuis 1994. Suite à un doublement du volume horaire en 1998 (de 15 à 30 heures), le contenu du cours a beaucoup évolué pour proposer un cheminement plus complet depuis la logique formelle jusqu’à la programmation en logique. Cet article présente ce cours dans son organisation et sa philosophie. ABSTRACT. Logic programming is taught at École des Mines de Nantes since 1994. Our course is organized to provide a complete path from logic to logic programming. This document presents the current organization of the course. MOTS-CLÉS : programmation logique, logique formelle, enseignement KEYWORDS: logic programming, logic, teaching 64 RSTI/hors série. JFPLC 2003. 1. Introduction La programmation logique est enseignée à l’École des Mines de Nantes depuis 1994. Suite à une augmentation du volume horaire en 1998 (de 15 à 30 heures), le contenu du cours a évolué pour proposer un cheminement plus complet depuis la logique formelle (calcul propositionnel et calcul des prédicats) jusqu’à la programma- tion en logique. Ce cours comporte de nombreux travaux pratiques mettant l’accent sur les applications de PROLOG plutôt que sur le langage lui-même. Ce document présente l’organisation du cours telle qu’il est dispensé actuellement. Après une présentation du contexte spécifique de l’enseignement dans une école d’ingénieurs comme l’École des Mines de Nantes, les objectifs du cours sont détaillés, puis le découpage en cours–TP est précisé. Enfin une description détaillée des sujets de TP est proposée, avant de faire un bilan de cet enseignement. 2. Contexte Créée en 1990 par le ministère de l’industrie avec le concours des collectivités lo- cales, l’École des Mines de Nantes forme en quatre ans1 des ingénieurs compétents en génie des systèmes industriels, qui maîtrisent les méthodes nécessaires à la concep- tion, l’étude, le développement et la maintenance des systèmes de production. Pour développer cet ensemble de compétences, l’École des Mines de Nantes axe son enseignement sur trois domaines majeurs : – l’informatique et les systèmes de communication ; – l’automatique et la productique ; – les sciences de l’homme et la société. Ces trois domaines s’enrichissent et se déclinent dans le cadre des options en qua- trième année. Les quatre années d’enseignement se décomposent en : – un tronc commun, dispensé pendant les deux premières années, dont l’informa- tique est un pilier. Celle-ci est introduite par un cours d’initiation à la programmation de 45 heures. Pour faire le lien avec l’univers mathématique, l’équipe pédagogique a choisi d’utiliser pour ce cours un langage fonctionnel : HASKELL. Ce cours est suivi d’un cours de 60 heures d’algorithmique et structure de données (pour lequel nous in- troduisons le langage JAVA). La deuxième année introduit la programmation par objets dans un cours de 30 heures (toujours en JAVA). Au cours de cette même année, une introduction de 30 heures aux bases de données et une introduction de 45 heures aux systèmes et réseaux sont finalement proposées. 1. Les élèves de l’École des Mines de Nantes sont recrutés par concours (concours commun des écoles des Mines) à l’issue de la première année de Classe Préparatoire aux Grandes Écoles (CPGE). Enseignement 65 – une troisième année dite de pré-orientation. L’année est décomposée en mo- dules optionnels dont certains sont requis pour les options de quatrième année. Par exemple, pour les options orientées vers l’informatique, on trouve des modules de génie logiciel, de compilation, d’intelligence artificielle, ... – une quatrième année dite d’option qui donne la coloration finale de nos in- génieurs. L’École des Mines de Nantes propose neuf options parmi lesquelles deux émanent du département informatique. L’une d’elles propose une spécialisation en génie informatique pour l’aide à la décision (GIPAD). Cette spécialisation est centrée sur les aspects optimisation et résolution de problème complexes d’aide à la décision (Recherche Opérationnelle, Programmation par Contraintes, ...). Le cours de programmation logique est un module optionnel du premier trimestre de troisième année. Il est requis pour l’option GIPAD. Il est aussi requis pour un module d’intelligence artificielle2 de 30 heures proposé au deuxième trimestre. 3. Les objectifs du cours de Programmation Logique Les objectifs du cours de Programmation Logique sont multiples : – introduction à une nouvelle façon de penser la programmation ; – résolution de problématiques nouvelles ; – présentation d’un outil privilégié pour le maquettage et l’implantation d’algo- rithmes liés à l’intelligence artificielle ; – introduction aux concepts de base de la programmation par contraintes pour pré- parer à la fois le module d’intelligence artificielle et l’option GIPAD. On notera que malgré le contexte spécifique d’une école des Mines, le but de ce cours n’est pas nécessairement de montrer que PROLOG est utile dans l’industrie. Il s’agit en effet plus un cours d’ouverture sur un mode de pensée que de l’apprentissage d’un nième langage. Trente heures (soit 24 séances d’une heure et quart) sont dédiées à ce cours. 4. Organisation du cours L’organisation du cours est orientée par un choix délibéré d’éviter de se contenter de l’aspect magique de PROLOG mais plutôt sur une compréhension des mécanismes conduisant à un tel niveau de déclarativité. Ainsi, la première partie du cours est consa- crée à des rappels de logique formelle (calcul propositionnel et calcul des prédicats) pour expliquer concrètement comment on peut programmer avec la logique. Ensuite, 2. Ce module, dont les TP sont réalisés principalement en PROLOG, aborde différents thèmes : algorithmes de recherche, principes de programmation des jeux, problèmes de satisfaction de contraintes, recherches locales, traitement automatique du langage naturel, représentation des connaissances et raisonnement temporel. 66 RSTI/hors série. JFPLC 2003. une présentation classique et relativement rapide du langage est proposée, illustrée par des travaux pratiques (axés sur des applications plutôt qu’uniquement sur la manipu- lation du langage). 4.1. Les cours magistraux L’enseignement en cours magistraux occupe la moitié du temps disponible, soit 12 séances d’une heure et quart. Nous présentons ici le contenu et l’objectif pédagogique de chacun de ces cours dans l’ordre chronologique. – Calcul propositionnel (3 séances) Nous en présentons les aspects syntaxiques, les aspects sémantiques (tables de vé- rité, diagrammes de Karnaugh, tautologies, formes normales) et les aspects déductifs (conséquence logique, démonstration, principe de résolution, propriétés). Le but de ces trois séances est de mettre en évidence l’intérêt d’une forme normale pour les démonstrations, la différence entre conséquence logique et démonstration, le principe de résolution et la notion de preuve par réfutation. À l’appui de ces séances, un certain nombre d’exercices3 sont proposés sous forme de pause ludique pour illustrer les principaux résultats. En voici deux exemples : Exemple 1 (Exercice d’application des diagrammes de Karnaugh) : Une banque veut installer un nouveau coffre-fort. Le coffre-fort ne doit pouvoir être ouvert que : - par le directeur et le secrétaire général ; - ou par le directeur, le comptable et le caissier ; - ou par le secrétaire général, le comptable et l’adjoint du caissier. Ceci implique bien sûr qu’aucune de ces personnes ne peut ouvrir le coffre-fort seule. Combien faut-il installer de serrures au minimum et comment répartir les clefs de ces serrures ? Exemple 2 (Démonstration dans le calcul propositionnel) : Quatre personnes sont accusées d’un crime : André, Bernard, Charles et Didier. Après enquête, on peut dire que : - si André et Bernard sont coupables alors Charles est complice ; - si André est coupable alors Bernard et/ou Charles sont/est complice(s) ; - si André est innocent alors Charles est coupable. Charles est-il coupable ? 3. Beaucoup proviennent de [FRI 86, L’H 98]. Enseignement 67 – Calcul des prédicats (3 séances) Nous présentons d’abord les limites du calcul propositionnel. Puis, les aspects syn- taxiques (quantificateurs), sémantiques (termes/atomes, modèle/interprétation, forme clausale) et déductifs (théorème de Herbrand, validation de raisonnement, unification) du calcul des prédicats sont introduits. Le but de ces trois séances est de mettre l’accent sur la validation de raisonnement et de montrer que l’unification peut s’apparenter à une forme de calcul (d’où la notion de programmation en logique). Là encore, ces séances sont illustrées par des exercices4 ludiques pour illustrer les résultats. Exemple 3 (Validation de raisonnement) : Le raisonnement suivant est-il valide ? - un dragon est heureux si tous ses enfants peuvent voler ; - les dragons verts peuvent voler ; - un dragon est vert s’il a au moins un parent vert ou rose ; - donc : les dragons verts sont heureux. Exemple 4 (Raisonnement logique) : On sait que : - Quand je résous un exercice de logique sans ronchonner, vous pouvez être uploads/Philosophie/ lenseignement-de-la-programmation-logique-a-leco.pdf
Documents similaires
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/BMHLgou1OuAdXZhfG48GfvU7Wv4ZhoPuRPlDbI293jxt5VAwnJYglPesgBYPvRRN6cAEtBCObNUBr3Z2m9bvkbxT.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/DGyHhiDoChy2EGgf7Zd4FoDJtGg4YdMqtYqjOYamNkvaWrYgSoj8XE5as8sbfGXj3mrYFHw5k579AJXf76YNMWlg.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/hx4wbg3X14jIurCMKl4NRR71xTdSx0gn82CZ9y0Ns0n9RB3tszWbEhzO5g80frWXyOauaQap91mcYn3zl8uRKiCk.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/B2GwsalRVl0mG8B6YTov2OKW0qdnlaHI4HYuFUk06QWhcUrMX4YFNqbvNq4f5FTr862cyTHLEVzIrbRa5yPL0Hwt.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/wrVPKzYkI1t7jQK4c64jqgQSojMeewlJJFlErc6wfiYFktgqZGR8QZf9XeOqTKZKTmT6REx2YXikizPi5RWSmkxq.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/kKj3gqyqWHEY99WpsUyPnjeN5vzkuf5LdiDkSzASArUowcaVOadsS6pnBXUujUVZRmNpc6sa5AASU8hm93Ukqld2.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/pekgDunBlIaZuHuJT3ltpy5YwOf2Mm5JIK5rzcktVvtVmiG26IPkrf0nJQZznBuXc6IMTzYc2xaQjDUOtUb1hDFP.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/3pVV1tR8fmszuA4uEjWjSfseBkUKQu3ObfayVoLeNWJIip2AO53tGwthQLXAKugpkwixTXlM9v49IxzTZZESs82n.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/qhQwYmNgHoYxvJNyrXEdD6xn94tf4uWhaKrxQiwF4PaR8akJvMKehgVlxB3n7vg054TIstmn1f6RS9DyZ1r3CXlT.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/LHO7FoTzvPATDxYjcD0iKAE6in2Q2QUAtALEqoyxlOGc3Y3ORIwr28QVzx5MWDgS2fSXbTXvwerpIPlcTufCOyMb.png)
-
22
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Apv 01, 2022
- Catégorie Philosophy / Philo...
- Langue French
- Taille du fichier 0.2123MB