me 2e semestre - epflcompétences domaine – comprendre les bases de la programmation –...

17
Programmation Christophe Salzmann ME 2 e semestre rev. 2015.1 Photo Martin Klimas

Upload: others

Post on 17-Jul-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ME 2e semestre - EPFLCompétences Domaine – Comprendre les bases de la programmation – Développer un logiciel (simple) structuré en utilisant un langage/ environnement de programmation

Programmation

Christophe Salzmann���

ME 2e semestre

rev. 2015.1 Ph

oto

Mar

tin K

limas

Page 2: ME 2e semestre - EPFLCompétences Domaine – Comprendre les bases de la programmation – Développer un logiciel (simple) structuré en utilisant un langage/ environnement de programmation

Plan

•  Motivation

•  Compétences

•  Objectifs

•  Organisation

•  Contenu

•  Notes

•  Projet

1

Page 3: ME 2e semestre - EPFLCompétences Domaine – Comprendre les bases de la programmation – Développer un logiciel (simple) structuré en utilisant un langage/ environnement de programmation

Motivation – contrôle du babyfoot

3 langages de programmation

2

Vision

•  Ecrite en C/C++

•  Ajout de l'algorithme de reconnaissance d'images (balle) à la partie acquisition d'images existante

Contrôle des barres (gardien & arrières)

•  Simulation à l'aide de matlab

•  Contrôle à l'aide de LabVIEW Acquisition des mesures de position angulaire et de translation. Calcul des commandes pour le 2 x 2 moteurs. Stratégie.

Page 4: ME 2e semestre - EPFLCompétences Domaine – Comprendre les bases de la programmation – Développer un logiciel (simple) structuré en utilisant un langage/ environnement de programmation

Motivation – "cool" projet

Scan2graph: reconstruit un graphique à partir d’une photo

3

Page 5: ME 2e semestre - EPFLCompétences Domaine – Comprendre les bases de la programmation – Développer un logiciel (simple) structuré en utilisant un langage/ environnement de programmation

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

Transversales –  Gérer son temps

–  Montrer de la persévérance en dépit des obstacles

4

Page 6: ME 2e semestre - EPFLCompétences Domaine – Comprendre les bases de la programmation – Développer un logiciel (simple) structuré en utilisant un langage/ environnement de programmation

Objectifs

•  Appliquer, approfondir et développer les connaissances acquises lors du cours informatique ICC

•  Apprendre à écrire un programme simple, le debugger et le tester

•  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é

5

Page 7: ME 2e semestre - EPFLCompétences Domaine – Comprendre les bases de la programmation – Développer un logiciel (simple) structuré en utilisant un langage/ environnement de programmation

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

6

Page 8: ME 2e semestre - EPFLCompétences Domaine – Comprendre les bases de la programmation – Développer un logiciel (simple) structuré en utilisant un langage/ environnement de programmation

Introduction

Buts •  Connaître les principes de base de la programmation •  Apprendre à écrire un programme simple en partant d'une idée

–  Concevoir l'algorithme (semestre précédent) –  Implanter l'algorithme dans un langage donné –  Debugger le programme –  Valider le programme

è  Apprendre les paradigmes et la syntaxe d'un langage de programmation donné.

7

Idée Algorithme Code Test

Page 9: ME 2e semestre - EPFLCompétences Domaine – Comprendre les bases de la programmation – Développer un logiciel (simple) structuré en utilisant un langage/ environnement de programmation

Organisation

•  Cours

–  Mardi, salle: CO1, 14:15-15:00 (16:00, voir plan hebdomadaire)

•  Exercices, exercices accompagnés et projet

–  mardi 15:15-17:00 (voir plan hebdomadaire)

–  CO 020..23, CM1 120-121 avec ordi personnel

•  Projet en binôme couvrant les 3 langages

•  Evaluations 2 x

•  Page officielle du cours, mise à jour régulière:

http://la.epfl.ch/p

•  Sur Moodle

http://moodle.epfl.ch/course/view.php?id=14113

8

Page 10: ME 2e semestre - EPFLCompétences Domaine – Comprendre les bases de la programmation – Développer un logiciel (simple) structuré en utilisant un langage/ environnement de programmation

Plan des cours

Semaine Matière Date

1 Introduction (1415-1600) 17.2

2 Structures de contrôle (1415-1600) 24.2

3 Fonctions (1415-1600) 3.3

4 Entrées et sorties (1415-1600) 10.3

5 Projet et récap C/C++ 17.3

6 Instrument virtuel – I 24.3

7 Instrument virtuel – II 31.3

- Pâques - 7.4

8 Fichier et affichage 14.4

9 Test intermédiaire 21.4

10 Design pattern 28.4

11 Introduction à Matlab I - calculatrice 5.5

12 Introduction à Matlab II - affichage 12.5

13 Matlab III - programmation 19.5

14 Examen final 26.5

15 Remise projets: x.6 9

v.5.2.2015

Page 11: ME 2e semestre - EPFLCompétences Domaine – Comprendre les bases de la programmation – Développer un logiciel (simple) structuré en utilisant un langage/ environnement de programmation

Notes

Pondération •  Examen intermédiaire 20% •  Examen final 40% •  Projet 40%

13

Page 12: ME 2e semestre - EPFLCompétences Domaine – Comprendre les bases de la programmation – Développer un logiciel (simple) structuré en utilisant un langage/ environnement de programmation

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

14

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

"C++ par la pratique,Recueil d'exercices corrigés et aide-mémoire, J.-C. Chappelier & F. Seydoux". PPUR

Scientific Computing with MATLAB and Octave Second Edition, Alfio Quarteroni & Fausto Saleri

MOOC EPFL Initiation à la programmation (en C++) https://www.coursera.org/course/initprogcpp

Page 13: ME 2e semestre - EPFLCompétences Domaine – Comprendre les bases de la programmation – Développer un logiciel (simple) structuré en utilisant un langage/ environnement de programmation

Projet – Scan2graph

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.

15

Page 14: ME 2e semestre - EPFLCompétences Domaine – Comprendre les bases de la programmation – Développer un logiciel (simple) structuré en utilisant un langage/ environnement de programmation

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. Vous devrez 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ôle les 2 autres parties.

16

Page 15: ME 2e semestre - EPFLCompétences Domaine – Comprendre les bases de la programmation – Développer un logiciel (simple) structuré en utilisant un langage/ environnement de programmation

Projet

Rendu dans une archive .zip aux noms des 2 membres du groupe

•  Brève documentation au format pdf (1 pages)

•  Le fichier source du code c++

•  Le programme c++ compilé pour machine linux/Mac/Window

•  Les sources LabVIEW

•  Le script/programme Matlab

•  Les différents fichiers générés

Tous les chemins doivent être relatifs!

17

Page 16: ME 2e semestre - EPFLCompétences Domaine – Comprendre les bases de la programmation – Développer un logiciel (simple) structuré en utilisant un langage/ environnement de programmation

Logiciels

Depuis cette année les logiciels LabVIEW et MATLAB sont disponibles pour les étudiants via Poseidon

http://poseidon.epfl.ch/english/software/article/professional-softwares.html

Il faut installer de préférence les versions anglaises! Les compilateurs C/C++ (gratuits) sont à installer depuis les sites des fabricants. Il existe également des compilateurs en ligne, par exemple:

http://www.tutorialspoint.com/compile_cpp_online.php

18

Page 17: ME 2e semestre - EPFLCompétences Domaine – Comprendre les bases de la programmation – Développer un logiciel (simple) structuré en utilisant un langage/ environnement de programmation

Assistants •  Assistant

Wissam Halimi Christoph Kammer

•  Assistants étudiants Antoine Brandt Antoine Durieux Arnaud Rubin Arthur Girard

Emile Decosterd Erwan Lepeuch Jules Soulas

Luca Fetz Luca Zampieri Lukas Tiller Matthieu Jonin

Mohamed Boudokhane Philippe Schuchert Quentin Waechter Vincent Mayoraz

19