ME 2e semestre - la.epfl.ch · 3 fois mieux préparé pour les cours à venir! C++ LabVIEW Matlab 6...

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

Transcript of ME 2e semestre - la.epfl.ch · 3 fois mieux préparé pour les cours à venir! C++ LabVIEW Matlab 6...

Programmation

Christophe Salzmann���

ME 2e semestre

rev. 2015.1 Ph

oto

Mar

tin K

limas

Plan

•  Motivation

•  Compétences

•  Objectifs

•  Organisation

•  Contenu

•  Notes

•  Projet

1

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.

Motivation – "cool" projet

Scan2graph: reconstruit un graphique à partir d’une photo

3

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

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

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

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

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

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

Notes

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

13

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

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

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

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

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

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