J’ai animé des dizaines de sessions de formation au profit des centres de formation, des entreprise ou des organismes publiques en Tunisie et en France.

Domaine de compétences

  • Programmation Java
    • Développement piloté par les tests (TDD) : Junit, Mockito, Cucumber
  • Programmation C++
    • Programmation avancée avec les standards C++11, C++14, C++17 et C++20
    • Programmation concurrentielle avec C++ moderne
    • Programmation parallèle : MPI
    • Bibliothèque STL
    • Codage sécurisé (secure coding)
  • Programmation embarquée C, C++ et Java
  • Développement des applications robotiques avec ROS2 en C++
  • Développement des modules noyau Linux
  • Conception et développement des solutions IOT
  • Administration du système d’exploitation LINUX
  • Programmation assembleur 8086/ARM/NIOS II
  • Synthèse matérielle en VHDL des systèmes embarqués

Références

Les documents et les extraits de cours présents sur ce site peuvent correspondre à des versions antérieures et ne pas refléter les dernières mises à jour ou les informations actuelles.

Cours de formation

  • Créer des applications robotiques avec ROS2 (4 jours)
    En utilisant le framework ROS 2 (Robot Operating System), développer des applications robotiques rapidement et efficacement en exploitant les concepts avancés des dialectes modernes du puissant langage C++.
  • Programmation en Multicore avec le C++ moderne (3 jours)
    Dans cette formation, vous apprendrez à maîtriser la programmation concurrentielle en utilisant les concepts les plus récents de C++. Vous étudierez la gestion des threads, la synchronisation des threads ainsi que les différents modèles mémoire offerts par le C++, afin d’optimiser vos programmes de manière optimale.
    Les techniques étudiées vous permettent de créer des threads, de synchroniser leur exécution et de gérer les conflits de mémoire, pour une programmation efficace et performante.
  • Linux drivers et développement noyau (4 jours)
    Maîtriser le développement de pilotes de périphériques (drivers) robustes et adaptés aux différentes distributions de Linux. Différents types de périphériques sont illustrés pour la gestion de la mémoire, l’implémentation de protocole réseau ainsi que les périphériques USB.
  • Linux drivers et développement noyau pour les systèmes embarqués (5 jours)
    Maîtriser le développement de pilotes de périphériques (drivers) robustes pour les systèmes embarqués. Différents types de périphériques sont illustrés pour la gestion de la mémoire, DMA, communication avec le protocole I2C, les périphériques USB, gestion des interruptions, etc.
  • Développement embarqué en C/C++ sur la carte Raspberry Pi 3 (3 jours)
    Développer des applications embarquées performantes et ayant une faible empreinte mémoire avec les langages C/C++. Vous apprendrez à exploiter les possibilités offertes par la carte Raspberry Pi 3 tout exploitant des concepts récents et sophistiqués du langage C++.
    Programme et extraits de la formation
  • Développement des objets connectés en C++ (2 jours)
    Apprendre à développer rapidement et efficacement des objets connectés en utilisant des concepts avancés du puissant langage C++.
    Programme et extraits de la formation
  • Créer son propre système embarqué sous Linux avec Raspberry Pi 3 (3 jours)
    Le Raspberry Pi est une excellente plateforme pour découvrir Linux embarqué, car il offre de nombreuses interfaces d’entrées-sorties pour un coût relativement réduit. Vous apprendrez à maîtriser ce système pour développer aisément votre propre projet embarqué (domotique, media player, robotique, objet connecté…).
    Programme et extraits de la formation
  • Codage sécurisé avec C et C++ (3 jours)
    Motivations et programme de la formation
    Extraits
  • Développement sur la plateforme Arduino (4 jours)
    Apprendre à créer de nouveaux produits en utilisant le kit électronique Arduino. Vous verrez notamment comment mettre en place l’environnement de développement, l’architecture des microcontrôleurs ATmega et les différentes techniques d’interruptions, timers et interface de communication.
    Programme et extraits de la formation
  • Mise en oeuvre de Linux (4 jours)
    Découvrir Linux de façon progressive et efficace. Cette approche originale présente une sélection rigoureuse mais néanmoins complète des connaissances essentielles pour aborder sereinement Linux. Elle vous montrera aussi comment installer le système et vous apportera les premiers éléments d’administration afin que vous disposiez d’une réelle autonomie d’utilisation.
    Programme et extraits de la formation
  • Programmation assembleur ARM (4 jours)
    Apprendre à mettre en oeuvre l’assembleur ARM, programmer les coprocesseurs des SoC « System on Chip » ARM9 et Cortex-A9 et optimiser les librairies. Ce module apportera tous les éléments nécessaires au développement de logiciels en utilisant ce type de technologies.
    Programme et extraits de la formation
  • Développement piloté par les tests en Java (3 jours)
    Ce cours vous apportera toutes les connaissances nécessaires pour développer vos applications Java autour des meilleurs outils et pratiques de tests unitaires et de recettes. Vous apprendrez à intégrer le test dans votre cycle de développement, le Refactoring, la conception émergente et les pratiques agiles.
  • Développer des applications connectées en Java et C++ (5 Jours)
    Cette formation vous permettra de comprendre l’architecture typique d’un réseau IoT et de mettre en place une chaîne IoT complète, depuis la remontée d’informations émises par des capteurs connectés LPWAN jusqu’à la Data Visualization en passant par la collecte Cloud/Big Data et l’exploitation en Java et C++.
  • Développer des applications connectées en JavaScript, HTML et CSS (4 jours)
    Les objets connectés occupent une place croissante dans notre quotidien. La convergence des différentes plateformes vers les technologies Web permet de mettre en place rapidement et à moindre coût de tels objets. Vous apprendrez dans ce cours à maîtriser les logiciels et matériels nécessaires à leur mise en œuvre.
  • C++ expert, les avancées du langage (de C++ 11 à 17) (3 jours)
    Cette formation vous permettra d’assimiler les nouveautés introduites par les standards C++11, 14 et 17. Vous découvrirez les expressions lambda, exploiterez les possibilités de la programmation fonctionnelle, maîtriserez la gestion de la mémoire et exploiterez la bibliothèque standard C++.
  • L’essentiel de Java et de l’Objet (5 jours)
    Ce cours vous permettra de maîtriser les principes de l’approche Objet et les mécanismes du langage. Les constructions du langage seront progressivement introduites à partir des concepts fondamentaux. Le cours abordera aussi les problèmes de conception (via la notation UML) et présentera les principales librairies standards : les entrées/sorties, les utilitaires, les classes graphiques (AWT et Swing), les Applets.