Vous êtes sur la page 1sur 10

FÉDÉRATION EUROPÉENNE DES ÉCOLES

FEDERATION FOR EDUCATION IN EUROPE


OING dotée du statut participatif auprès du Conseil de l’Europe
INGO enjoying participatory status with the Council of Europe

UE D – EXPERTISE PROFESSIONNELLE

Mastère européen Expert IT - Applications intelligentes et big data

UC D51.2 - Développement et bases de données -


Perfectionnement

Corrigé

Type d’épreuve : Exercices pratiques

Durée : 2 heures

Session : Octobre 2021

© Fédération Européenne Des Ecoles - Federation for EDucation in Europe - Octobre 2021
UC D51.2 - Expert IT - Applications intelligentes et big data - Corrigé
 Dossier 1 - Big data

Question 1
Expliquez précisément les initiales « C, A, P » du schéma ci-dessous.

10 points

Dans le théorème CAP, aussi connu sous le nom de théorème de Brewer **


Consistency (Cohérence) : Une donnée n'a qu'un seul état visible quel que soit le nombre de réplicas.
Availability (Disponibilité) : Tant que le système tourne (distribué ou non), la donnée doit être disponible.
Partition Tolerance (Distribution) : Quel que soit le nombre de serveurs, toute requête doit fournir un
résultat correct.
Dans toute base de données, vous ne pouvez respecter au plus que 2 propriétés parmi la cohérence, la
disponibilité et la distribution.

Question 2
Citez les 4 familles de bases No SQL existantes, expliquez brièvement chaque principe et donnez
1 exemple pour chacune.

10 points

- Orienté clés-valeurs : Table de hachage où il y a une clé unique et un pointeur vers un élément de
données particulier. Ex. REDIS.
- Orientés colonnes : Pour stocker et traiter de très grandes quantités de données réparties sur de
nombreuses machines. Ex. Cassandra, HBase.
- Orienté documents : Collections de collections Key-Value (documents json ou bson). Ex. CouchDB,
MongoDb
- Orienté graph : basé sur le modèle des propriétés des graphes, il est approprié aux réseaux sociaux,
ou de recommandations. Ex. Neo4J, graphe infini.

Question 3
À partir du schéma ci-dessous, expliquez succinctement ce que sont HDFS et le MAP-REDUCE.

10 points

- HDFS : système de fichier distribué de Hadoop Apache. Il s’agit d’un composant central du
Framework d’Apache, et plus précisément de son système de stockage.
- MAP REDUCE : Framework de traitement de données en clusters. Composé des fonctions Map et
Reduce, il permet de répartir les tâches de traitement de données entre différents ordinateurs,
pour ensuite réduire les résultats en une seule synthèse.

Question 4
Qu’est-ce que « APACHE SPARK » ?

10 points

Spark (ou Apache Spark2) est un framework open source de calcul distribué. Il s'agit d'un ensemble d'outils
et de composants logiciels structurés selon une architecture définie. Développé à l'université de Californie à
Berkeley par AMPLab , Spark est aujourd'hui un projet de la fondation Apache. Ce produit est un cadre
applicatif de traitements big data pour effectuer des analyses complexes à grande échelle.

© Fédération Européenne Des Ecoles - Federation for EDucation in Europe - Octobre 2021 2/10
UC D51.2 - Expert IT - Applications intelligentes et big data - Corrigé
 Dossier 2 - Datamining et IA

Question 1
Définissez les termes « Intelligence artificielle, Big Data et Data Mining ». Que pouvez-vous dire
du lien entre ces technologies ?

10 points

Le big data réfère à un ensemble de données dont le volume considérable dépasse aussi bien les capacités
humaines d’analyse que celles d’outils informatiques classiques. Selon IBM, on génère quotidiennement 2,5
trillions de gigaoctets. Les traiter convenablement requiert, de nos jours, l’apport de l’intelligence
artificielle sous différentes formes. Big data et intelligence artificielle constitueront deux technologies dont
la complémentarité nécessite l’intervention décisive et intelligente de l’homme.

Le Data Mining est le processus de collecte d’informations à partir de données extrêmement volumineuses.
Celles-ci sont dans la plupart du temps indéchiffrables et incompréhensibles. Ces informations cruciales
facilitent la prise de décisions commerciales pertinentes. Le Data Mining se fonde sur diverses méthodes
pour aboutir à des connaissances permettant de distinguer les relations et les modèles inconnus de ceux
qui étaient connus.

L'intelligence artificielle (IA) est « l'ensemble des théories et des techniques mises en œuvre en vue de
réaliser des machines capables de simuler l'intelligence humaine

L’intelligence artificielle, le Big Data et le Data Mining, sont des technologies complémentaires.

Question 2
Que permettent de faire ces méthodes ?

10 points

Les méthodes descriptives permettent d'organiser, de simplifier et d'aider à comprendre l'information


sous-jacente d'un ensemble important de données.
Elles permettent de travailler sur un ensemble de données, organisées en instance de variables, dans lequel
aucune des variables explicatives n'a d'importance particulière par rapport aux autres.
Elles sont utilisées par exemple pour dégager, d'un ensemble d'individus, des groupes homogènes en
typologie, pour construire des normes de comportements et donc des déviations par rapport à ces normes
telles que la détection de fraudes à la carte bancaire ou à l'assurance maladie…

Les méthodes prédictives permettent d'expliquer ou de prévoir un ou plusieurs phénomènes observables


et effectivement mesurés. Concrètement, elles vont s'intéresser à une ou plusieurs variables définies
comme étant les cibles de l'analyse.

Par exemple, la probabilité pour qu'un individu achète un produit plutôt qu'un autre, ou qu’il contracte une
maladie particulière en guérisse, les chances qu'un individu ayant visité une page d'un site web y revienne,
sont typiquement des objectifs que peuvent atteindre les méthodes prédictives.

En exploration de données prédictive, il y a deux types d'opérations : la discrimination ou classement, et la


régression ou prédiction,
La discrimination s’intéresse aux variables qualitatives, tandis que la régression s’intéresse aux variables
continues…
**Les méthodes de classement et de prédiction permettent de séparer des individus en plusieurs classes.
Si la classe est connue au préalable et que l'opération de classement consiste à analyser les caractéristiques
des individus pour les placer dans une classe, la méthode est dite « supervisée ».
Dans le cas contraire, on parle de méthodes « non-supervisées », ce vocabulaire est issu de l'apprentissage
automatique.

© Fédération Européenne Des Ecoles - Federation for EDucation in Europe - Octobre 2021 3/10
UC D51.2 - Expert IT - Applications intelligentes et big data - Corrigé
Question 3
Expliquez succinctement le principe d’un neurone. Comment l’entraine-t-on. Donnez 3 types
d’application possibles des réseaux de neurones ?

10 points

Dans leur principe, les réseaux de neurones ne sont rien d'autre qu'une façon de construire des modèles
paramétriques, c'est-à-dire pour lesquels la fonction de décision est explicite. Contrairement à d'autres
algorithmes paramétriques comme la régression linéaire, ils permettent de construire facilement des
modèles très complexes et non linéaires.

Un neurone est activé (émet un signal de sortie) en fonction de ses neurones d’entrées (valeurs d’entrées
qui sont pondérées).
L'entraînement d'un réseau de neurones est un processus itératif. Après chaque observation, nous allons
ajuster les poids de connexion de sorte à réduire l'erreur de prédiction faite.

Application des réseaux de neurones.


Reconnaissance de formes.
Reconnaissance de l'écriture manuscrite.
Reconnaissance vocale.
Traitement automatique de la langue.
Reconnaissance d’empreintes digitales…

Question 4
Quelle est la différence entre Machine Learning & Deep Learning ?

10 points

Lorsque l’on parle de Deep Learning, nous parlons d’algorithmes capables de mimer les actions du cerveau
humain grâce à des réseaux de neurones d’où le terme d’Intelligence Artificielle. Il est souvent expliqué que
la différence entre Machine Learning et Deep Learning réside dans le fait que les algorithmes de Machine
Learning vont traiter des données quantitatives et structurées (des valeurs numériques), lorsque ceux de
Deep Learning traiteront des données non-structurées, comme le son, le texte, l’image.

En Machine Learning classique, lorsque vous travaillez sur un cas tel que la prédiction d’achat (savoir si mon
prospect va acheter ou non ce produit), le Data Scientiste va lui-même faire un choix, et extraire la donnée
qui va influer sur la prédiction : les variables. En l’occurrence pour notre exemple sur l’achat, nos variables
pourraient être l’âge de la personne, son sexe, son revenu, etc.
Ce sont ces éléments qui lui permettront de savoir si une personne va acheter ou non le produit. En
d’autres termes, ce sont sur ces variables que le Data Scientiste va entraîner son algorithme.
C’est ce que l’on appelle le Feature Extraction : sélectionner les variables avec lesquelles l’équipe Data va
travailler.

Pas de feature extraction en Deep Learning


En Deep Learning, souvent, il n’est pas possible de faire de Feature Extraction, et même, vous n’avez pas à
en faire.
Pourquoi ? En Deep Learning, nous traitons souvent des données non-structurées : des images, du son, du
texte, etc. Lorsque vous avez une image, vous n’allez pas pouvoir extraire l’élément qui va être prédicteur :
il est bien entendu impossible pour nous en tant qu’humain de sélectionner à la main tous les pixels de
chaque image appartenant au chien ou au chat (l’exemple classique de reconnaître si sur une image est
représenté un chat ou un chien). Dans cette mesure, on n’a donc pas besoin de Feature Extraction.
L’algorithme va être entrainé pour sortir lui-même les éléments influents dans la prédiction que vous
souhaitez réaliser.

© Fédération Européenne Des Ecoles - Federation for EDucation in Europe - Octobre 2021 4/10
UC D51.2 - Expert IT - Applications intelligentes et big data - Corrigé
 Dossier 3 - Python

Question 1
Expliquez le code ci-dessous et son objectif.

10 points

import numpy as np

// fonction simplifiée d’un perceptron qui réalise la fonction logique OR


def perceptron(inputs, weights, threshold):
assert len(inputs) == len(weights)

# multiply the inputs and weights


values = np.multiply(inputs, weights)

# sum the results


total = sum(values)

# decide if we should activate the perceptron


if total < threshold:
return 0
else:
return 1

print("------------or------------")
##OR
inputs = [[0.0,0.0],[1.0,0.0],[0.0,1.0],[1.0,1.0]]
for input in inputs:
print(input,perceptron(input, [0.5,0.5], 0.5))

© Fédération Européenne Des Ecoles - Federation for EDucation in Europe - Octobre 2021 5/10
UC D51.2 - Expert IT - Applications intelligentes et big data - Corrigé
Question 2
Quel est le résultat de l’affichage ?

10 points

Question 3
Représentez graphiquement ce perceptron.

10 points

 Dossier 4 - Devops

Question 1
Expliquez ce qu’est le « Devops », et pourquoi est-il important ?

10 points

Le DevOps offre un Framework conçu pour dynamiser et améliorer le développement d'applications et


accélérer la mise à disposition de nouvelles fonctionnalités, de mises à jour logicielles ou de produits.

Il favorise la communication, la collaboration, l'intégration, la visibilité et la transparence continues entre


les équipes chargées du développement d'applications (Dev) et celles responsables des opérations IT (Ops).

Le devops — ou DevOps (selon la graphie habituellement utilisée en langue anglaise) — est un mouvement
en ingénierie informatique et une pratique technique visant à l'unification du développement logiciel (dev)
et de l'administration des infrastructures informatiques (ops), notamment l'administration système.

© Fédération Européenne Des Ecoles - Federation for EDucation in Europe - Octobre 2021 6/10
UC D51.2 - Expert IT - Applications intelligentes et big data - Corrigé
Pourquoi le DevOps est-il important ? En favorisant la communication et la collaboration entre les équipes
chargées du développement et des opérations IT, le DevOps vise à optimiser la satisfaction client et à
proposer des solutions à valeur ajoutée plus rapidement.

Question 2
En vous aidant du fil d’Ariane ci-dessous, placez les termes suivants :
• développement agile,
• livraison continue,
• intégration continue,
• déploiement continu.

5 points

Développement agile A
Livraison continue C
Intégration continue B
Déploiement continu D

© Fédération Européenne Des Ecoles - Federation for EDucation in Europe - Octobre 2021 7/10
UC D51.2 - Expert IT - Applications intelligentes et big data - Corrigé
Question 3
En vous aidant du fil d’Ariane ci-dessous, placez les termes suivants :
• développement agile,
• livraison continue,
• intégration continue,
• déploiement continu.

5 points

• Développement continu. Cette pratique couvre les phases de planification et de codage dans le
cycle de vie DevOps et peut inclure des mécanismes de contrôle des versions.
• Intégration continue. Cette pratique rassemble des outils de gestion de la configuration, de test et
de développement pour assurer le suivi de la mise en production des différentes portions du code.
Elle implique une collaboration étroite entre les équipes responsables des tests et du
développement pour identifier et résoudre rapidement les problèmes de code.
• Livraison continue. Cette pratique automatise la publication des modifications du code après la
phase de test, dans un environnement intermédiaire ou de préproduction. Un membre de l'équipe
peut décider de publier ces modifications dans l'environnement de production.
• Déploiement continu. À l'instar de la livraison continue, cette pratique automatise la publication
d'un code nouveau ou modifié dans l'environnement de production. Les entreprises peuvent être
amenées à publier plusieurs fois par jour des modifications du code ou des fonctionnalités. Dans un
contexte de déploiement continu, les technologies de conteneur comme Docker et Kubernetes
assurent la cohérence du code entre plusieurs plateformes et environnements.

Question 4
En vous aidant du schéma ci-dessous, et/ou de ce que vous connaissez, proposez une
architecture « devops » et expliquez-la brièvement.

20 points (toute architecture cohérente sera acceptée)

• Jenkins est un serveur d’automatisation open source qui peut s’intégrer aux services Azure pour activer
l’intégration continue (CI) et le déploiement continu (CD). Dans ce scénario, Jenkins orchestre la création
d’images de conteneur basées sur les validations effectuées dans le contrôle de code source, envoie ces
images dans Azure Container Registry, puis met à jour les instances des applications dans Azure
Kubernetes Service.
• Les Machines virtuelles Linux Azure constituent la plateforme IaaS utilisée pour exécuter les instances
Jenkins et Grafana.
• Azure Container Registry stocke et gère les images de conteneur qui sont utilisées par le cluster Azure
Kubernetes Service. Les images sont stockées de manière sécurisée. La plateforme Azure peut les
répliquer dans d’autres régions pour accélérer les déploiements.

© Fédération Européenne Des Ecoles - Federation for EDucation in Europe - Octobre 2021 8/10
UC D51.2 - Expert IT - Applications intelligentes et big data - Corrigé
• Azure Kubernetes Service est une plateforme Kubernetes managée, qui vous permet de déployer et de
gérer des applications en conteneur sans avoir à maîtriser l’orchestration de conteneurs. En tant que
service Kubernetes hébergé, Azure gère pour vous des tâches critiques telles que l’analyse de l'intégrité
et la maintenance.
• Azure Cosmos DB est une base de données multi modèle mondialement distribuée qui vous permet de
choisir parmi différents modèles de base de données et de cohérence en fonction de vos besoins. Avec
Cosmos DB, vos données peuvent être répliquées dans le monde entier, et il n’existe aucun composant
de réplication ou de gestion de cluster à déployer ou configurer.
• Azure Monitor vous permet de suivre les performances, de gérer la sécurité et d’identifier des
tendances. Les mesures obtenues par Azure Monitor peuvent être utilisées par d’autres ressources et
outils, tels que Grafana.
• Grafana est une solution open source destinée à interroger, visualiser, alerter et comprendre les
mesures. Un plug-in de source de données pour Azure Monitor permet à Grafana de créer des tableaux
de bord visuels pour surveiller les performances de vos applications exécutées dans Azure Kubernetes
Service et utilisant Cosmos DB.

© Fédération Européenne Des Ecoles - Federation for EDucation in Europe - Octobre 2021 9/10
UC D51.2 - Expert IT - Applications intelligentes et big data - Corrigé
GRILLE DE NOTATION
UC D51.2 - Développement et bases de données - Perfectionnement

NOM ET PRÉNOM DU CORRECTEUR_______________________________________________________

N° de candidat__________________

Dossier Note attribuée Observations obligatoires

Dossier 1 - Big data /40

Dossier 2 - Datamining - IA /40

Dossier 3 - Python /30

Dossier 4 - Devops /40

TOTAL /150

Appréciation générale :
_______________________________________________________________________________________
_______________________________________________________________________________________
_______________________________________________________________________________________
_______________________________________________________________________________________
_______________________________________________________________________________________

Fait à _______________________________________ le ____________

Signature :

© Fédération Européenne Des Ecoles - Federation for EDucation in Europe - Octobre 2021 10/10
UC D51.2 - Expert IT - Applications intelligentes et big data - Corrigé

Vous aimerez peut-être aussi