Introduction à l'algorithmique · 2018-08-15 · and Fun (3rd Edition), Jeffrey Travis , Jim Kring...
Transcript of Introduction à l'algorithmique · 2018-08-15 · and Fun (3rd Edition), Jeffrey Travis , Jim Kring...
![Page 1: Introduction à l'algorithmique · 2018-08-15 · and Fun (3rd Edition), Jeffrey Travis , Jim Kring . Projet Le but de ce projet est de vous familiariser avec les 3 environnements](https://reader034.fdocuments.fr/reader034/viewer/2022042105/5e8318243d85d868c130bfa0/html5/thumbnails/1.jpg)
Introduction ���à
l'algorithmique
Christophe Salzmann���
ME 2e semestre
rev. 2013.2 Photo Martin Klimas
![Page 2: Introduction à l'algorithmique · 2018-08-15 · and Fun (3rd Edition), Jeffrey Travis , Jim Kring . Projet Le but de ce projet est de vous familiariser avec les 3 environnements](https://reader034.fdocuments.fr/reader034/viewer/2022042105/5e8318243d85d868c130bfa0/html5/thumbnails/2.jpg)
Plan
• Compétences
• Objectifs
• Motivation
• Organisation
• Contenu
• Notes
• Projet
1
![Page 3: Introduction à l'algorithmique · 2018-08-15 · and Fun (3rd Edition), Jeffrey Travis , Jim Kring . Projet Le but de ce projet est de vous familiariser avec les 3 environnements](https://reader034.fdocuments.fr/reader034/viewer/2022042105/5e8318243d85d868c130bfa0/html5/thumbnails/3.jpg)
Compétences
Domaine
– Comprendre les bases de la programmation
– Développer un logiciel (simple) structuré en utilisant un langage/environnement de programmation tel que C, Fortran ou Matlab
– Maîtriser les outils de l’analyse numérique et expérimentale
– Expliquer le fonctionnement des capteurs, des actionneurs et des algorithmes de commande s’y rapportant
Transversales – Gérer son temps
– Analyser ses décisions en considérant les aspects objectifs et subjectifs
– Montrer de la persévérance en dépit des obstacles
2
![Page 4: Introduction à l'algorithmique · 2018-08-15 · and Fun (3rd Edition), Jeffrey Travis , Jim Kring . Projet Le but de ce projet est de vous familiariser avec les 3 environnements](https://reader034.fdocuments.fr/reader034/viewer/2022042105/5e8318243d85d868c130bfa0/html5/thumbnails/4.jpg)
Objectifs
• Approfondir et développer les connaissances acquises lors du cours informatique 1
• Se familiariser avec les algorithmes classiques et numériques et mesurer leurs performances
• Se familiariser avec l’acquisition, le traitement et la visualisation de données
• Etre à même de passer d'une idée à un programme en choisissant l’environnement le mieux adapté
3
![Page 5: Introduction à l'algorithmique · 2018-08-15 · and Fun (3rd Edition), Jeffrey Travis , Jim Kring . Projet Le but de ce projet est de vous familiariser avec les 3 environnements](https://reader034.fdocuments.fr/reader034/viewer/2022042105/5e8318243d85d868c130bfa0/html5/thumbnails/5.jpg)
Motivations
• 3 langages • 3 manières différentes d’appréhender un problème • 3 manières différentes d’exprimer une idée
3 fois mieux préparé pour les cours à venir!
LabVIEW C++ Matlab
4
![Page 6: Introduction à l'algorithmique · 2018-08-15 · and Fun (3rd Edition), Jeffrey Travis , Jim Kring . Projet Le but de ce projet est de vous familiariser avec les 3 environnements](https://reader034.fdocuments.fr/reader034/viewer/2022042105/5e8318243d85d868c130bfa0/html5/thumbnails/6.jpg)
Organisation
• Cours
– Lundi, salle: CO2, 15:15-17:00
• Salles projets, lundi 17:15-18:00
– CO 020..23, CM1 120-121 avec ordi personnel
• Projet en binôme couvrant les 3 langages
• Exercices facultatifs, mais vivement recommandés
• Evaluations 2 x
• Page officielle du cours, mise à jour régulière:
http://la.epfl.ch/a
• Sur Moodle
http://moodle.epfl.ch/course/view.php?id=12971
5
![Page 7: Introduction à l'algorithmique · 2018-08-15 · and Fun (3rd Edition), Jeffrey Travis , Jim Kring . Projet Le but de ce projet est de vous familiariser avec les 3 environnements](https://reader034.fdocuments.fr/reader034/viewer/2022042105/5e8318243d85d868c130bfa0/html5/thumbnails/7.jpg)
Plan des cours
Semaine Matière Date
1 Introduction, génie logiciel et bonnes pratiques 18.2
2 Algorithmes ? 25.2
3 Listes, tableaux et buffers 4.3
4 Tri, tables, arbres et recherche 11.3
5 Instrument virtuel - I 18.3
6 Instrument virtuel - II 25.3
- Pâques - 1.4
7 Test intermédiaire 8.4
8 Mesures et affichage 15.4
9 Design patterns 22.4
10 Introduction à Matlab I 29.4
11 Introduction à Matlab II 6.5
12 Matlab III 13.5
13 - Pentecôte – 21.5
14 Examen final & remise projets 27.5 6
![Page 8: Introduction à l'algorithmique · 2018-08-15 · and Fun (3rd Edition), Jeffrey Travis , Jim Kring . Projet Le but de ce projet est de vous familiariser avec les 3 environnements](https://reader034.fdocuments.fr/reader034/viewer/2022042105/5e8318243d85d868c130bfa0/html5/thumbnails/8.jpg)
Notes
Pondération • Examen intermédiaire 10% • Examen final 30% • Projet 60%
7
![Page 9: Introduction à l'algorithmique · 2018-08-15 · and Fun (3rd Edition), Jeffrey Travis , Jim Kring . Projet Le but de ce projet est de vous familiariser avec les 3 environnements](https://reader034.fdocuments.fr/reader034/viewer/2022042105/5e8318243d85d868c130bfa0/html5/thumbnails/9.jpg)
Références
"Introduction to algorithms / Thomas H. Cormen ... [et al.]". Année:2009. ISBN:978-0-262-03384-8
Algorithms. R. Sedgewick, edition in c++
Algorithmes et structures de données avec ADA, C++ et Java 2004, PPUR, ISBN: 2-88074-488-1
8
MATLAB A Practical Introduction to Programming and Problem Solving Second Edition, Stormy Attaway
LabVIEW for Everyone: Graphical Programming Made Easy and Fun (3rd Edition), Jeffrey Travis, Jim Kring
![Page 10: Introduction à l'algorithmique · 2018-08-15 · and Fun (3rd Edition), Jeffrey Travis , Jim Kring . Projet Le but de ce projet est de vous familiariser avec les 3 environnements](https://reader034.fdocuments.fr/reader034/viewer/2022042105/5e8318243d85d868c130bfa0/html5/thumbnails/10.jpg)
Projet
Le but de ce projet est de vous familiariser avec les 3 environnements vus au cours. Il vous permettra de mettre en œuvre les différentes phases de la création d’un programme. Chaque environnement gèrera une étape du projet. Le projet consiste à réaliser un adversaire informatique pour le jeu du Tic-Tac-Toe. • La partie stratégie sera réalisée en C/C++ (partie 1) • La partie visualisation et interface utilisateur sera réalisée en LabVIEW
(partie 2) • L’analyse de la partie sera réalisée à l’aide de MATLAB (partie 3). • L’échange d’information entre les trois parties se fait par l’intermédiaire
de fichiers.
9
![Page 11: Introduction à l'algorithmique · 2018-08-15 · and Fun (3rd Edition), Jeffrey Travis , Jim Kring . Projet Le but de ce projet est de vous familiariser avec les 3 environnements](https://reader034.fdocuments.fr/reader034/viewer/2022042105/5e8318243d85d868c130bfa0/html5/thumbnails/11.jpg)
Projet
• Le projet se fait par groupe de 2(ou seul). Les membres du groupe sont responsable de l'entier du code, la note est donnée au groupe, sauf cas exceptionnel.
• Ce projet illustre comment échanger de manière simple des données entre les différent programmes.
• La donnée du projet est volontairement libre sur certains points. Vous aurez la tâche de choisir une solution adaptée et de la mettre en œuvre. De même, vous devrez définir votre cahier des charges (cours 1) et documenter votre code.
• Le projet est formaté de telle sorte que sa validation se fera "en 1 click". Différents tests seront réalisés sur vos programmes. La partie LabVIEW contrôlera les 2 autres parties.
10
![Page 12: Introduction à l'algorithmique · 2018-08-15 · and Fun (3rd Edition), Jeffrey Travis , Jim Kring . Projet Le but de ce projet est de vous familiariser avec les 3 environnements](https://reader034.fdocuments.fr/reader034/viewer/2022042105/5e8318243d85d868c130bfa0/html5/thumbnails/12.jpg)
Projet - suite
11
fCurrent.txt fNext.txt
?
fCurrent.txt
fRecorded.txt
Pos
Rouge vainqueur
NextMove Main.vi Play.m
![Page 13: Introduction à l'algorithmique · 2018-08-15 · and Fun (3rd Edition), Jeffrey Travis , Jim Kring . Projet Le but de ce projet est de vous familiariser avec les 3 environnements](https://reader034.fdocuments.fr/reader034/viewer/2022042105/5e8318243d85d868c130bfa0/html5/thumbnails/13.jpg)
Projet - suite
1. Stratégie Calcul du prochain coup en c/c++
• Lecture du fichier fCurrent.txt contenant:
– les 9 positions courantes, position 1 à 9 – 0: vide, 1:joueur, 2: computer – 1 ou 2 , prochain joueur
• Validation – Entrées valides ? – Prochain joueur valide ?
• Calcul du prochain coup
– Définir votre stratégie – Implanter votre stratégie – Valider votre stratégie
• Ecriture du prochain coup dans fNext.txt contenant: – La case jouée (1 à 9) – Le joueur courant (1 ou 2) – Message d'erreur
12
fCurrent.txt fNext.txt
?
![Page 14: Introduction à l'algorithmique · 2018-08-15 · and Fun (3rd Edition), Jeffrey Travis , Jim Kring . Projet Le but de ce projet est de vous familiariser avec les 3 environnements](https://reader034.fdocuments.fr/reader034/viewer/2022042105/5e8318243d85d868c130bfa0/html5/thumbnails/14.jpg)
Projet - suite
13
Fichier fCurrent.txt
1 2 3
4 5 6
7 8 9
Position dans la grille
Couleur des cases
0: case vide 1: ordinateur 2: humain
Prochain joueur Grille courante
0!0!0!0!0!0!0!0!0!1!
1
2
1
2
1!0!1!0!2!0!0!0!0!2!
1
Vous devez valider les données du fichier fCurrent.txt
3!1!""!
Fichier fNext.txt
6!2!""!
?
?
NextMove
NextMove
![Page 15: Introduction à l'algorithmique · 2018-08-15 · and Fun (3rd Edition), Jeffrey Travis , Jim Kring . Projet Le but de ce projet est de vous familiariser avec les 3 environnements](https://reader034.fdocuments.fr/reader034/viewer/2022042105/5e8318243d85d868c130bfa0/html5/thumbnails/15.jpg)
2. Visualisation Ecrire en LabVIEW le programme qui effectue les opérations suivantes:
• Création/lecture des fichiers des positions – Sauvegarde des positions dans fCurrent.txt – Lance le programme C++ du calcul de coup – Lecture du fichier fNext.txt contenant le nouveau coup
• Interface utilisateur – Générer une grille contenant les coups joués – Gestion des entrées de l'utilisateurs
– Validation des entrées/sorties
• Sauvegarde des coups joués – Ecrire les coups joués de manière chronologique dans le fichier fRecorded.txt – Ecrire le script Matlab (Play.m) lisant le fichier et affichant la partie
– Lancer Matlab avec le script créé
Projet - suite
14
fNext.txt
fCurrent.txt
fRecorded.txt
Play.m
Pos
![Page 16: Introduction à l'algorithmique · 2018-08-15 · and Fun (3rd Edition), Jeffrey Travis , Jim Kring . Projet Le but de ce projet est de vous familiariser avec les 3 environnements](https://reader034.fdocuments.fr/reader034/viewer/2022042105/5e8318243d85d868c130bfa0/html5/thumbnails/16.jpg)
3. Affichage de la partie Dans Matlab, écrire le script qui effectue les opérations suivantes:
• Ouvrir le fichier fRecorded.txt créé par LabVIEW contenant les coups • Afficher les coups de manière chronologique dans un graphique de votre choix • Afficher le vainqueur
Projet - suite
15
fRecorded.txt
Play.m
Rouge vainqueur
![Page 17: Introduction à l'algorithmique · 2018-08-15 · and Fun (3rd Edition), Jeffrey Travis , Jim Kring . Projet Le but de ce projet est de vous familiariser avec les 3 environnements](https://reader034.fdocuments.fr/reader034/viewer/2022042105/5e8318243d85d868c130bfa0/html5/thumbnails/17.jpg)
Projet
Rendu dans une archive .zip aux noms des 2 membres du groupe
• Brève documentation/cahier des charges au format pdf (1 à 3 pages)
• Le fichier source du code c++ (partie 1)
• Le programme c++ compilé pour machine linux
• Les sources LabVIEW
• Le script/programme Matlab
• Les différents fichiers générés
Tous les chemins doivent être relatifs!
16
![Page 18: Introduction à l'algorithmique · 2018-08-15 · and Fun (3rd Edition), Jeffrey Travis , Jim Kring . Projet Le but de ce projet est de vous familiariser avec les 3 environnements](https://reader034.fdocuments.fr/reader034/viewer/2022042105/5e8318243d85d868c130bfa0/html5/thumbnails/18.jpg)
Logiciels
Depuis cette année les logiciels LabVIEW et MATLAB sont disponibles pour les étudiants
MATLAB, via Poseidon
http://soft-epfl.epfl.ch/students/matlab/tah_en.cgi
LabVIEW, via Olympe
Windows \\olympe.intranet.epfl.ch\Students-NI\ OSX et linux smb://olympe.intranet.epfl.ch/students-ni/ Il faut installer de préférence les versions anglaises!
17
![Page 19: Introduction à l'algorithmique · 2018-08-15 · and Fun (3rd Edition), Jeffrey Travis , Jim Kring . Projet Le but de ce projet est de vous familiariser avec les 3 environnements](https://reader034.fdocuments.fr/reader034/viewer/2022042105/5e8318243d85d868c130bfa0/html5/thumbnails/19.jpg)
Assistants • Assistant
– David Ingram
• Assistants étudiants – Romain Baud
– Martinoli Enea, – Brandt-dit-Siméon Antoine Adrien – Pytnon Benoît – Girard Arthur
– Luthi Robin – Basbous Moukarzel Adriana Maria – Johannes Frey
– Dufour Louis François Michel Raymond – Christopher Boux de Casson – Foba Amon Junior Antoine – Piccoli Émile
– Pinazza Jean-François Benoît Michel – Bruno Marolda – Besuchet Nicolas – Zilliox Thomas Pierre Richard
18