v2.11.0 (5354)

Cours scientifiques - IN202 : Programmation orientée objet et embarquée

Domaine > Sciences et technologies de l'information et de la communication.

Descriptif

Après les bases de programmation et d'algorithmique, en Python et C, couvertes en 1A, ce cours d'informatique aborde deux aspects plus opérationnels, pratiqués en langage C++ :
- une démarche logicielle appelée Programmation Orientée Objet (POO), en quête de fiabilité et pérennité du développement ; ce paradigme de programmation, qui conduit à attacher aux structures de données les opérations qu'elles seront amenées à subir, rejoint une démarche de modélisation des systèmes comme ensemble d'objets, ayant leur "comportement" propre, en interaction les uns avec les autres ;
- l'interaction avec des mécanismes physiques réels (via une carte Arduino) ayant notamment des exigences temporelles précises de pilotage, donc nécessitant une programmation temps réel ou événementielle.

Il s'agit cependant d'un cours pour débutants en POO, qui ne convient donc pas aux étudiants admis sur titre (AST) en 2A qui l'ont déjà étudié et pratiqué (en C++ ou autre langage objet similaire).

Objectifs pédagogiques

Ce cours a plusieurs objectifs que nous pouvons lister comme suit :

  1. Introduire la notion de pogrammation oriéente objet,
  2. Introduire la programmation embarquée,
  3. Sensibiliser à la problématique des systèmes automatisés.

Ce cours mélange donc à la fois :

  • un cours/td introduisant rapidement les éléments essentiels du langage C++,
  • un ensemble de réalisations sur des simulateurs embarqués de type Tinkercad,
  • un ensemble de réalisations sur une carte électronique de type Arduino.

21 heures en présentiel (7 blocs ou créneaux)

effectifs minimal / maximal:

1/24

Diplôme(s) concerné(s)

Parcours de rattachement

Pour les étudiants du diplôme Diplôme d'Ingénieur de l'Ecole Nationale Supérieure de Techniques Avancées

IN10x, langage C

Format des notes

Numérique sur 20

Littérale/grade européen

Pour les étudiants du diplôme Diplôme d'Ingénieur de l'Ecole Nationale Supérieure de Techniques Avancées

Vos modalités d'acquisition :

Projet

Le rattrapage est autorisé (Max entre les deux notes écrêté à une note seuil)
  • le rattrapage est obligatoire si :
    Note initiale < 6
  • le rattrapage peut être demandé par l'étudiant si :
    6 ≤ note initiale < 10
L'UE est acquise si Note finale >= 10
  • Crédits ECTS acquis : 1.25 ECTS
  • Scientifique acquis : 1.25

Le coefficient de l'UE est : 1

La note obtenue rentre dans le calcul de votre GPA.

L'UE est évaluée par les étudiants.

Programme détaillé

Séance n°1 : Introduction à la programmation embarquée et aux objets

  • Introduction aux systèmes embarqués et présentation des spécificités de la programmation embarqué.

  • Présentation des limites de C.

  • Introdution de la la notion d'objets en C++.

Séance n°2 : Héritage & Polymorphisme

  • Extension des fonctionnalités d'un objet par héritage (Surcharge & Masquage).

  • Redéfinition des fonctionnalités d'un objet par héritage (fonctions polymorphes).

  • Méthodes et champs statiques

Séance n°3 : Patrons, Opérateurs & Itérateurs

  • Patrons de fonctions & de classes.

  • Itérateurs & containeurs.

  • Opérateurs surchargés.

Séance n°4 : Exceptions, Lambda & Auto

  • Exceptions.
  • Les lambdas.

  • L'inférence de type en C++.

Séance n°5 : Premiers pas avec la carte Arduino

  • Modélisation par TinkerCad
  • Portage du projet de TinkerCad sur la carte “ARDUINO”.
  • Encapsulation dans des objets.

Séance n°6 : Continuons à abstraire les composants

  • Lecture des informations sur les ports d'une carte ARDUINO.
  • Prendre en compte des événements soit de manière cyclique, soit de manière asynchrones (prise en compte des interruptions).
  • Encapsulation dans des objets des notions.

Séance n°7 : Quelques réalisations (TD noté)

Notions abordées :

  1. Mise en oeuvre de l'ensemble des notions abordées dans les séances précédentes.

Réalisations en séance :

  • Rendre la Led dimmable, ie. pouvoir augmenter ou diminuer l'intensité lumineuse de la LED

  • Détection sur le bouton poussoir les appuis courts, moyens et longs.

  • Associer aux différents appuis des commandes pour allumer/éteindre la diode, augmenter ou diminuer son intensité lumineuse.

  • Ajouter un mode blink si nous détectons deux appuis courts.

Mots clés

Programmation orientée objet, programmation temps réel
Veuillez patienter