Surfez sur les Nouvelles Vagues de l'informatique !

Expertises et Formations

Programmation Python

    Python est un langage de programmation puissant et facile à apprendre. Il est de plus en plus utilisé dans différents domaines.

Il est en évolution constante grâce à une communauté solide qui ne cesse de l'enrichir avec de nouvelles bibiliothèques. 

C'est un langage interprété et multiplateformes. Il peut être utilisé pour la programmation structurée, fonctionnelle et orientée objet.

L'interpréteur Python et ses vastes bibliothèques sont disponibles librement, pour toutes les plateformes

 

  Points clés abordés 

 

     1. Initiation programmation Python

 

  • Environnement Python : Python, c’est quoi ? Pourquoi préférer Python aux autres langages ? Installation IDE pour Python.
  • Validation et tests : Ecrire un docstring - Ecrire un doctest - Présentation de l’outil Python Tutor.

  • Quelques bases en Python : Utilisation en mode interactif (la console et les scripts) - Les variables - Les types de variables.
  • Interagir avec l’utilisateurs : Les sorties - Les entrées.

  • Les instructions spécifiques : Les instruction conditionnelles if, elif et else - Les instructions répétitives while et for - L'instruction pass.
  • Opérateurs mathématiques et premiers calculs.
  • Les fonctions : Les fonctions prédéfinies, définis, lambda, récursives - portée des variables d’une fonction.
  • Les séquences de données : Les dictionnaires, les chaînes de caractères, les listes et les tuples.

     2. Programmation Python avancée

  • Introduction à la Programmation Orientée Objet (POO) et concepts clés.

  • Les classes et les objets : Surcharge de méthode - Membres statiques - Méthode de classe.

  • Associer les classes entre elles : Diagramme de classe en UML - Passage du diagramme de classe vers du code Python.

  • L’héritage : Syntaxe - Méthode spéciale super() - Classe abstraite - Polymorphisme.

  • Les exceptions : Traitement - Types - Levée explicite - Création d’une nouvelle classe d’exception personnalisée.

  • Les fichiers : Ouverture - Lecture -Ecriture - Fermeture - Autres opérations sur les fichiers.

  • IHM : Interface graphique avec Tkinter.

  • Quelques modules Python : La manipulation et analyse de données avec Pandas - Le calcul scientifique et l'analyse numérique avec le module Numpy - La visualisation de données avec Matplotlib - Les figures avec le module Turtle - L’arithmétique avec le module Math.

Programmation Avancée en C

 Le langage C est plutôt complexe mais si vous le maîtrisez vous aurez des bases de programmation très solides !

Le C est un langage de programmation procédural et généraliste. Il est qualifié de langage de bas niveau car chaque instruction du langage est conçue pour être compilée en un nombre d'instructions machine assez prévisible en termes d'occupation mémoire et de charge de calcul.

 

  Points clés abordés 

 

     1. Initiation programmation C

  • Introduction à la programmation C :

  • La programmation, qu’est-ce que c’est ?
  • Pourquoi apprendre le C ?
  • L’algorithmique.
  • Outils nécessaire pour programmer en C.
  • Lignes de commande.
  • Les commentaires.
  • La mémoire.
  • Les bases du langage C :

  • Les variables :
    • Déclaration.

    • Les types.

    • Initialisation.

    • Affectation.

  • Interagir avec l’utilisateur
    • Les sorties.
    • Les entrées.
  • Les opérateurs mathématiques
  • Les boucles.
  • Les conditions.
  • Les tableaux.
  • Les fonctions.
    • Passage des paramètres par valeurs.
    • Passage des paramètres par adresse.
  • Récursivité.

     2. Programmation avancée en C

  •  Les chaines de caractères.

    • Intérêt d’utilisation.

    • Déclaration.

    • Manipulation.

 

  • Les pointeurs.

    • Déclaration.

    • Manipulation.

    • Exemples d’usages.

 

 

  • Créer ses propres types.

    • Structure.

    • Enumeration.

    • Union.                       

 

 

  • L’allocation dynamique de la mémoire.

    • Déclaration.

    • Manipulation.

    • Allocation.

    • Réallocation.

    • Libération.

 

  • Structure dynamique.

    • Intérêt d’utilisation.

    • Déclaration.

    • Manipulation. 

Algorithmique et Structures

de Données Complexes

 L'algorithmique et la manipulation de structures de données complexes mecessitent une grande maitrise des langages de programmtion et notament du lagage C. En effet, le C permet une manipluation très fine de la mémoire et du temps d'éxécution. Chaque instruction du langage est conçue pour être compilée en un nombre d'instructions machine assez prévisible en termes d'occupation mémoire et de charge de calcul.

 

  Points clés abordés 

 

  • Tableaux dynamiques
    • Généralités.
    • Insertion d’un élément et redimensionnement.
    • Suppression d’un élément et redimensionnement.
    • Notions de complexité.
    • Recherche séquentielle.
    • Recherche dichotomique.
    • Les différents algorithmes de tri.

 

  • Listes chainées
    • Structures pour créer la liste chainée.
    • Insertion d’un élément.
    • Suppression d’un élément.
    • Recherche (discussion : linéaire vs dichotomique).
    • Parcours et affichage.
    • Tri.
    • Destruction.
    • Liste doublement chainée : Structure et manipulations particulières
    • Listes chainées Vs Tableaux.
  • Piles de données
    • Structures de données pour création d’un système de Pile (LIFO).
    • Création de la Pile.
    • Empilement.
    • Dépilement.
    • Affichage de la pile.
    • Libération de la Pile.

     

 

  • Files de données
    • Structures de données pour création d’un système de File (FIFO).
    • Création de la File.
    • Enfilement.
    • Défilement.
    • Affichage de la File.
    • Libération de la File.

 

  • Hachage
    • Principe et table de hachage
    • Fonctions de Hachage
    • Résolution des collisions
      • Adressage ouvert.
      • Chainage.

 

  • Arbres binaires
    • Généralités et notion d’un arbre binaire trié.
    • Structures pour créer un arbre binaire.
    • Création d’un arbre binaire.
    • Insertion d’un élément.
    • Recherche d’un élément.
    • Parcours et affichage.
    • Destruction.
    • Discussion sur la performance des différentes structures présentées.


  •  

Programmation Orientée Objet

JAVA

    Java est un langage de programmation multiplateforme orienté objet qui s'exécute sur des milliards d'appareils dans le monde entier. Il alimente les applications, les systèmes d'exploitation smartphone, les logiciels d'entreprise et de nombreux programmes connus.

 

Même s’il a plus de 20 ans, Java est actuellement le langage de programmation le plus populaire pour les développeurs d’applications.

 

  Points clés abordés 

 

            Programmation orientée

            objet

 

  • Une programmation en plusieurs étapes
  • Les concepts clés de la POO
  • Programmer Orienter Objet avec Java

 

Premier pas en Java

  • Classe
  • Objet
  • Structure d’une classe
  • Portée de visibilité
  • Variables
  1. Les types primitifs
  2. Les types objets, ou références
  3. Les types enveloppes
  • Méthodes

 

Interagir avec l’utilisateur

  • Ecriture
  • Lecture
  • Les caractères spéciaux

 

Les structures de contrôle

  • Les conditions
  1. L’instruction conditionnelle – if
  2. L’instruction conditionnelle - else
  3. L’affectation conditionnelle – opérateur ternaire
  4. L’instruction conditionnelle - switch
  • Les boucles
  1. La boucle – for
  2. La boucle – while
  3. La boucle – do .. while
  4.  La boucle – for each

​​​​​​​

Les tableaux et les ensembles

  • Les tableaux statiques
  • Les tableaux dynamiques
  • Les ensembles

Associer les classes entre elles

  • Diagramme de classe en UML
  • Passage du diagramme de classe vers du code Java
  • Modélisation avec StarUML
  1. Présentation du logiciel
  2. Téléchargement et installation du logiciel
  3. Premier diagramme de classe avec StarUML
  4. Convertir automatiquement un diagramme de classe vers du code Java

 

Héritage et polymorphisme

  • Principe
  • Redéfinition des méthodes
  • Utilisation des annotations
  • Construction des objets dérivés
  • Classe abstraite
  • Collection hétérogène et polymorphisme

 

Les exceptions

  • Qu’est-ce qu’une exception
  • Traitement d’une exception
  • Levée explicite d’une exception
  • Création d’une nouvelle classe d’exception personnalisée

 

Manipulation des fichiers

  • Lire un fichier
  • Ecrire dans un fichier

 

Interface graphique avec Swing

  • Les conteneurs : JFrame, JPanel
  • Le label : JLabel
  • Les bouttons et les actions : JButton
  • Les zones de texte : JTexfield, JTextarea
  • Les listes déroulantes : JComboBox 
  • Les boites de dialogue : message, confirmation, saisie
  • Parcourir pour trouver un fichier : JFileChooser
  • Les bouttons radios : JRadioButton
  • Les tables : JTable

Web Sémantique

et Web de Données

Le "Web sémantique" représente le Web 3.0. Il s'agit d'un ensemble de standards et de technologies qui agissent pour mieux mettre en lumière le contenu Web. Le Web sémantique est un Internet où les informations ne sont pas seulement liées, mais où leur sens est traité. Notre objectif est de :

  • Comprendre les principes du Web Sémantique et son intérêt.

  • Apprendre à décrire des données en leur ajoutant de la sémantique (RDF(S)/OWL).

  • Être capable de faire du raisonnement et d’inférer de la connaissance à partir de données sémantiques en utilisant les règles d’inférences.

  • Apprendre à interroger les données avec le langage SPARQL.

  • Créer une ontologie, décrire des données et faire du raisonnement en utilisant le logiciel « Protégé ».

  • Créer, manipuler et interroger des ontologies et des données Web avec Python.

 

  Points clés abordés 

 

            Introduction au Web Sématique 

 

  • Web actuel (2.0) versus Web sémantique (3.0).

  • Les principes du Web sémantique.

  • Exemples de cas d’usages réels pour montrer l’intérêt et la puissance du Web sémantique.

  • Pratique : Exemple avec de la pratique sur une large base de données Web distante : DBpedia (base de connaissance Web décrivant plus de 3,4 millions d'entités).

  • TP1 - Exemple de cas d'utilisation du Web Semantique pour le marketing digital. 

 

Les langages de Web Sématique

 

  • Description des données en graph
  • Resource Description Framework (RDF).
  • Resource Description Framework Schema (RDFS). 
  • Pratique : Construire des graphes de données Web sémantique avec un éditeur en ligne. 
  • Web Ontology Language (OWL).
  • Principes des ontologies.
  • Installation, présentation et manipulation de l’éditeur d’ontologie : Protégé.
  • Pratique : Construction d’ontologies et de données sémantiques avec Protégé. Visualisation des données et du graphe de données.
  • TP2 - Analyse de réseaux sociaux - Python et Web Sémantique - RDF(S).
  • TP3 - Création d'une ontologie sur Protégé - Démonstration et Tutoriel.

 

 

 

 

 

Connaissances, Mining et raisonnement

 

  • Règles d’inférence RDFS.
  • Raisonnement avec OWL.
  • Exemple d’application avec Protégé et consistance.
  • Pratique : Inférence de connaissances et raisonnement sur un cas d’étude avec Protégé.

  • TP4 - Python et Web Semantique - Recommandation de Produits pour le Marketing Digital - OWL Raisonnement Sparql.

 

 

Interraction avec une source de données NoSQL (Web de Données)

 

  • Langage d’interrogation SPARQL : sélection, insertion, suppression, agrégation, etc. Avec des exemples pratiques.
  • TP5 : Interrogation de données avec inférence en utilisant Protégé.

 

 

Création et manipulation d'une source de données du Web Sémantique

 

  • Création d’une ontologie.
  • Peuplement.
  • Interrogation.
  • Vérification de la consistance.
  • Inférences de nouvelles connaissances.
  • Raisonnement.
  • TP6 - Python et Web Semantique - Création et peuplement d'une ontologie à partir d'un fichier csv.

 

 

Technologies Big Data et IA

    Cumulez les avantages de l'IA et du Big Data pour mettre en place la data intelligence et développer la performance de votre entreprise sur son marché !

L’intelligence artificielle (IA) et le Big Data sont deux technologiques convergentes qui, au-delà de devenir les disruptions numériques les plus importantes à partir de cette année, vont bouleverser le court de la vie dans tous les secteurs.

Les technologies de Big Data fournissent l’infrastructure nécessaire pour collecter, stocker et traiter de grandes quantités de données provenant de diverses sources. Ces données sont ensuite utilisées par les systèmes d’IA pour entraîner des algorithmes et améliorer leur précision et leur performance. »

 

 

  Points clés abordés 

 

         

  • Comprendre les principes et les valeurs du Big Data.
  • Installer et manipuler Hadoop2 et comprendre les principes de Yarn et HDFS.
  • Comprendre les fonctions Map/Reduce et apprendre à modéliser un programme avec ces deux notions.
  • Installer et manipuler Spark avec PySpark et comprendre les types (RDD, DataFrame, GraphFrames, etc).
  • Savoir exploiter Spark en mode Spark Shell, en mode CLI  et en mode GUI (avec Anaconda - Spyder)
  • Comprendre l’ACP et les grandes familles de fouille de données : clustering, classification, régression, règles d’association

 

 

 

 

 

  • Manipuler MLlib de Spark pour la fouille de données notamment pour du Profiling avec analyse et interprétation des résultats d’un cas concret .
  • Créer et manipuler les données avec Spark SQL.
  • Manipuler la fouille de graphes de données avec GraphFrames de Spark combiné à NetworkX et Matplotlib, ainsi que leurs applications pour les réseaux sociaux.
  • Comprendre le fonctionnement de l’algorithme PageRank : son implémentation et sa manipulation avec Spark.

 

 

Data Visualization

    La visualisation des données (ou data visualization ou dataviz en anglais) désigne le fait de représenter visuellement ses data pour pouvoir déceler et comprendre des informations, les données brutes étant difficilement interprétables et exploitables. Ce processus se fait par des outils analytiques spécifiques et se matérialise par des tableaux, des graphiques, des cartes visuelles ou même des infographies regroupées dans des dashboards (tableaux de bord).

En classant, segmentant et scénarisant les données visuellement, une entreprise peut déceler des informations auparavant inaccessibles en un simple coup d’œil. La visualisation des données permet donc à toute organisation de piloter son activité plus efficacement en adoptant une stratégie data-driven et agile.

 

 

  Points clés abordés 

 

            Introduction à la visualisation

            des données   

 

  • Qu'est ce que la data visualisation des données ?

  • Importance et objectifs de la data visualisation.

  • Principes fondamentaux (perception visuelle, storytelling avec les données).

  • Types de visualisation.

  1. graphiques de bases : points, barres, lignes, nuages, etc.

  2. graphiques avancés : carte géographique, carte thermique, interractif, etc. 

  • Bonnes et mauvaises pratiques.

  • Processus de création d'une visualisation.

  • Exemple concret.

  • Les métiers de la data visualisation.

  • Comment dévelloper vos compétences en visualisation des données ?

  • TP1 - Présentation et Visualisation des Données sur Tableur. 

 

Dashbord : Tableau de bord

 

  • Qu'est-ce que c'est ?
  • Outils :
  1. Feuilles de calculs et tableurs : Microsoft Excel, LibreOffice Calc, Google Sheet.
  2.  Logiciels de business Intelligence (BI) : Tableau, PowerBI, etc.
  3. Autres : Grafana, Looker Studio.

 

 

 

 

 

  • TP2 : Création d'un tableau de bord avec Power BI pour l'analyse et la visualisation de données d'une banque.
  • TP3 : Personalisation du Dashbord avec Power BI.

 

Développement d'applications avec visualisation de données 

 

  • Définir l'objectif de l'application.

  • Collecte et traitement de données.
  • Choix de la technologie :
  1. Application Web Interractive : D3.js, React-Vis, etc.
  2. Application de bureau : avec Python, comme  Matplotlib, Seaborn, Plotly, ou PyGWalker

  • Analyse de visualisations célèbres (exemples de Hans Rosling, New York Times, etc.).

  • TP4 - Visualisation des données avec Python - Matplolib.
  • TP5 - Visualisation des données avec Python - Seaborn.
  • TP6 - Visualisation interactive des données avec Python – PyGWalker et Plotly.

 

 

 

 

 

Bases de Données / SQL

 

    Les bases de donnéesSQL, également appelées bases de données relationnelles, sont des systèmes qui stockent des collections de tables et organisent des ensembles structurés de données dans un format tabulaire de colonnes et de lignes, similaire à celui d'une feuille de calcul.

 

SQL est un langage qui permet de manipuler (c'est-à-dire créer, modifier, supprimer, interroger) tous les types d'objets d'une Base de données relationnelle. 

 

 

  Points clés abordés 

 

           Modèle conceptuel de données

 

  • Notions et concepts généraux des bases de données.
  • Objectifs et architecture des systèmes de gestion de bases de données (SGBD).
  • Modélisation Conceptuelle des données (MCD) : Modèle Entité-Association.
  • Exercices d'application.

Modèle logique de données

 

  • Concepts fondamentaux du modèle relationnel.
  • Passage du modèle Entité-Association (MCD) au modèle relationnel (MLD).
  • Exercices d'application.

 

Normalisation du modèle relationnel

 

  • Notion de dépendance fonctionnelle (DF).
  • Formes normales.
  • Exercices d'application.

 

Création d'une base de données relationnelle

 

  • Modèle physique de données : types de données et contraintes d’intégrité.
  • Présentation générale du langage SQL (Structured Query Language).
  • Création et modification du schéma d’une base de données : Langage de définition de données.
  • Pratique : installation, présentation et manipulation de XAMPP et phpMyAdmin.

  • TP 1 : création d'une base de données et de ses tables.

​​​​​​

Manipulation d'une base de données relationnelle

 

  • Langage de manipulation de données (LMD).

  • Modification du contenu d’une base de données (insertion, suppression et mise à jour des données).

 

  • Consultation des données : Syntaxe générale de la commande « SELECT ».

  • TP2 : Manipulation d'une base de données relationnelle.

 

Interrogation d'une base de données relationnelle

 

  • Consultation des données : Syntaxe générale de la commande « SELECT ».
  • La clause « SELECT » pour la sélection des colonnes.
  • La clause « WHERE » pour la définition des filtres de restriction.
  • La clause « ORDER BY » pour le tri des enregistrements.
  • TP3 : Interrogation d'une base de données relationnelle.

 

Requêtes avancées

 

  • La clause « FROM » : les requêtes imbriquées.
  • La clause « FROM » : les jointures.
  • Les opérateurs ensemblistes : « UNION », « INTERSECT » et « EXCEPT ».
  • TP4 : Requêtes avancées sur une base de données relationnelle.

 

Agrégation

 

  • Fonctions d’agrégation.
  • lauses de groupement : « GROUP BY » et « HAVING ».
  • TP5 : Agrégation sur une base de données relationnelle.

 

Vues et manipulations avancées

 

  • Création des vues.
  • Fonctions de manipulation de date et de chaines de caractères.
  • TP6 : Manipulations avancées sur une base de données relationnelle.

Génie Logiciel

   

    Le génie logiciel (software engineering) est une science qui étudie les méthodes de travail et les bonnes pratiques des ingénieurs qui développent des logiciels. Le génie logiciel s'intéresse en particulier aux procédures qui permettent d'arriver à ce que des logiciels de grande taille correspondent aux attentes du client, soient fiables, aient un coût d'entretien réduit et de bonnes performances tout en respectant les délais et les coûts de construction.

 

En effet, concevoir puis mettre en place des logiciels de comptabilité, de gestion des stocks, de traitement des images ou d'applications web, …, en suivant les demandes des entreprises ou des administrations, c'est le rôle de l'ingénieur logiciel !

 

 

  Points clés abordés 

 

           

  • Nommer, identifier et reconnaître les différentes étapes de développement d’un logiciel et donc acquérir les compétences approfondies requises pour pouvoir intervenir dans toutes les phases de la production logiciel.
  • Reconnaitre les cycles de vie d’un logiciel et d’appliquer chacune des étapes de celui-ci à l’aide des bons outils.
  • Mettre en œuvre les différents aspects de l’approche UML.
  • Réaliser une modélisation d’un logiciel objet à l’aide de la notation UML et concevoir le modèle dans un langage Objet.
  • Connaitre les méthodes techniques et outils disponibles actuellement pour le développement de logiciels de qualités.
  • Manipuler des outils de génie logiciel comme StarUML pour modéliser un logiciel.
  • Comprendre les bases de la philosophie et des principes Agile ainsi que le cycle de vie d’un projet Agile, incluant les configurations alternatives et leurs utilités.

Cette formation fournit aux apprenants des notions clés dans leur parcours académique et professionnel qui leur permettront de développer, créer et concevoir des logiciels de qualité, robustes et réutilisables.

 

En effet, en combinant des concepts théoriques, de la pratique et des mini-projets, cela permet de fournir aux étudiants une solide compréhension : des différentes étapes à respecter pour la conception d’un logiciel, des différents cycles de vie d’un logiciel et des différents outils qui guident dans la fabrication d’un logiciel.

 

Ce contenu a pour objectif de vous apprendre les bonnes pratiques à respecter pour mener un projet et pour construire un logiciel de qualité.